Введение
Протокол интернет
Файл robots.txt – это имя файла, используемое для реализации протокола исключения роботов, стандарта, применяемого веб-сайтами для указания веб-сканерам и другим веб-роботам, какие разделы сайта им разрешено посещать. Стандарт, разработанный в 1994 году, основан на добровольном соблюдении. Вредоносные боты могут использовать этот файл как указатель на страницы для посещения, однако организации, занимающиеся стандартизацией, не рекомендуют бороться с этим, полагаясь на безопасность через сокрытие. Некоторые архивные сайты игнорируют файл robots.txt. В 1990-х годах стандарт использовался для снижения нагрузки на серверы; в 2020-х годах многие веб-сайты начали блокировать ботов, собирающих информацию для генеративного искусственного интеллекта. Файл "robots.txt" может использоваться совместно с картами сайта – еще одним стандартом для включения роботов на веб-сайтах.
История
Стандарт был предложен Мартийном Костером, когда он работал в Nexor в феврале 1994 года в списке рассылки www talk, который являлся основным каналом связи для деятельности, связанной с WWW, в то время. Чарльз Стросс утверждает, что спровоцировал Костера на предложение файла robots.txt, после того как он написал некорректно работающего веб-сканера, который непреднамеренно вызвал отказ в обслуживании на сервере Костера. Изначально названный "RobotsNotWanted.txt", стандарт позволял веб-разработчикам указывать, каким ботам не следует получать доступ к их сайту или к каким страницам ботам следует запретить доступ. В 1994 году интернет был достаточно мал, чтобы поддерживать полный список всех ботов; перегрузка серверов была основной проблемой. К июню 1994 года он стал де-факто стандартом, которому следовали большинство, включая поисковые системы, такие как WebCrawler, Lycos и AltaVista. 1 июля 2019 года Google предложил Протокол исключения роботов в качестве официального стандарта в рамках рабочей группы по инженерным задачам в интернете (Internet Engineering Task Force). Предлагаемый стандарт был опубликован в сентябре 2022 года как RFC 9309.
Стандарт
Когда владелец сайта хочет дать инструкции веб-роботам, он размещает текстовый файл, называемый `robots.txt`, в корне иерархии веб-сайта (например, `https://example.com/robots.txt`). Этот текстовый файл содержит инструкции в определенном формате (см. примеры ниже). Роботы, которые следуют инструкциям, пытаются получить этот файл и прочитать инструкции, прежде чем запрашивать какие-либо другие файлы с веб-сайта. Если этого файла нет, веб-роботы предполагают, что владелец веб-сайта не хочет устанавливать никаких ограничений на сканирование всего сайта. Файл `robots.txt` содержит инструкции для ботов, указывающие, к каким веб-страницам им разрешено, а к каким – запрещено обращаться. Файлы `robots.txt` особенно важны для веб-сканеров из поисковых систем, таких как Google. Файл `robots.txt` на веб-сайте служит запросом к указанным роботам игнорировать указанные файлы или каталоги при сканировании сайта. Это может быть обусловлено, например, соображениями конфиденциальности в результатах поиска, убеждением, что содержимое выбранных каталогов может быть вводящим в заблуждение или нерелевантным для категоризации сайта в целом, или желанием, чтобы приложение работало только с определенными данными. Ссылки на страницы, перечисленные в `robots.txt`, все равно могут появляться в результатах поиска, если на них ссылаются со страниц, которые были просканированы. Файл `robots.txt` охватывает один домен. Для веб-сайтов с несколькими поддоменами каждый поддомен должен иметь свой собственный файл `robots.txt`. Если бы у `example.com` был файл `robots.txt`, но у `subdomain.example.com` его не было, правила, применяемые к `example.com`, не распространялись бы на `subdomain.example.com`. Кроме того, для каждого протокола и порта требуется свой файл `robots.txt`; правила, определенные в `robots.txt`, не применяются к страницам, доступным по протоколу `https` или на другом порту.
Соответствие
Файл robots.txt не имеет юридической силы и не поддерживается техническими протоколами, несмотря на то, что большинство операторов ботов его соблюдают. AOL, Baidu, Bing, DuckDuckGo, Google, Yahoo! и Яндекс.
Архивные сайты
Некоторые проекты веб-архива игнорируют файл robots.txt. Команда Archive Team использует этот файл для обнаружения дополнительных ссылок, например, карт сайта. Соучредитель Джейсон Скотт заявил, что "если не контролировать и не вмешиваться, файл robots.txt гарантирует отсутствие зеркального копирования или ссылок на элементы, которые могут иметь общее применение и значение вне контекста веб-сайта". В 2017 году Internet Archive объявил о прекращении соблюдения директив robots.txt.
Искусственный интеллект
Начиная с 2020-х годов, операторы веб-сайтов стали использовать файл robots.txt для блокировки доступа ботов, собирающих данные для обучения генеративных моделей искусственного интеллекта. В 2023 году Originality.AI обнаружил, что 306 из тысячи наиболее посещаемых веб-сайтов заблокировали GPTBot от OpenAI в своем файле robots.txt, а 85 – Google Extended от Google. Во многих файлах robots.txt GPTBot был указан как единственный бот, которому явно запрещен доступ ко всем страницам. Блокировка доступа к GPTBot была распространена среди новостных сайтов, таких как BBC и The New York Times. В 2023 году платформа для ведения блогов Medium объявила о блокировке доступа для всех веб-сканеров, использующих искусственный интеллект, поскольку «компании, занимающиеся ИИ, извлекают выгоду из труда авторов для рассылки спама интернет-пользователям». Вредоносные веб-роботы вряд ли будут соблюдать правила, указанные в файле robots.txt; некоторые могут даже использовать этот файл в качестве руководства для поиска запрещенных ссылок и прямого перехода по ним. Хотя это иногда рассматривается как угроза безопасности, такой подход, основанный на сокрытии информации, не рекомендуется организациями по стандартизации. Национальный институт стандартов и технологий (NIST) в США конкретно не рекомендует эту практику: «Безопасность системы не должна зависеть от секретности ее реализации или компонентов». В контексте файлов robots.txt, обеспечение безопасности путем сокрытия информации не рекомендуется в качестве метода защиты.
Альтернативы
Многие роботы также передают специальный user-agent веб-серверу при запросе контента. Веб-администратор может настроить сервер на автоматический отказ (или выдачу альтернативного контента) при обнаружении соединения от одного из роботов. Некоторые сайты, например Google, размещают файл humans.txt, содержащий информацию, предназначенную для чтения людьми. Некоторые сайты, такие как GitHub, перенаправляют файл humans.txt на страницу "О нас". Ранее Google размещал шуточный файл по адресу /killer robots.txt, в котором Терминатору предписывалось не убивать основателей компании Ларри Пейджа и Сергея Брина.
Карта сайта
Некоторые поисковые роботы поддерживают директиву Sitemap, позволяющую указывать несколько файлов Sitemap в одном файле robots.txt в формате Sitemap: полный URL:
Sitemap: http://www.example.com/sitemap.xml
Sitemap: http://www. example. com/sitemap. xml
Универсальное совпадение "*"
Стандарт исключения роботов не упоминает символ "*" в директиве Disallow:.
Мета-теги и заголовки
В дополнение к файлам robots.txt, расположенным в корневом каталоге, директивы исключения для роботов можно применять на более детальном уровне, используя метатеги Robots и HTTP-заголовки X-Robots-Tag. Метатег Robots нельзя использовать для файлов, не являющихся HTML, таких как изображения, текстовые файлы или PDF-документы. С другой стороны, X-Robots-Tag можно добавлять к файлам, не являющимся HTML, с помощью файлов .htaccess и httpd.conf.