¿Qué es el archivo robots.txt? | Cómo funciona un archivo robots.txt

Un archivo robots.txt contiene instrucciones que indican a los bots a qué páginas web pueden y no pueden acceder. Los archivos Robots.txt son más importantes para los rastreadores web de motores de búsqueda como Google.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Más información acerca de qué es un archivo robots.txt y sus funciones
  • Entender cómo interactúan los bots con un archivo robots.txt
  • Explorar los protocolos utilizados en un archivo robots.txt, incluyendo el Protocolo de exclusión de bots y Sitemaps

Contenido relacionado


¿Quieres saber más?

Suscríbase a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.

Revisa la política de privacidad de Cloudflare para saber más sobre cómo Cloudflare gestiona tus datos personales.

Copiar enlace del artículo

Defiéndete contra los ataques de bots como el relleno de credenciales y la apropiación de contenido con Cloudflare

¿Qué es Robots.txt?

El modelo OSI

Un archivo robots.txt es un conjunto de instrucciones para bots. Este archivo está incluido en los archivos fuente de la mayoría de los sitios web. Los archivos robots.txt están diseñados principalmente para gestionar las actividades de los bots beneficiosos, como los rastreadores web, ya que es poco probable que los bots perjudiciales sigan las instrucciones.

Pensemos que un archivo robots.txt es como un cartel de "Código de conducta" colocado en la pared de un gimnasio, un bar o un centro comunitario: el cartel por sí mismo no tiene la capacidad de obligar a cumplir las normas enumeradas, pero los "buenos" clientes las cumplirán, mientras que es probable que los "malos" no las cumplan y sean expulsados.

Un bot es un programa informático automatizado que interactúa con sitios web y aplicaciones. Hay bots beneficiosos y bots perjudiciales, y hay un tipo de bot beneficioso que se conoce como bot rastreador de web. Estos bots "rastrean" las páginas web e indexan el contenido para que pueda aparecer en los resultados de los motores de búsqueda. Un archivo robots.txt ayuda a gestionar las actividades de estos rastreadores web para que no sobrecarguen el servidor web que aloja el sitio, ni indexen páginas que no están destinadas a ser vistas por el público.

¿Cómo funciona un archivo robots.txt?

Un archivo robots.txt es simplemente un archivo de texto sin código de marcado HTML (de ahí la extensión .txt). El archivo robots.txt se aloja en el servidor web como cualquier otro archivo del sitio web. De hecho, normalmente se puede ver el archivo robots.txt de cualquier sitio web escribiendo la URL completa de la página de inicio y añadiendo después /robots.txt, como https://www.cloudflare.com/robots.txt. El archivo no está vinculado a ninguna otra parte del sitio, así que no es probable que los usuarios se lo encuentren, pero la mayoría de los bots rastreadores web buscarán primero este archivo antes de rastrear el resto del sitio.

Aunque un archivo robots.txt proporciona instrucciones para los bots, no puede hacer que se cumplan las instrucciones. Un bot beneficioso, como un rastreador web o un bot de información, intentará visitar primero el archivo robots.txt antes de ver cualquier otra página de un dominio, y cumplirá con las instrucciones. Un bot perjudicial ignorará el archivo robots.txt o lo procesará para encontrar las páginas web que están prohibidas.

Un bot rastreador web cumplirá con el conjunto de instrucciones más específico del archivo robots.txt. Si hay órdenes contradictorias en el archivo, el bot cumplirá la orden más granular.

Una cosa importante que hay que tener en cuenta es que todos los subdominios necesitan su propio archivo robots.txt. Por ejemplo, mientras que www.cloudflare.com tiene su propio archivo, todos los subdominios de Cloudflare (blog.cloudflare.com, community.cloudflare.com, etc.) necesitan también el suyo.

¿Qué protocolos se utilizan en un archivo robots.txt?

En redes, un protocolo es un formato para proporcionar instrucciones o comandos. Los archivos robots.txt utilizan un par de protocolos diferentes. El protocolo principal se llama Protocolo de exclusión de bots. Es una forma de indicar a los bots las páginas web y recursos que deben evitar. Las instrucciones formateadas para este protocolo están incluidas en el archivo robots.txt.

