Robots.txt

En general, los administradores de páginas web profesionales aspiran a aumentar la visibilidad de su proyecto en los buscadores. Para ello, uno de los principales requisitos es, precisamente, la posibilidad de que todas las páginas relevantes puedan ser examinadas por los robots y, por consiguiente, incluidas en el índice. Sin embargo, es importante tener en cuenta que los robots raramente indexan una página al completo. Incluso en el caso del todopoderoso Google la capacidad de análisis y de almacenamiento de contenidos está limitada, asignándose a cada dominio un presupuesto específico de rastreo que determina cuántos URL han de ser analizados e indexados por día.  Especialmente para proyectos ambiciosos, los administradores deberían, por esto, pensar estratégicamente y rentabilizar este presupuesto indicando a los robots qué páginas deberían ser rastreadas y cuáles ignoradas. Para ello, cuentan con herramientas como las indicaciones en los meta tags, los canonical tags, las redirecciones de dominio y los archivos robots.txt, que pasamos a detallarte a continuación en este tutorial.

¿Qué es un archivo robots.txt?

El robots.txt es un documento de texto que se aloja en el directorio raíz de un dominio y que permite a los administradores controlar el acceso de los buscadores a una página web, bloqueando, si es necesario, ciertas partes para todos o para algunos rastreadores. A diferencia de otros instrumentos como las indicaciones meta robots y las redirecciones, que son válidas para un documento HTML en concreto, las indicaciones en un fichero robots.txt se refieren al directorio  completo.

No hay que olvidar, sin embargo, que las instrucciones en un robots.txt son interpretadas por los rastreadores como recomendaciones y no como obligaciones. Con este archivo no se puede forzar a un robot a ningún comportamiento. Google y otros grandes buscadores admiten seguir estas indicaciones, pero la única manera completamente segura de impedir el acceso a ciertas subpáginas o a determinados archivos es la protección con contraseña, en especial si tenemos en cuenta la existencia de robots más agresivos que no se verán frenados en sus intenciones (spam) por estas instrucciones.

Crear un archivo robots.txt

Para comunicar a los robots rastreadores las recomendaciones de indexación se ha de crear un archivo de texto, denominarlo exactamente robots.txt y subirlo a la raíz del dominio.

Si las recomendaciones de rastreo se definieran para el dominio ejemplo.es, el robots.txt debería encontrarse en el mismo directorio que www.ejemplo.es. En Internet, este archivo se encontraría en "http://www.ejemplo.es/robots.txt". Si el alojamiento elegido para el proyecto no permite ningún acceso a la raíz del dominio del servidor, sino exclusivamente a una subcarpeta (como "http://www.ejemplo.es/usuario/"), no es posible crear un archivo robots.txt.

Para crear un robots.txt hay que usar un editor de texto plano como vi para Linux o notepad.exe para Windows y cuidar que la transferencia del archivo por FTP tenga lugar en modo ASCII. En la red se puede usar un generador de archivos robots.txt como Mcanerin.

Para evitar los errores sintácticos que podrían ocasionar graves consecuencias en la indexación del proyecto, se recomienda validar el archivo antes de subirlo. Google pone la herramienta llamada Probador de robots.txt a disposición de los webmasters en su Search Console.

Cómo se escribe un robots.txt

Un archivo robots.txt contiene registros (records) que están compuestos por dos partes. La primera de ellas se dirige con la palabra clave User agent a un robot de búsqueda, al cual se le dictan las recomendaciones incluidas en la segunda parte. Estas instrucciones son generalmente prohibiciones que comienzan con la palabra clave Disallow, siguiendo a continuación el nombre del directorio o de los archivos que se dejarán fuera del examen. Este sería el esquema básico:

User-agent: Googlebot
Disallow: /temp/ 
Disallow: /news.html
Disallow: /print 

Este ejemplo va dirigido al robot de Google exclusivamente (Googlebot) y le prohíbe examinar el directorio  /temp/ y el archivo news.html. También se bloquean todos los archivos y directorios cuya ruta comienza por print. Aquí es importante tener en cuenta que Disallow: /temp/ y Disallow: /print solo se diferencian por la barra / al final de la línea, una diferencia que en la sintaxis del robots.txt tiene una gran relevancia.

Añadir comentarios

De ser necesario, se pueden añadir comentarios a un archivo robots.txt (que no son leídos por los robots). Se escriben después del símbolo # y se pueden integrar en cualquier lugar.

# robots.txt para http://www.ejemplo.es

