Home > nuSOAP, php, seo > Google trace script

Google trace script

January 26th, 2009

Ένα απο τα θέματα που μας ενδιαφέρουν σχετικά με το search engine optimization, είναι το κάθε πότε κάνει crawl το google το site μας. Ειδικότερα θέλουμε να δούμε – κυρίως για εγκυκλοπαιδικούς λόγους – πόσος καιρός μεσολαβεί απο ένα crawl μέχρι την παρουσία μιας σελίδας στο index.

Με αυτές τις απορίες κατά νου αποφασίσαμε να δημιουργήσουμε ένα απλό scriptάκι το οποίο απλά καταγράφει κάθε valid request του google. To script είναι πάρα πολύ απλό, ωστόσο ελπίζω να σας χρησιμέψει.

Το Google script

Καταρχήν χρειαζόμαστε ένα mysql database που θα κρατάει τα δεδομένα μας. Στην προκειμένη περίπτωση δημιουργήσαμε ένα database με όνομα “google_spy” και τρέξαμε το παρακάτω SQL για να δημιουργηθεί ο πίνακας που θα κρατάει τα δεδομένα:

CREATE TABLE IF NOT EXISTS `trace` (
  `TraceID` int(10) unsigned NOT NULL auto_increment,
  `Domain` varchar(100) NOT NULL default '',
  `Time` datetime NOT NULL default '0000-00-00 00:00:00',
  `Bot` varchar(100) NOT NULL default '',
  `Url` text NOT NULL,
  PRIMARY KEY  (`TraceID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Παρακάτω είναι το php script που κάνει την δουλειά:

<?
php
define ('GOOGLE_AGENT','Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)');

//A few settings for the script:

$db_host = 'localhost';

$db_user = 'user';

$db_pass = 'password';

function googlebot($ip)  {

  $bot = 'googlebot.com';

  $name = gethostbyaddr($ip);

  if ($name == $ip) return false;

  return (strpos($name, $bot) !== false and gethostbyname($name) == $ip) ? true : false;

}

if ($_SERVER['HTTP_USER_AGENT']==GOOGLE_AGENT &amp;amp;amp;&amp;amp;amp; googlebot($_SERVER['REMOTE_ADDR'])) 

{

	$url='http://'.$_SERVER['HTTP_HOST'];

	if ($_SERVER['REQUEST_URI']) $url.=$_SERVER['REQUEST_URI'];

	$url_u8=iconv('Windows-1253','UTF-8',$url);

	if (crc32($url)==crc32(iconv('UTF-8','Windows-1253',$url_u8))) $url=$url_u8;

	$url=urldecode($url);

	$sql ="INSERT LOW_PRIORITY INTO `google_spy`.`trace` SET `Domain`='".$_SERVER['HTTP_HOST']."',`Time`='".date('Y-m-d H:i:s')."',";

	$sql.="`Bot`='".gethostbyaddr($_SERVER['REMOTE_ADDR'])."',`Port`='".$_SERVER['REMOTE_PORT']."',`Url`='$url'";

	$con=mysql_connect($db_host,$db_user,$db_pass);

	mysql_query("SET NAMES 'utf8'",$con);

	mysql_query($sql,$con);

	mysql_close($con);

}

?>

Για να το χρησιμοποιείσετε απλώς αλλάξτε τα settings στην αρχή ($db_host, $db_user, $db_pass) και κάντε include το script σε οποιοδήποτε site θέλετε να κρατάτε logs. Σημειώστε οτι το script κρατάει μία εγγραφή ανα visit (που προέρχεται απο το google) οπότε καλό θα είναι να σβήνετε τα δεδομένα ανα τακτά χρονικά διαστήματα.

Αν κάνετε κάποια μετατροπή ή δημιουργήσετε ένα όμορφο interface για το scriptάκι μήν διστάσετε να το μοιραστείτε μαζί μας :)

nuSOAP, php, seo , ,

blog comments powered by Disqus