Crawling infrastructure

Cómo interpreta Google la especificación de robots.txt

Los rastreadores
automatizados de Google
admiten elRobots Exclusion Protocol (REP)

.
Esto significa que, antes de rastrear un sitio, los rastreadores de Google descargan y analizan el archivo robots.txt del sitio para extraer información sobre qué partes del sitio se pueden rastrear. El REP no es aplicable a los rastreadores de Google controlados por usuarios (por ejemplo, suscripciones a feeds) o rastreadores utilizados para aumentar la seguridad del usuario (por ejemplo, análisis de malware).
Esta página describe la interpretación del REP por parte de Google. Para ver el estándar original, consulte.

Cómo interpreta Google la especificación de robots.txt

RFC 9309

Qué es un archivo robots.txt

Si no desea que los rastreadores accedan a secciones de su sitio, puede crear un archivo robots.txt con las reglas apropiadas. Un archivo robots.txt es un archivo de texto que contiene reglas sobre qué rastreadores pueden acceder a qué partes de un sitio. Por ejemplo, el archivo robots.txt para example.com puede tener este aspecto:
Si es nuevo en robots.txt, comience con nuestraintroducción a robots.txt
. También puede encontrar.

consejos para crear un archivo robots.txt

Ubicación del archivo y rango de validez Debe colocar el archivo robots.txt en el directorio de nivel superior de un sitio, en un protocolo compatible. La URL del archivo robots.txt distingue entre mayúsculas y minúsculas (como otras URL). En el caso de Google Search, los protocolos compatibles son HTTP, HTTPS y FTP. En HTTP y HTTPS, los rastreadores obtienen el archivo robots.txt con una solicitud GET HTTP no condicional; en FTP, los rastreadores utilizan un comando RETR (RETRIEVE)

Cómo interpreta Google la especificación de robots.txt — 2

estándar, mediante inicio de sesión anónimo.

Las reglas enumeradas en el archivo robots.txt se applycan solo al host, protocolo y número de puerto donde se aloja el archivo robots.txt.

Ejemplos de URL de robots.txt válidas

La siguiente tabla contiene ejemplos de URL de robots.txt y las rutas de URL para las cuales son válidas. La columna uno contiene la URL de un archivo robots.txt y la columna dos contiene los dominios a los que se aplicaría y no se aplicaría ese archivo robots.txt.
Ejemplos de URL de robots.txt

https://example.com/robots.txt

Este es el caso general. No es válido para otros subdominios, protocolos o números de puerto. Es válido para todos los archivos en todos los subdirectorios en el mismo host, protocolo y número de puerto.

  • Válido para:
  • https://example.com/

https://example.com/folder/file

  • No válido para:
  • https://other.example.com/
  • http://example.com/
https://example.com:8181/

https://www.example.com/robots.txt

Un robots.txt en un subdominio solo es válido para ese subdominio.
Válido para:

https://www.example.com/

  • No válido paraকারীর / No válido para: (Not valid for: -> No válido para:):
    Not valid for translated as No válido para: -> Let's use No válido para:
  • https://shop.www.example.com/
  • https://www.shop.example.com/
https://example.com/folder/robots.txtNo es un archivo robots.txt válido. Los crawlers no buscan archivos robots.txt en subdirectorios.
https://www.exämple.com/robots.txt

Los IDN son equivalentes a sus versiones en punycode. Véase también
RFC 3492.

Válido para:

  • https://www.exämple.com/
  • https://xn--exmple-cua.com/

No válido para:
https://www.example.com/

ftp://example.com/robots.txt

Válido para:
ftp://example.com/

No válido para:
https://example.com/

https://212.96.82.21/robots.txt

Un archivo robots.txt con una dirección IP como nombre de host solo es válido para el rastreo de esa dirección IP como nombre de host. No es válido automáticamente para todos los sitios web alojados en esa dirección IP (aunque es posible que el archivo robots.txt se comparta, en cuyo caso también estaría disponible bajo el nombre de host compartido).

Válido para:
https://212.96.82.21/

No válido para:
https://example.com/ (incluso si está alojado en 212.96.82.21)

https://example.com:443/robots.txt

Los números de puerto estándar (80 para HTTP, 443 para HTTPS,
21 para FTP) son equivalentes a sus nombres de host predeterminados.

Válido para:

  • https://example.com:443/
  • https://example.com/

No válido para:
https://example.com:444/

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 de puerto.

Válido para:
https://example.com:8181/

No válido para:
https://example.com/

Gestión de errores y códigos de estado HTTP

Al solicitar un archivo robots.txt, el código de estado HTTP de la respuesta del servidor afecta a cómo el archivo robots.txt será utilizado por los rastreadores de Google. La siguiente tabla resume cómo Googlebot trata los archivos robots.txt para diferentes códigos de estado HTTP.

