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.
- Mediapartners-Google, que es el crawler que se encarga de revisar los anuncios de Google Adsense.
- Googlebot-Image, robot indexador de imagenes del buscador de Google.
- Bingbot, crawler de indexación del buscador Bing
- Slurp, crawler de indexación del antiguo buscador Yahoo!
- Scooter, del clásico buscador Altavista.
- Impedir acceso a robots determinados: Puede parecer contradictorio, pero algunos crawlers no nos proporcionarán sino problemas. Algunos robots no son de buscadores, e incluso algunos robots no son ni amigos. Pero de eso ya hablaremos más tarde.
- Reducir la sobrecarga del servidor: Podrás controlar el flujo de algunos robots. Algunos de ellos son un verdadero descontrol de peticiones que pueden llegar a saturar tu servidor.
- Prohibir zonas: Nos puede interesar tener disponible una zona en nuestra web, que sea accesible para algunos, pero que no aparezca en buscadores.
- Eliminar contenido duplicado: Uno de los casos más importantes, que casi siempre es olvidado por los webmasters. Si eliminamos la duplicidad de contenido, los buscadores nos puntuaran muy alto, aumentando el flujo de visitas.
- Fijar mapas del sitio: También es posible acoplar un sitemap para indicar el buen camino a los robots.
Creación del fichero robots.txt
¿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 él. 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:- Disallow: / prohibe la entrada a todo el sitio.
- Disallow: /foro/ prohibe la entrada a los documentos del directorio foro.
- Disallow: permite la entrada a todo el sitio.
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. Veamos un ejemplo:
# Crawler de Bing
User-agent: bingbot
Disallow: /links.html
Disallow: /private/
Disallow: /photos/
Este código impide al crawler del buscador de Bing (Microsoft) 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.
Opciones avanzadas: Comodines
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:
- blog.com/articulo/titulo, la dirección principal.
- blog.com/2007/04/, el archivo del mes.
- blog.com/articulo/titulo/feed, feed RSS del artículo.
- blog.com/articulo/titulo/pagina/2, pagina 2 de comentarios.
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/.
Reducir frecuencia de rastreo
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 puede que no lo soporten todos los crawlers. Bing y Google si lo soportan.Incluir Sitemap
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.Conclusiones
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 formas alternativas para indicar a los crawlers que secciones deben o no deben indexar, como los meta tag Robots o la cabecera X-Robots-Tag, creados para casos más específicos. Si quieres más información sobre optimización web, te recomiendo el artículo Optimizar el rendimiento de tu página web.
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 otros robots, deberemos echar mano al fichero .htaccess, pero como decía Michael Ende, eso ya es otra historia...
No hay comentarios:
Publicar un comentario
Todos los comentarios son bien recibidos...