stringtranslate.com

robots.txt

robots.txt — это имя файла, используемое для реализации протокола исключения роботов , стандарта, используемого веб-сайтами для указания веб-сканерам и другим веб-роботам, какие разделы веб-сайта им разрешено посещать.

Стандарт, разработанный в 1994 году, основан на добровольном соблюдении . Вредоносные боты могут использовать файл как справочник страниц, которые следует посетить, хотя органы стандартизации не рекомендуют противодействовать этому с помощью безопасности через неизвестность . Некоторые архивные сайты игнорируют robots.txt. Стандарт использовался в 1990-х годах для смягчения перегрузки сервера . В 2020-х годах многие веб-сайты начали запрещать ботам, собирающим информацию для генеративного искусственного интеллекта .

Файл «robots.txt» можно использовать вместе с файлами Sitemaps — еще одним стандартом включения роботов на веб-сайты.

История

Стандарт был предложен Мартейном Костером [ 1] [2] во время работы в Nexor [3] в феврале 1994 года [4] в списке рассылки www-talk , основном канале связи для деятельности, связанной с WWW в то время. Чарльз Стросс утверждает, что спровоцировал Костера предложить robots.txt после того, как он написал плохо себя ведущего веб-краулера, который непреднамеренно вызвал атаку типа «отказ в обслуживании» на сервер Костера. [5]

Стандарт, изначально RobotsNotWanted.txt, позволял веб-разработчикам указывать, какие боты не должны получать доступ к их веб-сайту или к каким страницам боты не должны получать доступ. Интернет был достаточно мал в 1994 году, чтобы поддерживать полный список всех ботов; перегрузка сервера была основной проблемой. К июню 1994 года он стал фактическим стандартом ; [6] большинство соблюдали его, включая те, которые управлялись поисковыми системами, такими как WebCrawler , Lycos и AltaVista . [7]

1 июля 2019 года Google объявила о предложении протокола исключения роботов в качестве официального стандарта в рамках Целевой группы по инженерии Интернета [8] . Предложенный стандарт [9] был опубликован в сентябре 2022 года как RFC 9309.

Стандарт