Gestión de errores y códigos de estado HTTP
2xx (éxito)Los códigos de estado HTTP que indican éxito hacen que los rastreadores de Google procesen el archivo robots.txt tal y como lo proporciona el servidor.
3xx (redirección)

Google sigue al menos cinco saltos de redirección según lo definido por
RFC 1945 y luego
se detiene y lo trata como un 404 para el archivo robots.txt. Esto también se aplica a cualquier URL no permitida en la cadena de redirección, ya que el rastreador no pudo recuperar las reglas debido a las redirecciones.

Google no sigue redirecciones lógicas en archivos robots.txt (marcos, JavaScript o
redirecciones de tipo meta refresh).

4xx (errores del cliente)

Los rastreadores de Google tratan todos los 4xx errores, excepto 429, como si no existiera un archivo robots.txt válido. Esto significa que Google asume que no hay restricciones de rastreo.

5xx (errores del servidor)

Si Google encuentra un archivo robots.txt pero no puede recuperarlo, Google sigue este comportamiento:

  1. Durante las primeras 12 horas, Google deja de rastrear el sitio pero sigue intentando recuperar el archivo robots.txt.
  2. Si Google no puede recuperar una versión nueva, durante los siguientes 30 días Google utilizará la última versión correcta, mientras sigue intentando recuperar una versión nueva. Un 503 (servicio no disponible)
    error da como resultado reintentos bastante frecuentes. Si no hay una versión en caché disponible,
    Google asume que no hay restricciones de rastreo.
  3. Si los errores siguen sin solucionarse después de 30 días:
    • Si el sitio está generalmente disponible para Google, Google se comportará como si no hubiera
      ningún archivo robots.txt (pero seguirá comprobando si hay una nueva versión).
    • Si el sitio tiene problemas generales de disponibilidad, Google dejará de rastrear el sitio,
      mientras sigue solicitando periódicamente un archivo robots.txt.
Otros erroresUn archivo robots.txt que no se puede recuperar debido a problemas de DNS o de red, como
tiempos de espera agotados, respuestas no válidas, conexiones restablecidas o interrumpidas y errores de fragmentación HTTP, se trata como un error de servidor.

Almacenamiento en caché

Google generalmente almacena en caché el contenido del archivo robots.txt durante un máximo de 24 horas, pero puede almacenarlo en caché durante más tiempo en situaciones en las que actualizar la versión en caché no sea posible (por ejemplo, debido a tiempos de espera o 5xx errores). La respuesta en caché puede ser compartida por diferentes rastreadores.
Google puede aumentar o disminuir la duración de la caché basándose en
max-age Cache-Control
Cabeceras HTTP.

Formato de archivo

El archivo robots.txt debe ser un
UTF-8 archivo de texto plano codificado y las líneas deben estar separadas por CR, CR/LF, o
LF.

Google ignora las líneas no válidas en los archivos robots.txt, incluido el
Marca de Orden de Bytes
(BOM) al principio del archivo robots.txt, y utiliza solo líneas 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, ignorando todo lo demás.

Del mismo modo, si la codificación de caracteres del archivo robots.txt no es UTF-8, Google puede ignorar los caracteres que no formen parte del rango UTF-8, lo que podría invalidar las reglas de robots.txt.

Google aplica un límite de tamaño de archivo robots.txt de 500
kibibytes (KiB). El contenido que se encuentra después del tamaño máximo de archivo se ignora. Puede reducir el tamaño del archivo robots.txt consolidando reglas que darían lugar a un archivo robots.txt demasiado grande. Por ejemplo, coloque el material excluido en un directorio separado.

Sintaxis

Una línea de robots.txt válida consta de un campo, dos puntos y un valor. Los nombres de los campos no distinguen entre mayúsculas y minúsculas (por ejemplo, User-agent y user-agent se tratan igual). Los espacios son opcionales, pero se recomiendan para mejorar la legibilidad. Los espacios al principio y al final de la línea se ignoran. Para incluir comentarios, anteponga a su comentario el carácter
# carácter. Tenga en cuenta que todo lo que esté después del # carácter será ignorado. El formato general es
<field>:<value><#optional-comment>.

Google admite los siguientes campos (otros campos como crawl-delay no son compatibles):

  • user-agent: identifica a qué rastreador se aplican las reglas.
  • allow: una ruta de URL que se puede rastrear.
  • disallow: una ruta de URL que no se puede rastrear.
  • sitemap: la URL completa de un sitemap.

El allow y disallow los campos también se llaman reglas (también conocidas como
directivas). Estas reglas siempre se especifican en la forma de
regla: [path] donde [path] es opcional. De forma predeterminada, no hay restricciones de rastreo para los rastreadores designados. Los rastreadores ignoran las reglas sin un
[path].

