Cada vez que nosotros (o algún sistema) accede a una página web determinada, este acceso es registrado en un log, donde se guardan varios datos, entre ellos el User-agent, que no es más que una identificación del sistema para que los webmasters conozcan de quién se trata.
Pero como siempre, la ley hace la trampa, y muchos robots maliciosos pululando por la red. A continuación voy a crear un pequeño diccionario con los crawlers, robots y spiders más famosos, alguna referencia y una breve descripción.
WordPress/2.0 WordPress 2.1.2 WordPress/1.9
Googlebot/2.1 (+http://www.googlebot.com/bot.html) Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
msnbot/1.0 (+http://search.msn.com/msnbot.htm) msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)
noxtrumbot/1.0 (crawler@noxtrum.com)
Mozilla/5.0 (compatible; Google Desktop)
psbot/0.1 (+http://www.picsearch.com/bot.html)
FAST MetaWeb Crawler (helpdesk at fastsearch dot com)
Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98)
Yeti/0.01 (nhn/1noon, yetibot@naver.com, check robots.txt daily and follow it)
Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://about.ask.com/en...
Scooter/3.3
Snapbot/1.0 (Snap Shots, +http://www.snap.com)
W3C_Validator/1.555 Jigsaw/2.2.5 W3C_CSS_Validator_JFouffa/2.0
TestCrawler/Nutch-0.9 (Testing Crawler for Research ; http://chitchit... TestCrawler/Nutch-0.9 (Testing Crawler for Research ; http://balihoo.com... test/Nutch-0.8.1 (Test robot; http://test.com; info at test.com
BlogPulseLive (support@blogpulse.com)
Gigabot/2.0 (http://www.gigablast.com/spider.html)
ConveraCrawler/0.9e (+http://www.authoritativeweb.com/crawl)
MJ12bot/v1.2.0 (http://majestic12.co.uk/bot.php?+)
Microsoft-WebDAV-MiniRedir/5.1.2600 Jakarta Commons-HttpClient Microsoft URL Control - 6.00.8169 Microsoft URL Control - 6.00.8862 Microsoft URL Control - 6.00.8877 Microsoft URL Control - 6.01.9782
Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 ...
Mozilla/5.0 (Twiceler-0.9 http://www.cuill.com/twiceler/robot.html)
Attentio/Nutch-0.9-dev (Attentio's beta blog crawler;...
Moreoverbot/5.00 (+http://www.moreover.com)
Mozilla/5.0 (compatible; woriobot heritrix/1.10.0 +http://worio.com)
EmeraldShield.com Web Spider ...
Sogou Orion spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1; aggregator:Tailrank; ...
webcollage 1.93 webcollage 1.129 webcollage 1.125 webcollage 1.114 webcollage 1.117
Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)
Technoratibot/0.7
Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/...
Mozilla/5.0 (iphone; u; cpu like mac os x; en) applewebkit/420+ ... Opera/9.10 (nintendo wii; u; ; 1621; es-es) Mozilla/4.0 (psp (playstation portable); 2.00)
Evidentemente faltan muchos, pero me he preocupado de poner los más comunes (al menos desde mi experiencia). Confío en ir ampliando el diccionario según lleguen webmasters interesados en el tema. ¡No duden en comentar para ampliar la lista!
El fichero robots.txt es un archivo de texto que dicta unas recomendaciones para que todos los crawlers y robots de buscadores cumplan (¡ojo! recomendaciones, no obligaciones). Pero comencemos por el principio.
Un crawler es un robot de una entidad (generalmente buscadores) que acceden a las páginas web de un sitio para buscar información en ella, añadirla en los buscadores, etc. También son llamados spiders, arañas, bots o indexadores.
Por ejemplo, Googlebot es el nombre del crawler del buscador Google. También existen otros como:
Y muchísimos más. Si establecemos un control en nuestro robots.txt, podremos conseguir una serie de beneficios:
¿Y entonces, que hay que hacer? Es muy sencillo.
Sólo tenemos que crear un fichero de texto robots.txt y comenzar a escribir en el. Partiré del siguiente ejemplo donde permitimos la entrada a todos los crawlers (igual que sin ningún robots.txt):
User-agent: *
Disallow:
En User-agent debemos introducir el nombre del robot, y a continuación las rutas donde queremos prohibir que acceda. Algunos ejemplos:
En algunos casos suele utilizarse en lugar de Disallow, la palabra Allow. Aunque por definición es correcta, es conveniente no utilizarla, puesto que las rutas omitidas se asumen que están permitidas por defecto, y algunos crawlers no entienden la palabra Allow.
Es posible acumular varios Disallow bajo un mismo User-agent, pero no podemos utilizar varios User-agent encima de un Disallow. Bien, algún ejemplo:
# Crawler de MSN
User-agent: msnbot
Disallow: /links.html
Disallow: /private/
Disallow: /photos/
Este código impide al crawler del buscador de Live (MSN) acceder a la página links.html, y las carpetas private y photos (y todo su contenido) de nuestro sitio.
Añadiendo el carácter # al principio de una linea podemos escribir comentarios que no interpretará el crawler.
Es posible ir acumulando reglas para distintos crawlers, formando un robots.txt más largo y completo. Cada vez que escribamos un User-agent deberemos dejar una linea en blanco de separación. Además, existe una ligera adaptación que permiten usar comodines ($ y *) en las rutas en algunos crawlers (sólo Googlebot y Slurp):
User-agent: Slurp
Disallow: /*.js$
Disallow: /2006/*
Disallow: /2007/*
Disallow: /articulos/*/pagina/*
Se está indicando al robot de Yahoo, que no indexe los ficheros que terminen en .js (javascript), direcciones que empiecen por 2007 o 2006 (fechas), ni artículos con la palabra pagina (paginado de comentarios). Estos casos pertenecen a la idea de no indexar contenido duplicado.
En la mayoría de los blogs, puedes acceder a un mismo artículo por las direcciones:
Todo esto es contenido duplicado, una de las razones más importantes de penalización para un buscador, a no ser, claro, que te las ingenies para que sólo sea accesible desde una dirección. A la hora de ver los resultados te asombrarás lo bien que estarás quedando ante los ojos de Google, por ejemplo.
Hay que tener mucho cuidado con usar cosas como Disallow: /pagina o Disallow: /*pagina, puesto que en lugar de bloquear lo que queríamos (carpeta pagina o artículos paginados), terminen bloqueando direcciones como /decorar-mi-pagina o /paginas-para-amigos/.
Si revisas estadísticas y demás, también puedes observar que a veces algunos crawlers «se pasan» revisando nuestro sitio, y funden a peticiones a nuestro pobre servidor. Existe una manera de tranquilizar a los robots:
User-agent: noxtrumbot
Crawl-delay: 30
Con esto le decimos al robot de noxtrum que espere 30 segundos entre cada acceso. Cuidado, porque Crawl-delay no lo soportan todos los crawlers (al menos MSNBot y Slurp si lo soportan, y Googlebot desde el panel de webmasters también).
Finalmente, podemos también incluir un mapa del sitio en nuestro robots.txt de la siguiente forma:
Sitemap: http://www.emezeta.com/sitemap.xml
En RobotsTXT.org podrás encontrar documentación oficial si quieres profundizar y en esta búsqueda de Google encontrarás muchos robots.txt de ejemplo, incluso robots.txt optimizados para tu tipo de web. Además, también tienes un validador de robots.txt.
Recordar a todos que con el fichero robots.txt no podemos bloquear los accesos por «fuerza bruta». Robots.txt es una recomendación del webmaster a los buscadores, que como son «robots buenos», las seguirán al pie de la letra.
Existen otros «robots malos» (que buscan direcciones de correos o formularios para hacer SPAM) que no dudarán en acceder a los lugares que hayas prohibido si lo desean. Para bloquear estos, deberemos echar mano al fichero .htaccess, pero como decía Michael Ende, eso ya es otra historia...
Examinando las estadísticas web de hoy me sorprendo al observar un pequeño detalle:

Desde hace algún tiempo sabía que existía la posibilidad de instalar una extensión en Firefox para falsificar nuestro User Agent llamada User Agent Switcher y poder hacernos pasar por el mismisimo Crawler de Google, GoogleBot.
La diferencia radica en que mientras el crawler original de Google mantenía su identificación como:
Googlebot/2.1 (+http://www.google.com/bot.html)
Los usuarios que navegaban con esta extensión tenían la siguiente, pudiendo hacerse pasar por el robot, pero siendo fácilmente identificable por los webmasters:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
...o eso creía yo, hasta que ví que el "supuesto" usuario con la segunda identificación tenía una IP/Host de Google.
Buscando un poco por la red, doy con una aclaración de GoogleGuy, empleado de Google que responde a las preguntas de webmasters en relación al buscador. En este caso nos explica el porque Google está cambiando su User Agent. Un resumen en español:
GoogleGuy:Estamos considerando el cambiar nuestro User Agent a algo similar a Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html). La razón principal de éste cambio es que algunos servidores web asumen que un navegador que no sea Internet Explorer, Netscape/Mozilla u Opera no soporta Javascript, Frames, etc. Por lo tanto con este cambio Google podrá acceder a más información. GoogleBot estaría más cerca de ser un usuario normal y podría seguir siendo identificado como crawler y mostrando la dirección para ampliar información (sobre robots.txt y otros).
6 consultas efectuadas / Página generada en 0.027 segundos
Programado íntegramente por José Román (Manz) en XHTML y CSS estándar.
Sindicado bajo Feed RSS. Contenido bajo licencia Creative Commons
Estadísticas de visitas · Términos y condiciones · Contacto · Publicidad · Preguntas frecuentes (FAQ)