"The numbers tell the tale"

As a small EDA startup that sells its software via Internet, it is of upmost importance to be easily found. Therefore SEO (Search Engine Optimization) is one of our major tasks. The higher www.sigasi.com ranks on the search pages for the keywords related to our business, the more visitors we can expect.

But how can we keep track of the result of our SEO efforts?

Of course, the number of trials and sales remain the most important metrics. But I also wanted to easily keep track of the search position of individual keywords. To that purpose I combined some scripts to visualize the position of the keywords we optimize for. I customized the rankcheck script of Willem van Zyl to get the Google search position and combined it with the dygraph library from Dan Vanderkam to visualize the results.

Example

(Mouse over to highlight individual values. Click and drag to zoom. Double-click to zoom back out.

Change the number and hit enter to adjust the averaging period.)

   

Show Series:





How to use it

I find the timeplots generated with the dygraph really powerful. They are not only visually pleasant, but they also allow to hover, zoom and average the graphs. Just click and drag to zoom in and double click to zoom back out. You can also smooth the plots by averaging over multiple days. Just enter a different value in the text box at the bottom left of the plot to adjust the averaging period.

I also added check-boxes so that you can easily look at the trend of a custom selection of keywords.

How it is done

Every night a server at Sigasi runs the attached cron-script (cron.sh) that gets the Google position for the specified keywords and updates the graph. The easiest way to run this script is to use cron. I however re-used our Hudson installation, because I find it easier to verify the script keeps on running flawlessly.

This is what cron.sh does:

  • cron.sh calls rankcheck.py (The original rankcheck script was slightly modified according to the recent changes in the Google result pages.) for each of the keywords specified in terms.csv. Make sure you use + instead of spaces.
  • The results are stored in data.csv.
  • Next, the data file is converted (generate.py) in a html page (data.html) which contains the plot and the check-boxes to select the keywords to visualize. For your convenience the dygraph Javascript library is also bundled in the attached sources.

Download

You can download our scripts here. You might also need to install Python and PycURL (yum install python-pycurl on Fedora).

Hendrik.