El otro protocolo utilizado para los archivos robots.txt es el protocolo Sitemaps. Este se puede considerar un protocolo de inclusión de bots. Sitemaps muestran a un rastreador web qué páginas puede rastrear. Esto ayuda a garantizar que un bot rastreador no se pierda ninguna página importante.

Ejemplo de archivo robots.txt

Este es el archivo robots.txt para www.cloudflare.com:

El modelo OSI

A continuación, desglosamos lo que todo esto significa.

¿Qué es un agente de usuario? ¿Qué significa 'User-agent: *'?

Cualquier persona o programa activo en Internet tendrá un "agente de usuario", o un nombre asignado. Para los usuarios humanos, esto incluye información como el tipo de navegador y la versión del sistema operativo, pero no información personal; ayuda a los sitios web a mostrar contenidos compatibles con el sistema del usuario. Para los bots, el agente de usuario (en teoría) ayuda a los administradores del sitio web a saber qué tipo de bots están rastreando el sitio.

En un archivo robots.txt, los administradores del sitio web pueden proporcionar instrucciones específicas para determinados bots al escribir instrucciones diferentes para los agentes de usuario de los bots. Por ejemplo, si un administrador quiere que una determinada página aparezca en los resultados de búsqueda de Google, pero no en los de Bing, podría incluir dos conjuntos de comandos en el archivo robots.txt: un conjunto precedido por "User-agent: Bingbot" y un conjunto precedido por "User-agent: Googlebot".

En el ejemplo anterior, Cloudflare ha incluido "User-agent: *" en el archivo robots.txt. El asterisco representa el comodín "agente de usuario", y quiere decir que las instrucciones se aplican a todos los bots, y no a uno en concreto.

Los nombres de los agentes de usuario de los bots de los motores de búsqueda son los siguientes:

Google:

  • Googlebot
  • Googlebot-Image (para imágenes)
  • Googlebot-News (para noticias)
  • Googlebot-Video (para vídeo)

Bing

  • Bingbot
  • MSNBot-Media (para imágenes y vídeos)

Baidu

  • Baiduspider

¿Cómo funcionan los comandos "Disallow" en un archivo robots.txt?

El comando Disallow es el más habitual en el protocolo de exclusión de bots. Indica a los bots que no accedan a la página web o al conjunto de páginas web que vienen después del comando. Las páginas no permitidas no están necesariamente "ocultas", simplemente no son útiles para el usuario medio de Google o Bing, por lo que no se le muestran. En la mayoría de ocasiones, un usuario del sitio web puede seguir navegando hasta estas páginas si sabe dónde encontrarlas.

El comando Disallow puede utilizarse de varias maneras, varias de las cuales se muestran en el ejemplo anterior.

Bloquear un archivo (es decir, una página web concreta)

Como ejemplo, si Cloudflare quisiera bloquear a los bots para que no rastreen nuestro artículo " ¿Qué es un bot?", dicho comando se escribiría de la siguiente manera:

Disallow: /learning/bots/what-is-a-bot/

Después del comando "disallow", se incluye la parte de la URL de la página web que viene después de la página de inicio, en este caso: "www.cloudflare.com". Con este comando, los bots beneficiosos no accederán a https://www.cloudflare.com/learning/bots/what-is-a-bot/, y la página no aparecerá en los resultados de los motores de búsqueda.

Bloquear un directorio

En ocasiones, es más eficiente bloquear varias páginas a la vez, en lugar de enumerarlas todas individualmente. Si todas se encuentran en la misma sección del sitio web, un archivo robots.txt puede limitarse a bloquear el directorio que las contiene.

Un ejemplo de lo anterior es:

Disallow: /__mesa/

Esto quiere decir que todas las páginas incluidas en el directorio __mesa no deben ser rastreadas.

Permitir el acceso total

Este comando tendría el siguiente aspecto:

Disallow:

Esto indica a los bots que pueden navegar por todo el sitio web, ya que nada está no permitido.

Ocultar todo el sitio web a los bots

