detectando la araña

21 de septiembre de 2008

Una de las maneras más sencillas de detectar cuando Google visitó nuestra pagina es utilizando la herramienta "Google Webmaster Tool". Una vez dado de alta nuestra web podemos ver la ultima vez que googlebot visitó nuestra web.

Aquí tenéis un ejemplo de como las Webmaster Tools indican la ultima vez que nos visitaron:

Otra manera mucho más artesanal es detectar mediante PHP cuando el crawler de Googlebot entra en nuestra página. Cuando Googlebot entra en nuetra página se identifica durante el request de la página con un user-agent concreto. En www.useragentstring.com podéis encontrar todos los user-agent de los navegadores, crawlers, lectores de RSS, recolectores de mail, etc.

Lo que buscamos es cómo se identifica el user-agent de Google. Estas son las posibilidades:

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Googlebot/2.1 (+http://www.googlebot.com/bot.html)
Googlebot/2.1 (+http://www.google.com/bot.html)

Por tanto, sólo basta con detectar el string "Googlebot" en la petición de HTTP. El siguiente código PHP almacen en un archivo de texto en el servidor cada vez que el crawler rastrea nuestra pagina. En el archivo de texto almacenamos el día de la visita, la IP del crawler y la página que ha rastreado.

<?php
   if ( strpos( $_SERVER["HTTP_USER_AGENT"], "Googlebot" ) !== false ) {
      $f = "google_visitas.txt";
      $handle = fopen($f, 'a+');
      $data = date("d-m-Y H:m:s") . " " . $_SERVER["REMOTE_ADDR"] . " " . \ 
              $_SERVER["REQUEST_URI"] . "\n";
      fwrite($handle, $data);
      fclose($handle);
   }
?>

Aquí tenéis una lista de IPs de crawlers de Googleboot.

Más información:
+ http://www.robotstxt.org/orig.html
+ http://www.useragentstring.com/index.php?id=108