Detectar bot con PHP

Muchas veces estamos a punto de lanzar un sitio pero todavia no nos interesa que los robots de busqueda lo indexen, quiza porque aun no hemos terminado el trabajo SEO o quiza simplemente queremos saber cuantas veces al dia ingresa el bot a nuestra pagina.

Si contamos con soporte PHP en nuestro servidor, agregando las siguientes lineas podremos saber si el que acaba de entrar a la web es o no un bot.

$SEARCH_ENGINES_UA = array(
// Google Web
‘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)’,
// Yahoo! Web
‘Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)’,
// MSN web
‘msnbot/1.0 (+http://search.msn.com/msnbot.htm)’,
‘msnbot/0.9 (+http://search.msn.com/msnbot.htm)’,
‘msnbot/0.11 ( http://search.msn.com/msnbot.htm)’,
‘MSNBOT/0.1 (http://search.msn.com/msnbot.htm)’
);

if(in_array($_SERVER[‘HTTP_USER_AGENT’],$SEARCH_ENGINES_UA))
{
header(‘HTTP/1.1 302 Found’);
header(“Location: http://www.internetox.com/”);
exit();
}

Vamos a explicar el codigo:

$SEARCH_ENGINES_UA = array(
// Google Web
‘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)’,
// Yahoo! Web
‘Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)’,
// MSN web
‘msnbot/1.0 (+http://search.msn.com/msnbot.htm)’,
‘msnbot/0.9 (+http://search.msn.com/msnbot.htm)’,
‘msnbot/0.11 ( http://search.msn.com/msnbot.htm)’,
‘MSNBOT/0.1 (http://search.msn.com/msnbot.htm)’
);

Es el array en el que se encuentran detallados los User Agent conocidos de los distintos buscadores (en este caso solo Yahoo, Google y Live), ese User Agent es lo que usa el bot para identificarse frente al servidor.

if(in_array($_SERVER[‘HTTP_USER_AGENT’],$SEARCH_ENGINES_UA))
{
header(‘HTTP/1.1 302 Found’);
header(“Location: http://www.internetox.com/”);
exit();
}

Segunda parte, con la funcion in_array preguntamos si el “$_SERVER[‘HTTP_USER_AGENT’]” (osea el nombre con el que se esta identificando el “usuario”) se encuentra en la lista de BOTS ($SEARCH_ENGINES_UA).

Si se encuentra entra en el IF y ejecuta, en este caso el siguiente codigo:

header(‘HTTP/1.1 302 Found’);
header(“Location: http://www.internetox.com/”);
exit();

Que no es ni mas ni menos que una redireccion a http://www.internetox.com (aqui debes poner la url que deseas), con una cabecera 302 (una redireccion temporal).

Dentro de este bloque, osea, dentro de las llaves ({}) puedes ingresar lo que quieras, por ejemplo puedes habilitar un contador para ver cuantas veces entran los distintos bots a tu sitio o enviarte un mail cada vez que lo hacen.

Espero que les sea de utilidad, muchas gracias.

Comentarios

comentarios

Related Posts

2 Comments

Add Comment