Cómo Google interpreta la especificación de robots.txt
Los rastreadores automatizados de Google admiten el protocolo de exclusión de robots (REP). Es decir, antes de rastrear un sitio, los rastreadores de Google descargan y analizan el archivo robots.txt del sitio para extraer información sobre las partes que se pueden rastrear. El REP no se aplica a los rastreadores de Google que controlan los usuarios (por ejemplo, las suscripciones a feeds) ni a los rastreadores que se usan para aumentar la seguridad del usuario, como los análisis de software malicioso.
En esta página, se describe la interpretación que hace Google del REP. Para ver el estándar original, consulta RFC 9309.
Qué es un archivo robots.txt
Si no deseas que los rastreadores accedan a determinadas secciones de tu sitio, puedes crear un archivo robots.txt con las reglas correspondientes. El archivo robots.txt es un archivo de texto simple que contiene reglas en las que se establece a que partes de un sitio puede acceder cada rastreador. Por ejemplo, el archivo robots.txt de example.com podría verse de la siguiente manera:
# This robots.txt file controls crawling of URLs under https://example.com. # All crawlers are disallowed to crawl files in the "includes" directory, such # as .css, .js, but Google needs them for rendering, so Googlebot is allowed # to crawl them. User-agent: * Disallow: /includes/ User-agent: Googlebot Allow: /includes/ Sitemap: https://example.com/sitemap.xml
Si aún no conoces mucho sobre robots.txt, comienza con nuestra introducción a robots.txt. También puedes encontrar sugerencias para crear un archivo robots.txt.
Ubicación del archivo y rango de validez
Debes ubicar el archivo robots.txt en el directorio de nivel superior de un sitio, en un protocolo compatible. La URL del archivo robots.txt (al igual que otras URLs) distingue entre mayúsculas y minúsculas. En el caso de la Búsqueda de Google, los protocolos compatibles son HTTP, HTTPS y FTP. En HTTP y HTTPS, los rastreadores recuperan el archivo robots.txt con una solicitud HTTP GET
no condicional. En FTP, se usa un comando RETR (RETRIEVE)
estándar, con acceso anónimo.
Las reglas que se incluyen en el archivo robots.txt se aplican únicamente al host, al protocolo y al número de puerto donde se aloja el archivo.
Ejemplos de URLs de robots.txt válidas
En la siguiente tabla, se muestran ejemplos de las URLs de robots.txt y las rutas de URL para las que son válidas. La primera columna contiene la URL de un archivo robots.txt y la segunda contiene dominios a los que no se aplicaría ese archivo.
Ejemplos de URLs de robots.txt | |
---|---|
https://example.com/robots.txt |
Este es el caso general. No tiene validez para otros subdominios, protocolos ni números de puerto, pero sí para los archivos incluidos en todos los subdirectorios del mismo host, protocolo y número de puerto. Se puede usar en los siguientes casos:
|
https://www.example.com/robots.txt |
Un archivo robots.txt de un subdominio solo es válido para ese subdominio.
Se puede usar en los siguientes casos:
No se puede usar en los siguientes casos:
|
https://example.com/folder/robots.txt |
No es un archivo robots.txt válido. Los rastreadores no buscan archivos robots.txt en los subdirectorios. |
https://www.exämple.com/robots.txt |
Los nombres de dominio internacionalizados (IDN) son equivalentes a sus versiones en Punycode. También consulta RFC 3492. Se puede usar en los siguientes casos:
No se puede usar en los siguientes casos:
|
ftp://example.com/robots.txt |
Se puede usar en los siguientes casos:
No se puede usar en los siguientes casos:
|
https://212.96.82.21/robots.txt |
Un archivo robots.txt que tiene una dirección IP como nombre de host solo es válido para rastrear esa dirección IP como nombre de host. No se podrá usar automáticamente para todos los sitios web alojados en esa dirección IP (aunque es posible que el archivo robots.txt esté compartido, y en tal caso, también estará disponible con el nombre de host compartido).
Se puede usar en los siguientes casos:
No se puede usar en los siguientes casos: |
https://example.com:443/robots.txt |
Los números de puerto estándar ( Se puede usar en los siguientes casos:
No se puede usar en los siguientes casos:
|
https://example.com:8181/robots.txt |
Los archivos robots.txt en números de puerto no estándar solo son válidos para el contenido disponible a través de esos números.
Se puede usar en los siguientes casos:
No se puede usar en los siguientes casos:
|
Administración de errores y códigos de estado HTTP
Cuando solicites un archivo robots.txt, el código de estado HTTP de la respuesta del servidor afecta la manera en que los rastreadores de Google usarán este archivo. En la siguiente tabla, se resume la forma en que Googlebot trata los archivos robots.txt para diferentes códigos de estado HTTP.
Administración de errores y códigos de estado HTTP | |
---|---|
2xx (success) |
Los códigos de estado HTTP que indican el éxito de la operación les indican a los rastreadores de Google que procesen el archivo robots.txt según lo establece el servidor. |
3xx (redirection) |
Google sigue, al menos, cinco saltos de redireccionamiento, según lo que define la RFC 1945 y, luego, se detiene y lo considera error Google no sigue redireccionamientos lógicos en archivos robots.txt (redireccionamientos de actualizaciones de metaetiquetas, de JavaScript o de marcos). |
4xx (client errors) |
Los rastreadores de Google tratan todos los errores |
5xx (server errors) |
Como el servidor no puede brindar una respuesta definitiva a la solicitud de robots.txt de Google, Google interpreta, de manera temporal, los errores de servidor
Si necesitas suspender de manera temporal el rastreo, te recomendamos que publiques un
código de estado HTTP
Si podemos determinar que un sitio está configurado de forma incorrecta para mostrar un código de estado |
Otros errores | Un archivo robots.txt que no se puede recuperar debido a problemas de DNS o de red, como agotamientos del tiempo de espera, respuestas no válidas, restablecimientos, conexiones interrumpidas y errores de fragmentación de HTTP, se trata como un error de servidor. |
Almacenamiento en caché
Por lo general, Google almacena en caché el contenido de archivos robots.txt hasta por 24 horas, pero el período se puede prolongar cuando no es posible actualizar la versión en caché, por ejemplo, debido a tiempos de espera agotados o a errores 5xx
. La respuesta almacenada en caché puede compartirse entre diferentes rastreadores.
Google puede aumentar o reducir la duración de la caché en función de los encabezados HTTP max-age Cache-Control.
Formato del archivo
El archivo robots.txt debe ser un archivo de texto sin formato con codificación UTF-8, y las líneas deben estar separadas por CR
, CR/LF
o LF
.
En los archivos robots.txt, Google ignora las líneas no válidas, incluidas las marcas de orden de bytes (BOM) de Unicode al principio de estos archivos y solo utiliza las válidas. Por ejemplo, si el contenido descargado es HTML en lugar de reglas de robots.txt, Google intentará analizar el contenido y extraer las reglas sin tener en cuenta todo lo demás.
De manera similar, si la codificación de caracteres del archivo robots.txt no es UTF-8, Google puede ignorar los que no forman parte del rango UTF-8 y es posible que invalide las reglas de robots.txt.
Actualmente, Google aplica de manera forzosa un límite de 500 kibibytes (KiB) para los archivos robots.txt. De esta manera, se ignorará el contenido que supere ese tamaño. Para reducir el tamaño del archivo robots.txt, consolida las reglas que generarían un archivo robots.txt de gran tamaño. Por ejemplo, coloca el material excluido en un directorio separado.
Sintaxis
Las líneas de robots.txt válidas consisten en un campo, dos puntos y un valor. Los espacios son opcionales, aunque se recomienda implementarlos para mejorar la legibilidad. Se ignorarán los espacios al comienzo y al final de la línea. Para incluir comentarios, coloca el carácter #
antes de estos. Ten en cuenta que se ignorará todo el contenido después del carácter #
. El formato general es <field>:<value><#optional-comment>
.
Google admite los siguientes campos (no se admiten otros campos, como crawl-delay
):
user-agent
: Identifica a qué rastreador se aplican las reglas.allow
: Es una ruta de URL que se puede rastrear.disallow
: Es una ruta de URL que no se puede rastrear.sitemap
: Es la URL completa de un mapa del sitio.
Los campos allow
y disallow
también se denominan reglas (también conocidos como
directivas). Estas reglas siempre se especifican con el formato rule: [path]
, en el que [path]
es opcional. De forma predeterminada, no hay restricciones de rastreo para los rastreadores designados. Los rastreadores ignoran las reglas sin [path]
.
El valor [path]
, si se especifica, está relacionado con la raíz del sitio web desde donde se recuperó el archivo robots.txt (con el mismo protocolo, número de puerto y nombres de dominio y de host).
El valor de la ruta debe empezar con /
para designar la raíz y distingue mayúsculas de minúsculas. Obtén más información sobre las coincidencias de URL según los valores de ruta.
user-agent
La línea user-agent
identifica a qué rastreador se aplican las reglas. Consulta los rastreadores de Google y las cadenas de usuario-agente para obtener una lista completa de las cadenas de usuario-agente que puedes usar en tu archivo robots.txt.
El valor de la línea user-agent
no distingue mayúsculas de minúsculas.
disallow
La regla disallow
especifica las rutas a las que no deben acceder los rastreadores identificados por la línea user-agent
con la que se agrupa la regla disallow
.
Los rastreadores ignoran la regla que no tiene una ruta.
Google no puede indexar el contenido de las páginas en las que se inhabilitó el rastreo, pero puede continuar indexando la URL y mostrarla en los resultados de la Búsqueda sin un fragmento. Obtén más información sobre como bloquear la indexación.
El valor de la regla disallow
distingue mayúsculas de minúsculas.
Uso:
disallow: [path]
allow
La regla allow
especifica las rutas a las que pueden acceder los rastreadores designados. Cuando no se especifica ninguna, se ignora la regla.
El valor de la regla allow
distingue mayúsculas de minúsculas.
Uso:
allow: [path]
sitemap
Google, Bing y otros motores de búsqueda importantes admiten el campo sitemap
en robots.txt, según la definición de sitemaps.org.
El valor del campo sitemap
distingue entre mayúsculas y minúsculas.
Uso:
sitemap: [absoluteURL]
La línea [absoluteURL]
apunta a la ubicación de un mapa del sitio o de un archivo de índice de mapa del sitio.
Tiene que ser una URL completamente calificada, que incluya el protocolo y el host, y no debe estar codificada como URL. La URL no tiene que estar en el mismo host que el archivo robots.txt. Puedes especificar varios campos sitemap
. Este campo de mapa del sitio no está vinculado a ningún usuario-agente específico, y todos los rastreadores pueden seguirlo, siempre que se permita el rastreo.
Por ejemplo:
user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml
Agrupación de líneas y reglas
Puedes agrupar las reglas que se aplican a varios usuarios-agentes. Para ello, repite las líneas user-agent
de cada rastreador.
Por ejemplo:
user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h
En este ejemplo, se muestran cuatro grupos de reglas distintos:
- Un grupo para el usuario-agente "a"
- Un grupo para el usuario-agente "b"
- Un grupo para los usuarios-agentes "e" y "f"
- Un grupo para el usuario-agente "h"
Para obtener la descripción técnica de un grupo, consulta la sección 2.1 del REP.
Orden de prioridad para usuarios-agentes
Solo un grupo es válido para un rastreador en particular. Para determinar cuál es el grupo de reglas correcto, los rastreadores de Google buscan, en el archivo robots.txt, el grupo que tenga el usuario-agente más específico con el que coincida el usuario-agente del rastreador. Se ignoran los demás grupos y todo el texto que no coincida (por ejemplo, googlebot/1.2
y googlebot*
son equivalentes a googlebot
). El orden de los grupos dentro del archivo robots.txt es irrelevante.
Si hay más de un grupo específico declarado para un usuario-agente, se combinan, de manera interna, en un solo grupo todas las reglas de los grupos aplicables al usuario-agente específico. No se combinan los grupos específicos de usuarios-agentes y los grupos globales (*
).
Ejemplos
Coincidencias de campos user-agent
user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)
Los rastreadores elegirían el grupo relevante de la siguiente forma:
Grupo seguido por rastreador | |
---|---|
Googlebot-News |
googlebot-news sigue al grupo 1, ya que este es el más específico.
|
Googlebot (web) | googlebot sigue al grupo 3. |
Google StoreBot |
Storebot-Google sigue al grupo 2, ya que no hay un grupo Storebot-Google específico.
|
Googlebot-News (al rastrear imágenes) |
Cuando rastrea imágenes, googlebot-news sigue al grupo 1.
Como googlebot-news no rastrea las imágenes de Google Imágenes, solo sigue al grupo 1.
|
Otro robot (web) | Otros rastreadores de Google siguen al grupo 2. |
Otro robot (Noticias) |
Otros rastreadores del contenido de noticias de Google, que no se identifican como googlebot-news , siguen al grupo 2. Aunque haya una entrada de un rastreador relacionado, solo es válida si coincide de forma específica.
|
Agrupación de reglas
Si existen varios grupos en un archivo robots.txt que son relevantes para un usuario-agente específico, los rastreadores de Google los combinan de manera interna. Por ejemplo:
user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp
Los rastreadores agrupan, de forma interna, las reglas según el usuario-agente. Por ejemplo:
user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots
El analizador de robots.txt ignora las reglas que no sean allow
, disallow
ni user-agent
. Eso significa que el siguiente fragmento de robots.txt se trata como un grupo y, por lo tanto, user-agent
a
y b
se ven afectados por la regla disallow: /
:
user-agent: a sitemap: https://example.com/sitemap.xml user-agent: b disallow: /
Cuando los rastreadores procesan las reglas de robots.txt, ignoran la línea sitemap
.
Por ejemplo, así entenderían los rastreadores el fragmento anterior de robots.txt:
user-agent: a user-agent: b disallow: /
Coincidencias de URL según los valores de ruta
Google utiliza el valor de ruta en las reglas allow
y disallow
como base para determinar si una regla se aplica o no a la URL específica de un sitio. Para ello, se compara la regla con el componente de ruta de la URL que el rastreador intenta recuperar.
Los caracteres ASCII que no son de 7 bits y aparecen en una ruta se pueden incluir como caracteres UTF-8 o como caracteres UTF-8 codificados con escape porcentual según la RFC 3986.
Google, Bing y otros motores de búsqueda importantes admiten solo ciertos usos de comodines para valores de ruta. Estos son caracteres comodín:
*
designa 0 o más instancias de cualquier carácter válido.$
designa el final de la URL.
En la siguiente tabla, se muestra el modo en que los diferentes caracteres comodín afectan el análisis:
Ejemplos de coincidencias de ruta | |
---|---|
/ |
Coincide con la raíz y con cualquier URL de nivel inferior. |
/* |
Equivale a / . Se ignora el comodín final. |
/$ |
Coincide solo con la raíz. Se permite el rastreo de cualquier URL de nivel inferior. |
/fish |
Coincide con cualquier ruta que empieza con Coincide con lo siguiente:
No coincide con lo siguiente:
|
/fish* |
Equivale a Coincide con lo siguiente:
No coincide con lo siguiente:
|
/fish/ |
Coincide con cualquier ruta que se incluya en la carpeta Coincide con lo siguiente:
No coincide con lo siguiente:
|
/*.php |
Coincide con cualquier ruta que contenga Coincide con lo siguiente:
No coincide con lo siguiente:
|
/*.php$ |
Coincide con cualquier ruta que termine con Coincide con lo siguiente:
No coincide con lo siguiente:
|
/fish*.php |
Coincide con cualquier ruta que contenga Coincide con lo siguiente:
No coincide con lo siguiente:
|
Orden de prioridad para reglas
Cuando las reglas de robots.txt coinciden con las URLs, los rastreadores usan la regla más específica que se basa en la longitud de la de ruta de la regla. En el caso de reglas en conflicto, incluidas las que tienen comodines, Google utiliza la regla menos restrictiva.
En los siguientes ejemplos, se muestra qué regla aplicarán los rastreadores de Google en una URL determinada.
Ejemplos | |
---|---|
https://example.com/page |
allow: /p disallow: /
Regla aplicable: |
https://example.com/folder/page |
allow: /folder disallow: /folder
Regla aplicable: |
https://example.com/page.htm |
allow: /page disallow: /*.htm
Regla aplicable: |
https://example.com/page.php5 |
allow: /page disallow: /*.ph
Regla aplicable: |
https://example.com/ |
allow: /$ disallow: /
Regla aplicable: |
https://example.com/page.htm |
allow: /$ disallow: /
Regla aplicable: |