The SEO experiment – Part 2 Google Rank graphic


August 17, 2008

A sites position on Google work like this:

Position = Relevance of content * Google Rank

So, knowing my current Google rank is going to be handy. There are a bunch of different ways to discover a sites rank from the Google Toolbar, to a million and one websites. As I want to chart the progress of this site I also need a way to periodically record my results.

I need the following components: a script to periodically measure Page Rank, a database to store the results, and a script to chart the results.

Page Rank Script

After a quick search I came across a great Open Source Google Rank script. This script returns code for a graphic so I rewrote the function pr_image($pagerank) to return a number instead.

The Cron job

I set up a Cron Job to periodically call the following script. (This script is placed outside the html directory for security).

<?php
//Connect to the database
include 'connect.php';

//Include the Page Rank script
include("pagerank.php");

$today = date("Y-m-d");

//Discover the current Page Rank
$gpr= new pageRank();
$gpr->printrank("http://www.matthewbyrne.co.uk");
$pageRank = $gpr->get_pr();

// Insert a row of information into the table
mysql_query("INSERT INTO googlePR (theDate, rank) VALUES('$today','$pageRank' ) ") or die(mysql_error()); 

//We've finished with the database, so close the connection
mysql_close($conn);

?>

Charting the results

The results are displayed live in chart (to the right). This script still needs a bit of work, as it will run off the edge of the graphic after a couple of months, but for now does the job just fine. Also, it looks a lot nicer when the bars are not all zero, so I’m keeping my finger crossed that Google moves me up a rank or too.

<?php
//Connect to the database
include 'connect.php';

//set up image
$height = 120;
$img = ImageCreate(230,$height);
$white = ImageColorAllocate($img,0xFF,0xFF,0xFF);
$black = ImageColorAllocate($img,0x00,0x00,0x00);
$blue = ImageColorAllocate($img,0x14,0x8A,0xD6);
$grey = ImageColorAllocate($img,0xCC,0xCC,0xCC);

//Query databasebase
$query= "SELECT * FROM googlePR_MB";
$data = mysql_query("SELECT * FROM googlePR_MB")
or die(mysql_error()); 

//Build array
$results = array();
while($info = mysql_fetch_array( $data )){
	$reformatDate=date('d M',strtotime($info['theDate']));
	array_push($results, array($reformatDate,$info['rank']));
}
//We've finished with the database, so close the connection
//mysql_close($conn);

$resultCount = count($results);

//Generate bars
for ($i=0;$i<=$resultCount;$i++){
	imageFilledRectangle($img,20+(5*$i),($height-1)-($results[$i][1]*10),20+(5*$i)+3,$height,$blue);
}

//Generate y-scale
for ($j=0;$j<10;$j++){
	ImageString($img,1,8,$height-(10*$j), $j,$grey);
}
//Add titles
ImageString($img,1,20,0,"Google Rank for www.matthewbyrne.co.uk", $black);
ImageString($img,1,20,10, $results[0][0]." - ".$results[$resultCount-1][0],$black);

//Output graphic
header('Content-Type: image/png');
ImagePNG($img);
?>

The SEO experiment – Part 1 groundwork


August 10, 2008

I’ll admit it, I’m very drawn towards Search Engine Optimization (SEO). The idea that you can drastically improve the visibility of your site with a few code and content tweaks certainly does appeal to my lazy bone.

For my experiment this site is currently the perfect candidate; low traffic, and scoring exactly zero in Googles Page Ranking.

However, that’s all about to change.

There are a number of techniques involved in SEO which I’ll cover as I go along.

Okay, first things first; get a Google account. Done that already? Great!

Now what’s needed here is the Webmaster Tools and Analytics. These will show how Google sees this site, help uncover any errors, and measure progress.

Before going any further decide on the url, in my case either:
‘http://matthewbyrne.co.uk’
or
‘http://www.matthewbyrne.co.uk’ – my choice

Whatever you choose, stick with it.

Setting up Google Webmaster tools

  1. Enter the URL of your site
  2. Click ‘Verify your site’
  3. Select a verification method – Here I always choose to upload an html file
  4. Make a blank text file on your desktop, and rename it to your unique file name google5b27wb292f65b6.html
  5. Upload this to your sites root directory using your favourite ftp program – I use FileZilla
  6. Hit verify

Add a sitemap to Google Webmaster tools

If you’re site is built with WordPress, download and install the excellent ‘Google XML Sitemaps Generator for WordPress‘ plug-in. This automatically generates a fresh sitemap each time you add new content taking all the donkey work out of the job. Whilst you’re on their site why not donate a couple of dollars to encourage great software?

  1. For everybody else visit XML-Sitemaps.com to build a sitemap.
  2. Enter your URL
  3. Hit ‘Generate’
  4. Download the file to your desktop
  5. Upload it to your site root with your ftp client
  6. Back in the Webmaster tools hit Sitemap > ‘Add a sitemap’
  7. Fill in the sitemap name ‘sitemap.xml’
  8. Hit ‘Add general web sitemap’ and you’re done

Now I hop over to the Google account page and select Analytics.

Set up Google Analytics

  1. Hit ‘Add new website profile’
  2. Enter your URL
  3. Hit ‘Finish’
  4. Copy the chunk of code into all your pages before the closing body tag and you’re done

I’ll take a few hours/days for Google to process this information, and longer to give you anything meaningful, so don’t hold your breath. Next, determine the Google Page Rank.