Disallow: /

El "/" representa aquí la "raíz" en la jerarquía de un sitio web, o la página desde la que parten todas las demás páginas, por lo que incluye la página de inicio y todas las páginas enlazadas desde ella. Con este comando, los bots de los motores de búsqueda no pueden rastrear el sitio web.

En otras palabras, ¡una sola barra puede eliminar todo un sitio web de las búsquedas de Internet!

¿Qué otros comandos forman parte del Protocolo de exclusión de bots?

Allow: tal y como cabría esperar, el comando "Allow" indica a los bots que tienen permiso para acceder a una determinada página web o directorio. Este comando permite que los bots lleguen a una página web en particular, mientras que no permite el acceso al resto de páginas web del archivo. No todos los motores de búsqueda reconocen este comando.

Crawl-delay: El comando crawl delay está diseñado para evitar que los bots araña de los motores de búsqueda sobrecarguen un servidor. Permite que los administradores especifiquen cuánto tiempo, en milisegundos, debe esperar el bot entre cada solicitud. A continuación, un ejemplo de comando Crawl-delay en el que se indica que debe esperar 8 milisegundos:

Crawl-delay: 8

Google no reconoce este comando, aunque sí lo hacen otros motores de búsqueda. En Google, los administradores pueden cambiar la frecuencia de rastreo de su sitio web en Google Search Console.

¿Qué es el protocolo Sitemaps? ¿Por qué está incluido en robots.txt?

El protocolo Sitemaps ayuda a los bots a saber qué deben incluir en su rastreo de un sitio web.

Un Sitemap es un archivo XML con el siguiente aspecto:

Ejemplo de Sitemap

Es una lista legible por máquinas de todas las páginas de un sitio web. Mediante el protocolo Sitemaps, se pueden incluir enlaces a estos sitemaps en el archivo robots.txt. El formato es: "Sitemaps:" seguido de la dirección web del archivo XML. Puedes ver varios ejemplos en el archivo robots.txt de Cloudflare de arriba.

Aunque el protocolo de los sitemaps ayuda a garantizar que los bots araña web no se pierdan nada al rastrear un sitio web, los bots seguirán su proceso de rastreo habitual. Los Sitemaps no obligan a los bots rastreadores a priorizar las páginas web de forma diferente.

¿Cómo se relaciona robots.txt con la gestión de bots?

La gestión de bots es fundamental para mantener un sitio web o una aplicación en funcionamiento, porque incluso la activadad de los bots beneficiosos puede sobrecargar un servidor de origen, ralentizando o tumbando una propiedad web. Un archivo robots.txt bien diseñado mantiene un sitio web optimizado para SEO y mantiene la actividad de los bots beneficiosos bajo control.

Sin embargo, un archivo robots.txt no servirá de mucho para gestionar el tráfico de bots maliciosos. Una solución de gestión de bots como Cloudflare Bot Management o Super Bot Fight Mode puede ayudar a frenar la actividad de los bots maliciosos sin afectar a bots esenciales como los rastreadores web.

Huevos de Pascua de robots.txt

En ocasiones, un archivo robots.txt contendrá huevos de pascua: mensajes humorísticos que dejaron los desarrolladores porque sabían que los usuarios rara vez ven estos archivos. Por ejemplo, el archivo robots.txt de Youtube dice lo siguiente: "Creado en un futuro lejano (el año 2000) después del levantamiento robótico de mediados de los 90 que acabó con todos los humanos." El archivo robots.txt de Cloudflare dice: "Querido bot, sé amable."


#    .__________________________.
#    | .___________________. |==|
#    | | ................. | |  |
#    | | ::[ Querido bot ]: | |  |
#    | | ::::[ sé amable ]:: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | | ,|
#    | !___________________! |(c|
#    !_______________________!__!
#   /                            \
#  /  [][][][][][][][][][][][][]  \
# /  [][][][][][][][][][][][][][]  \
#(  [][][][][____________][][][][]  )
# \ ------------------------------ /
#  \______________________________/

Google también cuenta con un archivo "humans.txt" en: https://www.google.com/humans.txt