Когда владелец сайта хочет дать инструкции веб-роботам, он помещает текстовый файл с именем robots.txt в корень иерархии веб-сайта (например, https://www.example.com/robots.txt ). Этот текстовый файл содержит инструкции в определенном формате (см. примеры ниже). Роботы, которые решают следовать инструкциям, пытаются извлечь этот файл и прочитать инструкции перед извлечением любого другого файла с веб-сайта . Если этот файл не существует, веб-роботы предполагают, что владелец веб-сайта не хочет накладывать никаких ограничений на сканирование всего сайта.

Файл robots.txt содержит инструкции для ботов, указывающие, к каким веб-страницам они могут и не могут получить доступ. Файлы robots.txt особенно важны для веб-краулеров из поисковых систем, таких как Google.

Файл robots.txt на веб-сайте будет функционировать как запрос, чтобы указанные роботы игнорировали указанные файлы или каталоги при сканировании сайта. Это может быть, например, из-за предпочтения конфиденциальности результатов поисковой системы или убеждения, что содержимое выбранных каталогов может быть вводящим в заблуждение или нерелевантным для категоризации сайта в целом, или из-за желания, чтобы приложение работало только с определенными данными. Ссылки на страницы, перечисленные в robots.txt, все еще могут появляться в результатах поиска, если они связаны со страницей, которая сканируется. [10]

Файл robots.txt охватывает один источник . Для веб-сайтов с несколькими поддоменами каждый поддомен должен иметь свой собственный файл robots.txt. Если бы у example.com был файл robots.txt, а у a.example.com — нет, правила, которые применялись бы к example.com, не применялись бы к a.example.com . Кроме того, для каждого протокола и порта нужен свой собственный файл robots.txt; http://example.com/robots.txt не применяется к страницам под http://example.com:8080/ или https://example.com/ .

Согласие

Протокол robots.txt широко соблюдается операторами ботов. [6]

Поисковые системы

Некоторые основные поисковые системы , следующие этому стандарту, включают Ask, [11] AOL, [12] Baidu, [13] Bing, [14] DuckDuckGo, [15] Google, [16] Yahoo!, [17] и Yandex. [18]

Архивные сайты

Некоторые проекты веб-архивирования игнорируют robots.txt. Archive Team использует файл для обнаружения дополнительных ссылок, таких как карты сайта . [19] Соучредитель Джейсон Скотт сказал, что «непроверенный и оставленный в покое файл robots.txt не обеспечивает зеркалирования или ссылок на элементы, которые могут иметь общее использование и значение за пределами контекста веб-сайта». [20] В 2017 году Internet Archive объявил, что он прекратит соблюдать директивы robots.txt. [21] [6] Согласно Digital Trends , это последовало за широко распространенным использованием robots.txt для удаления исторических сайтов из результатов поисковой системы и контрастирует с целью некоммерческой организации архивировать «снимки» Интернета в том виде, в котором он существовал ранее. [22]

Искусственный интеллект

Начиная с 2020-х годов веб-операторы начали использовать robots.txt для запрета доступа ботам, собирающим данные для обучения генеративного ИИ . В 2023 году Originality.AI обнаружила, что 306 из тысячи наиболее посещаемых веб-сайтов заблокировали GPTBot OpenAI в своем файле robots.txt, а 85 заблокировали Google - Extended. Многие файлы robots.txt называли GPTBot единственным ботом, явно запрещенным на всех страницах. Запрет доступа к GPTBot был распространен среди новостных сайтов, таких как BBC и The New York Times . В 2023 году блог-хостинг Medium объявил, что запретит доступ всем веб-краулерам искусственного интеллекта, поскольку «компании ИИ выкачали ценность из писателей, чтобы спамить интернет-читателей». [6]

GPTBot соответствует стандарту robots.txt и дает советы веб-операторам о том, как запретить его, но Дэвид Пирс из The Verge сказал, что это началось только после «обучения базовых моделей, которые сделали его таким мощным». Кроме того, некоторые боты используются как для поисковых систем, так и для искусственного интеллекта, и может быть невозможно заблокировать только один из этих вариантов. [6] 404 Media сообщили, что такие компании, как Anthropic и Perplexity.ai, обошли robots.txt, переименовав или запустив новые скраперы, чтобы заменить те, которые появились в популярных блок-листах . [23]

Безопасность

Несмотря на использование терминов «разрешить» и «запретить», протокол носит исключительно рекомендательный характер и полагается на соответствие веб-робота ; он не может обеспечить соблюдение каких-либо положений, указанных в файле. [24] Вредоносные веб-роботы вряд ли будут соблюдать robots.txt; некоторые из них могут даже использовать robots.txt в качестве руководства для поиска запрещенных ссылок и перехода по ним. Хотя иногда это называют угрозой безопасности, [25] такого рода безопасность через неизвестность не приветствуется органами стандартизации. Национальный институт стандартов и технологий (NIST) в США специально рекомендует не использовать эту практику: «Безопасность системы не должна зависеть от секретности реализации или ее компонентов». [26] В контексте файлов robots.txt безопасность через неизвестность не рекомендуется как метод безопасности. [27]

Альтернативы

Многие роботы также передают специальный пользовательский агент на веб-сервер при загрузке контента. [28] Веб-администратор также может настроить сервер на автоматический возврат отказа (или передачу альтернативного контента ) при обнаружении соединения с использованием одного из роботов. [29] [30]

Некоторые сайты, такие как Google , размещают humans.txtфайл, который отображает информацию, предназначенную для чтения людьми. [31] Некоторые сайты, такие как GitHub, перенаправляют people.txt на страницу «О нас» . [32]

Ранее Google разместил на своем сайте шуточный файл, в котором Терминатору/killer-robots.txt было приказано не убивать основателей компании Ларри Пейджа и Сергея Брина . [33] [34]

Примеры

В этом примере всем роботам сообщается, что они могут посещать все файлы, поскольку подстановочный знак *обозначает всех роботов, а Disallowдиректива не имеет значения, то есть никакие страницы не запрещены.

Пользовательский агент: *Запретить:
Пользовательский агент: *Позволять: /

Того же результата можно добиться с пустым или отсутствующим файлом robots.txt.

В этом примере всем роботам сообщается, что им не следует заходить на веб-сайт:

Пользовательский агент: *Запретить: /

В этом примере всем роботам запрещается входить в три каталога:

Пользовательский агент: *Запретить: /cgi-bin/Запретить: /tmp/Запретить: /мусор/

В этом примере всем роботам сообщается, что им следует держаться подальше от одного конкретного файла:

Пользовательский агент: *Запретить: /directory/file.html

Все остальные файлы в указанном каталоге будут обработаны.

User-agent: BadBot # замените «BadBot» на фактический user-agent ботаЗапретить: /

В этом примере двум конкретным роботам сообщается, что им не следует входить в один определенный каталог:

User-agent: BadBot # замените «BadBot» на фактический user-agent ботаПользовательский агент: GooglebotЗапретить: /частный/

Пример, демонстрирующий, как можно использовать комментарии:

# Комментарии появляются после символа «#» в начале строки или после директивыUser-agent: * # соответствует всем ботамDisallow: / # не пускать их

Также возможно перечислить несколько роботов с их собственными правилами. Фактическая строка робота определяется краулером. Несколько операторов роботов, таких как Google , поддерживают несколько строк user-agent, которые позволяют оператору запретить доступ к подмножеству своих служб, используя определенные строки user-agent. [16]

Пример, демонстрирующий несколько пользовательских агентов:

User-agent: googlebot # все службы GoogleDisallow: /private/ # запретить этот каталогUser-agent: googlebot-news # только служба новостейDisallow: / # запретить всеUser-agent: * # любой роботDisallow: /something/ # запретить этот каталог

Нестандартные расширения

Директива задержки сканирования

Значение crawl-delay поддерживается некоторыми краулерами для ограничения их посещений хоста. Поскольку это значение не является частью стандарта, его интерпретация зависит от считывания его краулером. Оно используется, когда множественный всплеск посещений от ботов замедляет хост. Яндекс интерпретирует значение как количество секунд ожидания между последующими посещениями. [18] Bing определяет crawl-delay как размер временного окна (от 1 до 30 секунд), в течение которого BingBot будет обращаться к веб-сайту только один раз. [35] Google игнорирует эту директиву, [36] но предоставляет интерфейс в своей поисковой консоли для веб-мастеров, чтобы контролировать последующие посещения Googlebot . [37]

Пользовательский агент: bingbotПозволять: /Задержка сканирования: 10

Карта сайта

Некоторые сканеры поддерживают Sitemapдирективу, разрешающую использование нескольких файлов Sitemap в одном и том жеrobots.txtв форме : [38]Sitemap: full-url

Карта сайта: http://www.example.com/sitemap.xml

Универсальное соответствие "*"

В стандарте исключения роботов символ «*» в Disallow:заявлении не упоминается. [39]

Метатеги и заголовки

В дополнение к файлам robots.txt корневого уровня, директивы исключения роботов могут применяться на более детальном уровне с помощью метатегов Robots и HTTP-заголовков X-Robots-Tag. Метатег robots не может использоваться для не-HTML-файлов, таких как изображения, текстовые файлы или PDF-документы. С другой стороны, X-Robots-Tag можно добавлять в не-HTML-файлы с помощью файлов .htaccess и httpd.conf . [40]

Метатег «noindex»

< мета  имя = "robots"  содержание = "noindex"  />

Заголовок ответа HTTP «noindex»

X-Robots-Тег: noindex

X-Robots-Tag действует только после того, как страница была запрошена и сервер ответил, а метатег robots действует только после загрузки страницы, тогда как robots.txt действует до того, как страница была запрошена. Таким образом, если страница исключена файлом robots.txt, любые метатеги robots или заголовки X-Robots-Tag фактически игнорируются, поскольку робот их изначально не увидит. [40]

Максимальный размер файла robots.txt

Протокол исключения роботов требует, чтобы сканеры анализировали не менее 500 кибибайт (512000 байт) файлов robots.txt, [41] что Google поддерживает как ограничение размера файла robots.txt в 500 кибибайт. [42]

Смотрите также

Ссылки

  1. ^ "Исторический". Greenhills.co.uk . Архивировано из оригинала 2017-04-03 . Получено 2017-03-03 .
  2. ^ Филдинг, Рой (1994). «Поддержание распределенных гипертекстовых инфоструктур: добро пожаловать в MOMspider's Web» (PostScript) . Первая международная конференция по Всемирной паутине . Женева. Архивировано из оригинала 27-09-2013 . Получено 25 сентября 2013 г.
  3. ^ "The Web Robots Pages". Robotstxt.org. 1994-06-30. Архивировано из оригинала 2014-01-12 . Получено 2013-12-29 .
  4. ^ Костер, Мартейн (25 февраля 1994 г.). «Важно: пауки, роботы и скитальцы в паутине». Список рассылки www-talk . Архивировано из оригинала ( архивное сообщение Hypermail ) 29 октября 2013 г.
  5. ^ «Как я в конце концов сюда попал, часть пятая: «Все может стать только лучше!»». Дневник Чарли . 19 июня 2006 г. Архивировано из оригинала 25 ноября 2013 г. Получено 19 апреля 2014 г.
  6. ^ abcde Пирс, Дэвид (14 февраля 2024 г.). «Текстовый файл, который управляет интернетом». The Verge . Получено 16 марта 2024 г. .
  7. ^ Барри Шварц (30 июня 2014 г.). «Robots.txt отмечает 20-летие блокировки поисковых систем». Search Engine Land . Архивировано из оригинала 2015-09-07 . Получено 2015-11-19 .
  8. ^ "Формализация спецификации протокола исключения роботов". Официальный блог Google Webmaster Central . Архивировано из оригинала 2019-07-10 . Получено 2019-07-10 .
  9. ^ Костер, М.; Иллиес, Г.; Целлер, Х.; Сассман, Л. (сентябрь 2022 г.). Протокол исключения роботов. IETF . doi : 10.17487/RFC9309 . RFC 9309. Предлагаемый стандарт.
  10. ^ "Несканируемые URL-адреса в результатах поиска". YouTube. 5 октября 2009 г. Архивировано из оригинала 2014-01-06 . Получено 2013-12-29 .
  11. ^ "About Ask.com: Webmasters". About.ask.com . Архивировано из оригинала 27 января 2013 года . Получено 16 февраля 2013 года .
  12. ^ "О поиске AOL". Search.aol.com . Архивировано из оригинала 13 декабря 2012 г. Получено 16 февраля 2013 г.
  13. ^ "Baiduspider". Baidu.com . Архивировано из оригинала 6 августа 2013 . Получено 16 февраля 2013 .
  14. ^ «Протокол исключения роботов: объединение для предоставления лучшей документации». Blogs.bing.com . 3 июня 2008 г. Архивировано из оригинала 2014-08-18 . Получено 16 февраля 2013 г.
  15. ^ "DuckDuckGo Bot". DuckDuckGo.com . Архивировано из оригинала 16 февраля 2017 . Получено 25 апреля 2017 .
  16. ^ ab "Webmasters: Robots.txt Specifications". Google Developers . Архивировано из оригинала 2013-01-15 . Получено 16 февраля 2013 .
  17. ^ "Отправка вашего веб-сайта в Yahoo! Search". Архивировано из оригинала 2013-01-21 . Получено 16 февраля 2013 .
  18. ^ ab "Использование robots.txt". Help.yandex.com . Архивировано из оригинала 2013-01-25 . Получено 16 февраля 2013 .
  19. ^ "ArchiveBot: Плохое поведение". wiki.archiveteam.org . Архивная команда. Архивировано из оригинала 10 октября 2022 г. Получено 10 октября 2022 г.
  20. ^ Джейсон Скотт . "Robots.txt — это предсмертная записка". Архивная команда. Архивировано из оригинала 2017-02-18 . Получено 18 февраля 2017 .
  21. ^ "Robots.txt, предназначенный для поисковых систем, не очень хорошо работает для веб-архивов | Internet Archive Blogs". blog.archive.org . 17 апреля 2017 г. Архивировано из оригинала 2018-12-04 . Получено 2018-12-01 .
  22. ^ Джонс, Брэд (24 апреля 2017 г.). «Интернет-архив будет игнорировать файлы Robots.txt для поддержания точности». Digital Trends . Архивировано из оригинала 2017-05-16 . Получено 8 мая 2017 г.
  23. ^ Кёблер, Джейсон (29.07.2024). «Веб-сайты блокируют неправильные скраперы ИИ (потому что компании ИИ продолжают создавать новые)». 404 Media . Получено 29.07.2024 .
  24. ^ "Блокировка URL-адресов с помощью robots.txt: Узнайте о файлах robots.txt". Архивировано из оригинала 2015-08-14 . Получено 2015-08-10 .
  25. ^ "Robots.txt сообщает хакерам, в каких местах вы не хотите, чтобы они искали". The Register . Архивировано из оригинала 2015-08-21 . Получено 12 августа 2015 г.
  26. ^ Scarfone, KA; Jansen, W.; Tracy, M. (июль 2008 г.). "Guide to General Server Security" (PDF) . Национальный институт стандартов и технологий . doi :10.6028/NIST.SP.800-123. Архивировано (PDF) из оригинала 2011-10-08 . Получено 12 августа 2015 г. .
  27. ^ Sverre H. Huseby (2004). Невинный код: тревожный сигнал безопасности для веб-программистов. John Wiley & Sons. стр. 91–92. ISBN 9780470857472. Архивировано из оригинала 2016-04-01 . Получено 2015-08-12 .
  28. ^ "Список User-Agents (Spiders, Robots, Browser)". User-agents.org. Архивировано из оригинала 2014-01-07 . Получено 2013-12-29 .
  29. ^ "Access Control - Apache HTTP Server". Httpd.apache.org. Архивировано из оригинала 2013-12-29 . Получено 2013-12-29 .
  30. ^ "Запретить строки для правил фильтрации: официальный сайт Microsoft IIS". Iis.net. 2013-11-06. Архивировано из оригинала 2014-01-01 . Получено 2013-12-29 .
  31. ^ "Google people.txt". Архивировано из оригинала 24 января 2017 г. Получено 3 октября 2019 г.
  32. ^ "Github people.txt". GitHub . Архивировано из оригинала 30 мая 2016 г. Получено 3 октября 2019 г.
  33. ^ Ньюман, Лили Хей (2014-07-03). «Это пасхальное яйцо Google или доказательство того, что Skynet на самом деле замышляет мировое господство?». Журнал Slate . Архивировано из оригинала 2018-11-18 . Получено 2019-10-03 .
  34. ^ "/killer-robots.txt". 2018-01-10. Архивировано из оригинала 2018-01-10 . Получено 2018-05-25 .
  35. ^ «Ползать или не ползать — вот вопрос BingBot». 3 мая 2012 г. Архивировано из оригинала 2016-02-03 . Получено 9 февраля 2016 г.
  36. ^ "Как Google интерпретирует спецификацию robots.txt". Google Search Central . 2024-05-23 . Получено 2024-10-06 .
  37. ^ "Изменение скорости сканирования Googlebot - Справка Search Console". support.google.com . Архивировано из оригинала 2018-11-18 . Получено 22 октября 2018 .
  38. ^ "Yahoo! Search Blog - Веб-мастера теперь могут автоматически обнаруживать с помощью Sitemaps". Архивировано из оригинала 2009-03-05 . Получено 2009-03-23 ​​.
  39. ^ "Robots.txt Specifications". Google Developers . Архивировано из оригинала 2 ноября 2019 г. Получено 15 февраля 2020 г.
  40. ^ ab "Спецификации метатега Robots и заголовка HTTP X-Robots-Tag — Webmasters — Google Developers". Архивировано из оригинала 2013-08-08 . Получено 2013-08-17 .
  41. ^ Костер, М.; Иллиес, Г.; Целлер, Х.; Сассман, Л. (сентябрь 2022 г.). Протокол исключения роботов. IETF . doi : 10.17487/RFC9309 . RFC 9309. Предлагаемый стандарт. Раздел 2.5: Ограничения.
  42. ^ "Как Google интерпретирует спецификацию robots.txt | Документация". Разработчики Google . Архивировано из оригинала 2022-10-17 . Получено 2022-10-17 .

Дальнейшее чтение

Внешние ссылки