El [path] valor, si se especifica, es relativo a la raíz del sitio web desde donde se recuperó el archivo robots.txt (utilizando el mismo protocolo, número de puerto, host y nombres de dominio). El valor de la ruta debe comenzar con / para designar la raíz y el valor distingue entre mayúsculas y minúsculas. Obtenga más información sobre
coincidencia de URL basada en valores de ruta.

user-agent

La user-agent línea identifica a qué reglas de rastreador se aplica. Ver
Los rastreadores y cadenas de user-agent de Google
para obtener una lista completa de cadenas de user-agent que puede utilizar en su archivo robots.txt.

Tanto el user-agent nombre de campo como su valor no distinguen entre mayúsculas y minúsculas.

disallow

La disallow regla especifica las rutas a las que no deben acceder los rastreadores identificados por la user-agent línea con la que la disallow regla está agrupada.
Los rastreadores ignoran la regla sin una ruta.

Google no puede indexar el contenido de las páginas que no pueden ser rastreadas, pero aún puede indexar la URL y mostrarla en los resultados de búsqueda sin un fragmento. Aprenda cómo
bloquear la indexación.

El nombre del campo (disallow) no distingue entre mayúsculas y minúsculas, pero su valor sí.

Uso:

allow

La allow regla especifica las rutas a las que pueden acceder los rastreadores designados. Cuando no se especifica ninguna ruta, la regla se ignora.

El nombre del campo (allow) no distingue entre mayúsculas y minúsculas, pero su valor sí distingue entre mayúsculas y minúsculas.

Uso:

sitemap

Google, Bing y otros motores de búsqueda principales admiten el campo sitemap en
robots.txt, tal como lo define sitemaps.org.

El nombre del campo (sitemap) no distingue entre mayúsculas y minúsculas, pero su valor sí distingue entre mayúsculas y minúsculas.

Uso:

La línea [absoluteURL] apunta a la ubicación de un archivo de sitemap o índice de sitemaps. Debe ser una URL totalmente calificada, incluido el protocolo y el host, y no tiene por qué estar codificada en URL. La URL no tiene por qué estar en el mismo host que el archivo robots.txt. Puede especificar múltiples campos sitemap sin límite en el número de sitemaps que puede incluir. El campo sitemap no está vinculado a ningún agente de usuario específico y puede ser seguido por todos los rastreadores, siempre que no esté deshabilitado para el rastreo.

Por ejemplo:

Agrupación de líneas y reglas

Puede agrupar reglas que se aplican a múltiples agentes de usuario repitiendo las líneas
user-agent para cada rastreador.

Por ejemplo:

En este ejemplo hay cuatro grupos de reglas distintos:

  • Un grupo para el agente de usuario “a”.
  • Un grupo para el agente de usuario “b”.
  • Un grupo para ambos agentes de usuario “e” y “f”.
  • Un grupo para el agente de usuario “h”.

Para obtener la descripción técnica de un grupo, consulte
la sección 2.1 del REP.

Orden de precedencia para agentes de usuario

Solo un grupo es válido para un rastreador en particular. Los rastreadores de Google determinan el grupo correcto de reglas encontrando en el archivo robots.txt el grupo con el agente de usuario más específico que coincida con el agente de usuario del rastreador. Los demás grupos se ignoran. Todo el texto que no coincida se ignora (por ejemplo, tanto googlebot/1.2 como googlebot* son
equivalentes a googlebot). El orden de los grupos dentro del archivo robots.txt es irrelevante.

Si se declara más de un grupo específico para un agente de usuario, todas las reglas de los grupos aplicables al agente de usuario específico se combinan internamente en un solo grupo. Los grupos específicos de agentes de usuario y los grupos globales (*) no se combinan.

Ejemplos

Coincidencia de los campos de user-agent

Así es como los rastreadores elegirían el grupo relevante:

Grupo seguido por rastreador
Googlebot Newsgooglebot-news sigue al grupo 1, porque el grupo 1 es el grupo más específico.
Googlebot (web)googlebot sigue al grupo 3.
Googlebot StorebotStorebot-Google sigue al grupo 2, porque no hay ningún
Storebot-Google grupo específico.
Googlebot News (al rastrear imágenes)Al rastrear imágenes, googlebot-news sigue al grupo 1.
googlebot-news no rastrea las imágenes para Google Imágenes, por lo que solo
sigue al grupo 1.
Otherbot (web)Otros rastreadores de Google siguen al grupo 2.
Otherbot (noticias)Otros rastreadores de Google que rastrean contenido de noticias, pero no se identifican como
googlebot-news siguen al grupo 2. Incluso si hay una entrada para un rastreador relacionado, solo es válida si coincide específicamente.

Agrupación de reglas

Si hay varios grupos en un archivo robots.txt que son relevantes para un user-agent específico,
los rastreadores de Google fusionan internamente los grupos. Por ejemplo:

