robots.txt es el nombre de archivo utilizado para implementar el Protocolo de exclusión de robots , un estándar utilizado por los sitios web para indicar a los rastreadores web visitantes y otros robots web qué partes del sitio web pueden visitar.
El estándar, desarrollado en 1994, se basa en el cumplimiento voluntario . Los bots maliciosos pueden usar el archivo como un directorio de las páginas que deben visitar, aunque los organismos de normalización desaconsejan contrarrestar esto con seguridad por oscuridad . Algunos sitios de archivo ignoran robots.txt. El estándar se utilizó en la década de 1990 para mitigar la sobrecarga del servidor . En la década de 2020, muchos sitios web comenzaron a rechazar los bots que recopilan información para la inteligencia artificial generativa .
El archivo "robots.txt" se puede utilizar junto con sitemaps , otro estándar de inclusión de robots para sitios web.
El estándar fue propuesto por Martijn Koster [1] [ 2] cuando trabajaba para Nexor [3] en febrero de 1994 [4] en la lista de correo www-talk , el principal canal de comunicación para actividades relacionadas con la WWW en ese momento. Charles Stross afirma haber provocado a Koster para que sugiriera robots.txt, después de que escribiera un rastreador web con mal comportamiento que inadvertidamente provocó un ataque de denegación de servicio en el servidor de Koster. [5]
El estándar, inicialmente RobotsNotWanted.txt, permitía a los desarrolladores web especificar qué robots no debían acceder a su sitio web o a qué páginas no debían acceder. Internet era lo suficientemente pequeño en 1994 como para mantener una lista completa de todos los robots; la sobrecarga del servidor era una preocupación principal. En junio de 1994 se había convertido en un estándar de facto ; [6] la mayoría lo cumplía, incluidos los operados por motores de búsqueda como WebCrawler , Lycos y AltaVista . [7]
El 1 de julio de 2019, Google anunció la propuesta del Protocolo de Exclusión de Robots como estándar oficial bajo el Grupo de Trabajo de Ingeniería de Internet . [8] Un estándar propuesto [9] se publicó en septiembre de 2022 como RFC 9309.
Cuando el propietario de un sitio desea dar instrucciones a los robots web, coloca un archivo de texto llamado robots.txt en la raíz de la jerarquía del sitio web (por ejemplo, https://www.example.com/robots.txt ). Este archivo de texto contiene las instrucciones en un formato específico (consulte los ejemplos a continuación). Los robots que eligen seguir las instrucciones intentan obtener este archivo y leer las instrucciones antes de obtener cualquier otro archivo del sitio web . Si este archivo no existe, los robots web suponen que el propietario del sitio web no desea imponer ninguna limitación al rastreo de todo el sitio.
Un archivo robots.txt contiene instrucciones para los robots que indican a qué páginas web pueden acceder y a cuáles no. Los archivos robots.txt son especialmente importantes para los rastreadores web de motores de búsqueda como Google.
Un archivo robots.txt en un sitio web funcionará como una solicitud para que robots específicos ignoren archivos o directorios específicos al rastrear un sitio. Esto podría deberse, por ejemplo, a una preferencia por la privacidad de los resultados de los motores de búsqueda, o a la creencia de que el contenido de los directorios seleccionados podría ser engañoso o irrelevante para la categorización del sitio en su conjunto, o al deseo de que una aplicación solo funcione con ciertos datos. Los enlaces a páginas incluidas en robots.txt pueden seguir apareciendo en los resultados de búsqueda si están vinculados a una página que se rastrea. [10]
Un archivo robots.txt cubre un origen . En el caso de sitios web con varios subdominios, cada uno de ellos debe tener su propio archivo robots.txt. Si example.com tuviera un archivo robots.txt pero a.example.com no, las reglas que se aplicarían a example.com no se aplicarían a a.example.com . Además, cada protocolo y puerto necesita su propio archivo robots.txt; http://example.com/robots.txt no se aplica a páginas bajo http://example.com:8080/ o https://example.com/ .
El protocolo robots.txt es ampliamente respetado por los operadores de bots. [6]
Algunos de los principales motores de búsqueda que siguen este estándar incluyen Ask, [11] AOL, [12] Baidu, [13] Bing, [14] DuckDuckGo, [15] Google, [16] Yahoo!, [17] y Yandex. [18]
Algunos proyectos de archivado web ignoran robots.txt. Archive Team utiliza el archivo para descubrir más enlaces, como mapas de sitios . [19] El cofundador Jason Scott dijo que "sin marcar y sin tocar, el archivo robots.txt garantiza que no se reflejen ni hagan referencia a elementos que puedan tener un uso y significado general más allá del contexto del sitio web". [20] En 2017, Internet Archive anunció que dejaría de cumplir con las directivas de robots.txt. [21] [6] Según Digital Trends , esto siguió al uso generalizado de robots.txt para eliminar sitios históricos de los resultados de los motores de búsqueda, y contrastó con el objetivo de la organización sin fines de lucro de archivar "instantáneas" de Internet tal como existía anteriormente. [22]
A partir de la década de 2020, los operadores web comenzaron a usar robots.txt para denegar el acceso a los bots que recopilan datos de entrenamiento para la IA generativa . En 2023, Originality.AI descubrió que 306 de los mil sitios web más visitados bloquearon GPTBot de OpenAI en su archivo robots.txt y 85 bloquearon Google-Extended de Google . Muchos archivos robots.txt nombraron a GPTBot como el único bot explícitamente deshabilitado en todas las páginas. Negar el acceso a GPTBot era común entre sitios web de noticias como la BBC y The New York Times . En 2023, el servidor de blogs Medium anunció que denegaría el acceso a todos los rastreadores web de inteligencia artificial porque "las empresas de IA han extraído valor de los escritores para enviar spam a los lectores de Internet". [6]
GPTBot cumple con el estándar robots.txt y brinda asesoramiento a los operadores web sobre cómo deshabilitarlo, pero David Pierce de The Verge dijo que esto solo comenzó después de "entrenar los modelos subyacentes que lo hicieron tan poderoso". Además, algunos bots se utilizan tanto para motores de búsqueda como para inteligencia artificial, y puede ser imposible bloquear solo una de estas opciones. [6] 404 Media informó que empresas como Anthropic y Perplexity.ai eludieron robots.txt al cambiar el nombre o crear nuevos raspadores para reemplazar los que aparecían en listas de bloqueo populares . [23]
A pesar del uso de los términos "permitir" y "no permitir", el protocolo es puramente consultivo y se basa en el cumplimiento del robot web ; no puede hacer cumplir nada de lo que se indica en el archivo. [24] Es poco probable que los robots web maliciosos respeten robots.txt; algunos incluso pueden usar robots.txt como guía para encontrar enlaces no permitidos e ir directamente a ellos. Si bien a veces se afirma que esto es un riesgo de seguridad, [25] este tipo de seguridad a través de la oscuridad es desaconsejado por los organismos de normalización. El Instituto Nacional de Estándares y Tecnología (NIST) en los Estados Unidos recomienda específicamente contra esta práctica: "La seguridad del sistema no debe depender del secreto de la implementación o sus componentes". [26] En el contexto de los archivos robots.txt, la seguridad a través de la oscuridad no se recomienda como técnica de seguridad. [27]
Muchos robots también pasan un agente de usuario especial al servidor web cuando obtienen contenido. [28] Un administrador web también podría configurar el servidor para que devuelva automáticamente un error (o pase contenido alternativo ) cuando detecte una conexión que utilice uno de los robots. [29] [30]
Algunos sitios, como Google , alojan un humans.txt
archivo que muestra información destinada a ser leída por humanos. [31] Algunos sitios como GitHub redirigen humans.txt a una página Acerca de . [32]
Anteriormente, Google tenía un archivo de broma alojado en el que /killer-robots.txt
se le ordenaba a Terminator que no matara a los fundadores de la compañía, Larry Page y Sergey Brin . [33] [34]
Este ejemplo les dice a todos los robots que pueden visitar todos los archivos porque el comodín *
representa a todos los robots y la Disallow
directiva no tiene valor, lo que significa que no se permiten páginas.
Agente de usuario: *Rechazar:
Agente de usuario: *Permitir: /
Se puede lograr el mismo resultado con un archivo robots.txt vacío o faltante.
Este ejemplo les dice a todos los robots que se mantengan fuera de un sitio web:
Agente de usuario: *No permitir: /
Este ejemplo les dice a todos los robots que no ingresen a tres directorios:
Agente de usuario: *No permitir: /cgi-bin/No permitir: /tmp/No permitir: /basura/
Este ejemplo les dice a todos los robots que se mantengan alejados de un archivo específico:
Agente de usuario: *No permitir: /directorio/archivo.html
Se procesarán todos los demás archivos en el directorio especificado.
Agente de usuario: BadBot # reemplace 'BadBot' con el agente de usuario real del botNo permitir: /
Este ejemplo le dice a dos robots específicos que no ingresen a un directorio específico:
Agente de usuario: BadBot # reemplace 'BadBot' con el agente de usuario real del botAgente de usuario: GooglebotNo permitir: /privado/
Ejemplo que demuestra cómo se pueden utilizar los comentarios:
# Los comentarios aparecen después del símbolo "#" al comienzo de una línea o después de una directiva.Agente de usuario: * # coincide con todos los botsNo permitir: / # mantenerlos fuera
También es posible incluir varios robots con sus propias reglas. La cadena de robots real la define el rastreador. Algunos operadores de robots, como Google , admiten varias cadenas de agente de usuario que permiten al operador denegar el acceso a un subconjunto de sus servicios mediante el uso de cadenas de agente de usuario específicas. [16]
Ejemplo que demuestra múltiples agentes de usuario:
Agente de usuario: googlebot # todos los servicios de GoogleNo permitir: /private/ # no permitir este directorioAgente de usuario: googlebot-news # solo el servicio de noticiasNo permitir: / # no permitir nadaAgente de usuario: * # cualquier robotNo permitir: /algo/ # no permitir este directorio
El valor crawl-delay es compatible con algunos rastreadores para limitar sus visitas al host. Dado que este valor no forma parte del estándar, su interpretación depende de que el rastreador lo lea. Se utiliza cuando la ráfaga múltiple de visitas de los bots está ralentizando el host. Yandex interpreta el valor como la cantidad de segundos que se deben esperar entre visitas posteriores. [18] Bing define crawl-delay como el tamaño de una ventana de tiempo (de 1 a 30 segundos) durante la cual BingBot accederá a un sitio web solo una vez. [35] Google ignora esta directiva, [36] pero proporciona una interfaz en su consola de búsqueda para webmasters, para controlar las visitas posteriores de Googlebot . [37]
Agente de usuario: bingbotPermitir: /Retraso de arrastre: 10
Algunos rastreadores admiten una Sitemap
directiva que permite varios mapas de sitios en el mismo sitio.robots.txten la forma : [38]Sitemap: full-url
Mapa del sitio: http://www.example.com/sitemap.xml
El estándar de exclusión de robots no menciona el carácter "*" en la Disallow:
declaración. [39]
Además de los archivos robots.txt de nivel raíz, las directivas de exclusión de robots se pueden aplicar a un nivel más granular mediante el uso de metaetiquetas Robots y encabezados HTTP X-Robots-Tag. La metaetiqueta robots no se puede utilizar para archivos que no sean HTML, como imágenes, archivos de texto o documentos PDF. Por otro lado, la X-Robots-Tag se puede agregar a archivos que no sean HTML mediante el uso de archivos .htaccess y httpd.conf . [40]
< meta nombre = "robots" contenido = "noindex" />
Etiqueta de X-Robots: noindex
La etiqueta X-Robots-Tag solo es efectiva después de que se ha solicitado la página y el servidor responde, y la etiqueta meta robots solo es efectiva después de que se ha cargado la página, mientras que robots.txt es efectiva antes de que se solicite la página. Por lo tanto, si un archivo robots.txt excluye una página, cualquier etiqueta meta robots o encabezados X-Robots-Tag se ignoran de manera efectiva porque el robot no los verá en primer lugar. [40]
El Protocolo de Exclusión de Robots requiere que los rastreadores analicen al menos 500 kibibytes (512000 bytes) de archivos robots.txt, [41] que Google mantiene como una restricción de tamaño de archivo de 500 kibibytes para los archivos robots.txt. [42]
ads.txt
, un estándar para listar vendedores de anuncios autorizadossecurity.txt
, un archivo para describir el proceso que deben seguir los investigadores de seguridad para informar sobre vulnerabilidades de seguridad