Como sabréis, los motores de búsqueda se sirven de «robots», programas que indexan las páginas web alojadas en un servidor, para que estas puedan ser localizadas por el buscador (Google, yahoo…). Por defecto todos los robots tendrán el acceso permitido y podrán ver todo lo que tengamos alojado en la raíz de nuestro servidor, y en muchos casos eso no nos interesa.
¿Cómo arreglamos esto? Con el robots.txt, archivo que generalmente guardaremos en la raíz de nuestro servidor. En él podemos incluir qué directorios queremos desactivar y para qué bots. Un ejemplo simple: este robots.txt bloquería todo el directorio raíz (con todos sus subdirectorios) para todos los bots:
User-agent: * Disallow: / #y si quieres poner comentarios, que no serán interpretados por los bots/crawler basta con comenzar la línea con este carater#
Las utilidades del robots.txt pueden ser más de las que a priori imaginas. Obviamente evita que se indexe contenido que quieras mantener oculto o protegido, pero también te permite evitar que se indexe contenido duplicado (recuerda, el contenido duplicado rebaja tu page-rank), impedir la idexación de bots no deseados (no todos los bots son de buscadores legítimos) y si tienes un site con mucho tráfico evitará una carga de trabajo extra sobre el servidor.
Vamos a ir por partes, explicando algunas peculiaridades.
La primera es que puedes incluir varios Disallow bajo un mismo user agent, pero no varios user agent encima de un disallow.
#así sí User-agent: bingbot Disallow: /wp-content/ Disallow: /js/ User-agent: Googlebot Disallow: /wp-content/ Disallow: /js/ #así NOOOOOOO User-agent: bingbot User-agent: Googlebot Disallow: /wp-content/ Disallow: /js/
En cuanto al uso de comodines y expresiones regulares… puedes usarlos específicamente para
Googlebot y Slurp (el bot de Yahoo). Por lo que he leído el resto no las aceptan, así que no lo intentes usar de forma general ya que muchos crawlers no lo entenderán y sí indizarán esa página.
#esto bloquería todos los archivos .js para Slurp User-agent: Slurp Disallow: /*.js? #esto lo bloquería para Slurp y Googlebot, pero el resto no lo entenderían e indizarían User-agent: * Disallow: /*.js?
Si tienes un sitemap en el servidor puedes incluirlo en el robots.txt con una simple línea:
Sitemap: http://miservidor/sitemap.xml
Y, como te decía arriba, también puedes reducir la frecuencia de rastreo para que los bots no estén entrando todo el día. Si tienes una web con muchas visitas pero pocas actualizaciones basta con especificarlo con Crawl-delay. Eso sí, no todos los bots lo soportan:
#así le dirías al robot de Bing que sólo entre cada 45 días User-agent: bingbot Crawl-delay:45
También se puede usar la palabra Allow en lugar de Disallow… pero por defecto todos los directorios y archivos están permitidos y, además, no todos los bots lo van a entender. Así que mejor Disallow para restringir zonas que Allow para habilitarlas.