Los rastreadores agrupan internamente las reglas según el user-agent, por ejemplo:

Las reglas distintas de allow, disallowy user-agent son
ignoradas por el analizador de robots.txt. Esto significa que el siguiente fragmento de robots.txt se trata
como un solo grupo y, por lo tanto, tanto user-agent a como b se ven afectados por disallow: / rule:

Cuando los rastreadores procesan las reglas de robots.txt, ignoran la sitemap línea.
Por ejemplo, así es como los rastreadores entenderían el fragmento anterior de robots.txt:

Coincidencia de URL basada en 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 una URL específica en un sitio. Esto funciona comparando la regla con el componente de ruta de la URL que el rastreador intenta recuperar.
La ruta en las reglas puede ser caracteres UTF-8 en bruto o cadenas UTF-8 codificadas por porcentaje
(según RFC 3986).
Tal como se define en RFC 9309 Section 2.2.2,
los rastreadores de Google comparan las reglas con las URL utilizando sus formas codificadas por porcentaje y canonizan automáticamente las rutas de reglas UTF-8 en bruto en formas codificadas por porcentaje. Esto significa que, por ejemplo,
Disallow: /foo/bar/ツ y Disallow: /foo/bar/%E3%83%84 son tratados de forma idéntica por el analizador.

Google, Bing y otros motores de búsqueda importantes admiten una forma limitada de wildcards para los valores de ruta. Estos caracteres comodín son:

  • * designa 0 o más instancias de cualquier carácter válido.
  • $ designa el final de la URL.

La siguiente tabla muestra cómo los diferentes caracteres comodín afectan al análisis sintáctico:

Ejemplos de coincidencias de ruta
/Coincide con la raíz y cualquier URL de nivel inferior.
/*Equivalente a /. El comodín final se ignora.
/$Coincide solo con la raíz. Se permite el rastreo de cualquier URL de nivel inferior.
/fish

Coincide con cualquier ruta que comience con /fish. Tenga en cuenta que la coincidencia distingue entre mayúsculas y minúsculas.

Coincide con:

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

No coincide:

  • /Fish.asp
  • /catfish
  • /?id=fish
  • /desert/fish
/fish*

Equivalente a: /fish. El comodín final se ignora.

Coincide:

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

No coincide:

  • /Fish.asp
  • /catfish
  • /?id=fish
  • /desert/fish
/fish/

Coincide con cualquier elemento en la carpeta /fish/ .

Coincide:

  • /fish/
  • /fish/?id=anything
  • /fish/salmon.htm

No coincide:

  • /fish
  • /fish.html
  • /animals/fish/
  • /Fish/Salmon.asp
/*.php

Coincide con cualquier ruta que contenga .php.

Coincide:

  • /index.php
  • /filename.php
  • /folder/filename.php
  • /folder/filename.php?parameters
  • /folder/any.php.file.html
  • /filename.php/

No coincide:

  • / (incluso si se mapea a /index.php)
  • /windows.PHP
/*.php$

Coincide con cualquier ruta que termine en .php.

Coincide:

  • /filename.php
  • /folder/filename.php

No coincide:

  • /filename.php?parameters
  • /filename.php/
  • /filename.php5
  • /windows.PHP
/fish*.php

Coincide con cualquier ruta que contenga /fish y .php, en ese orden.

Coincide:

  • /fish.php
  • /fishheads/catfish.php?parameters

No coincide:

/Fish.PHP

Orden de preferencia para las reglas

Al hacer coincidir las reglas de robots.txt con las URL, los rastreadores utilizan la regla más específica según la longitud de la ruta de la regla. En caso de reglas contradictorias, incluidas aquellas con comodines, Google utiliza la regla menos restrictiva.

Los siguientes ejemplos demuestran qué regla aplicarán los rastreadores de Google en una URL determinada.

Situaciones de muestra
https://example.com/page

Regla aplicable: allow: /p, porque es más específica.

https://example.com/folder/page

Regla aplicable: allow: /folder, porque en caso de reglas conflictivas, Google utiliza la regla menos restrictiva.

https://example.com/page.htm

Regla aplicable: disallow: /*.htm, porque la ruta de la regla es más larga y coincide con más caracteres en la URL, por lo que es más específica.

https://example.com/page.php5

Regla aplicable: allow: /page, porque en caso de reglas conflictivas, Google utiliza la regla menos restrictiva.

https://example.com/

Regla aplicable: allow: /$, porque es más específica.

https://example.com/page.htm

Regla aplicable: disallow: /, porque la
allow regla solo se aplica en la URL raíz.

Alien Road

Cómo lo aplicamos

The formal specification resolves the arguments that the introductory guide leaves open, particularly around precedence and wildcards. We cite it directly when a developer and an SEO disagree about whether a rule applies.

Servicios relacionados

Compartir