Track and store your rankings with Google Docs

If you are looking for a free and simple way to track your rankings for a few keywords and store this data, here is a Google Spreadsheet you’ll like.

Screenshot Rank Tracker

What it does:
We are using Google Spreadsheets „ImportXML“ function to scrape the top 100 Google Rankings for our target keywords. We created a Google Docs Script with a few lines of code that does the work for us.

This script creates a new column every time it’s executed, inserts the current rankings and time/week to this new column and also checks if your rankings have risen or dropped and changes the color to green or red. If you set up the email alert it will also let you know when your rankings drop.

How to set it up:
1. Get the Spreadsheet here and make a copy of it otherwise you won’t be able to edit it.

2. Enter your target domain, tld for Google, language, results for country, and activate the email alert. Basically, just fill in the green cells.


3. Enter your target keywords. Start with cell B13 and make sure that you dont add more then 50 keywords (because of Google ImportXML restrictions). If you need to track more then 50 keywords just create a new spreadsheet.

4. Copy D13 (the blue cell) and paste it in all rows that you filled with a keyword. Now you should see your current rankings.

rank tracker keyword data

5. Click on Tools -> Script Editor


6. From the Script Editor, choose Resources -> Current project’s triggers
– Click the link that says No triggers set up. Click here to add one now.
– Under Run, select the function you want executed on schedule.
– Under Events, select Time-driven.
– Choose if you like to track your ranking daily or weekly and save the trigger.

google script trigger

7. Have fun with the Rank Tracker.

Further learning:
– Check out the ImportXML Guide from Distilled
Understanding Google Triggers

29 Kommentare Schreibe einen Kommentar

  1. Great work! Useful tool.

    The dates and positions on the right of the spreadsheet, are they auto populated ased on the trigger setting or are they manually entered on a weekly basis by you/human?


    • Hi Pritesh

      They are auto populated based on the trigger. Each time the script is executed it creates a new column with the current values.


  2. Pretty neat. I am just trying to figure out to implement this for multiple links (internal page) and keywords so I do not have to copy multiple sheets for different pages.

  3. Its really useful but it still needs some improvements. I tested for multiple keywords. It not showing 100% accurate ranking.

    sheet showed „keyword 1“ at number 10 but in actual it was at number 6… similar case with other keywords.

    • Thanks for your comment Abdul. Yes, there will be always some differences, cause the request for the results within in the spreadsheet is made by a google server and not your computer. Other reasons can be localization etc.

  4. Hi Frank
    Thanks for the wonderful trick. Hey i want to know that can i see the unviersal search results instead of usa and can we send email to gmail. Actaully i dont have a personal domain named email. So can u please help me on this ?

    • Hi Dorje
      Just change the „get the results for“ to the country your are looking for.
      Yes you can use every email address, it doesn’t belong to the target domain.


  5. Hi Frank,
    Thanks for this – really useful.
    I’m having problems when I change the ‚com‘ to ‚‘ though – if I use com and change the ‚get results for‘ to ‚UK‘ – it’s working fine, but as soon as I change ‚com‘ to ‚‘ I get a host of #N/As instead of the rankings.
    Just thought I’d let you know and see if you might have a solution?
    Thanks again,

  6. Very interesting clean simple idea. Thanks for sharing!

    I can’t copy it in Drive, only download (but then the script doesn’t come along). Any idea what I might do wrong?


  7. very nice .. Thanks for sharing.. will utilize it for myself….
    Tweeted this post
    Just a note.. While tweeting, your @user name is missing. Please add to it to let your Twitter user gain Twitter benefit

  8. Hi, nice tool my client is using this program to track our client’s ranking. However, he wants to retrieve the previous ranking data is that possible or the program updates itself every week and thus leave the first data behind and make the current data as the „current ranking“?


    • The program creates a new column with the date and results every time your ranking is tracked. Make sure to set up the the time-driven trigger.

      • @Frank Krumm, I just set-up the time-driven trigger and my client added the code exactly 1 week ago. Do you think it will update today? Thanks

Schreibe einen Kommentar