User-agent: Googlebot
Disallow: /temp/ # El directorio contiene archivos efímeros 
Disallow: /print/ # El directorio contiene documentos para imprimir
Disallow: /news.html # El archivo cambia diariamente 

Indicaciones a varios crawlers

Si se desea dictar recomendaciones a varios rastreadores a la vez, se puede construir un robots.txt con varios bloques de texto, uno para cada user agent, estructurados según el esquema básico. Para diferenciarlos, se deja una línea en blanco antes de cada nuevo user agent.

# robots.txt para http://www.ejemplo.es

  User-agent: Googlebot
  Disallow: /temp/ 
   
  User-agent: Bingbot 
  Disallow: /print/

Mientras que el crawler de Google no tiene permitido acceder al directorio /temp/ de archivos temporales, el robot de Bing no puede entrar en /print/.

Instrucciones a todos los crawlers

En el caso de querer bloquear directorios y archivos a todos los robots rastreadores se usa un asterisco (*) como comodín para todos los user agents.

# robots.txt para http://www.ejemplo.es

User-agent: *
Disallow: /temp/
Disallow: /print/
Disallow: /pictures/

Este archivo robots.txt bloquea a todos los rastreadores el acceso a los directorios /temp/, /print/ y /pictures/.

Excluir a todos los directorios de la indexación

Si se quiere bloquear una página entera es suficiente con escribir una barra inclinada (/) tras Disallow:

# robots.txt para http://www.ejemplo.es

User-agent: *
Disallow: /

Así indicamos a los rastreadores que deben ignorar la página entera. Esta recomendación sería útil en el caso, por ejemplo, de una web que se encuentra aún en la fase de prueba.

Permitir la indexación de todos los directorios

Si un robot ha de tener acceso a la página entera se usa la palabra clave Disallow sin la barra detrás:

# robots.txt para http://www.ejemplo.es

  User-agent: Googlebot
  Disallow: 

Tabla 1: Funciones básicas del robots.txt
Instrucción Ejemplo Función
User agent: User agent: Googlebot Se dirige a un determinado crawler.
  User-agent: * Se dirige a todos los robots.
Disallow: Disallow: Se permite la indexación de la página entera.
  Disallow: / Se bloquea la indexación de toda la página.
  Disallow: /directorio/ Se bloquea el acceso a un determinado directorio.
  Disallow: /archivo.html Se bloquea un determinado archivo.

Funciones avanzadas

Además de las funciones básicas establecidas prácticamente como estándar, algunos buscadores soportan otros parámetros que permiten precisar las recomendaciones de un robots.txt. Las siguientes instrucciones se pueden encontrar en las páginas de ayuda de Google y se apoyan en un acuerdo con Microsoft (Bing) y Yahoo!.

Definir excepciones

Además de Disallow, Google también soporta Allow, una palabra clave que permite definir excepciones para directorios bloqueados:

# robots.txt para http://www.ejemplo.es

User-agent: Googlebot
Disallow: /news/ 
Allow: /news/index.html 

En este ejemplo, a pesar de que Disallow bloquea el acceso dell robot al directorio /news/, Allow permite acceder al archivo index.html dentro de /news/ "http:// www.ejemplo.es/news/index.html".

Bloquear tipos específicos de archivo

Si se quiere prohibir la examinación de archivos con una terminación determinada, se usa un registro que sigue este esquema:

# robots.txt para http://www.ejemplo.es

User-agent: Googlebot
Disallow: /*.pdf$

Con Disallow, la instrucción afecta a todos los archivos terminados en .pdf, protegiéndolos de la indexación del robot. El asterisco actúa como comodín para todos los nombres de archivo antes de esta terminación. El signo del dólar señaliza el final de la línea (se identifican así todos los lugares donde pdf acabe una línea)

Señalizar el mapa del sitio al robot

Además de dirigir el comportamiento de los crawlers, robots.txt también puede indicar al robot donde puede encontrar el mapa del sitio (sitemap) para que la indexación sea mucho más rápida y efectiva. Esto podría realizarse así:

# robots.txt para http://www.ejemplo.es

User-agent: *
Disallow: /temp/

Sitemap: http://www.ejemplo.es/sitemap.xml

Tabla 2: Funciones avanzadas del robots.txt
Instrucción Ejemplo Función
Allow: Allow: /ejemplo.html El archivo indicado (ejemplo.html) puede ser rastreado
Disallow: /*…$ Disallow: /*.jpg$ Se bloquea el acceso a archivos con una terminación específica (.jpg).
Sitemap: Sitemap: http://www.ejemplo.es/sitemap.xml El mapa del sitio en XML se encuentra en la dirección proporcionada.