Стандарт исключения роботов - Robots exclusion standard - Wikipedia

В стандарт исключения роботов, также известный как протокол исключения роботов или просто robots.txt, стандарт, используемый веб-сайты общаться с поисковые роботы и другие веб-роботы. Стандарт определяет, как сообщить веб-роботу о том, какие области веб-сайта не следует обрабатывать или сканировать. Роботы часто используются поисковые системы классифицировать веб-сайты. Не все роботы работают со стандартом; сборщики электронной почты, спам-боты, вредоносное ПО а роботы, которые сканируют уязвимости системы безопасности, могут даже начать с тех частей веб-сайта, куда им было приказано держаться подальше. Стандарт можно использовать вместе с Файлы Sitemap, стандарт включения роботов для веб-сайтов.

История

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

Это быстро стало стандарт де-факто ожидается, что настоящие и будущие веб-сканеры последуют за ним; наиболее соблюдаются, в том числе те, которые используются поисковыми системами, такими как WebCrawler, Lycos, и AltaVista.[6]

1 июля 2019 года Google анонсировал[7] предложение Протокола исключения роботов в качестве официального стандарта в соответствии с Инженерная группа Интернета. Проект[8] теперь будет проходить процесс приема.

Стандарт

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

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

Файл 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/.

Некоторые крупные поиски двигатели следуя этому стандарту, включают Ask,[10] AOL,[11] Байду,[12] DuckDuckGo,[13] Google,[14] Yahoo !,[15] и Яндекс.[16] Bing[17] еще не полностью[18] совместим со стандартом[3] поскольку он не может наследовать настройки от подстановочного знака (*).

Группа волонтеров Archive Team явно игнорирует robots.txt по большей части, считая его устаревшим стандартом, препятствующим архивным работам в Интернете. По словам руководителя проекта Джейсона Скотта, «снятый и оставленный в покое, файл robots.txt не гарантирует никакого зеркалирования или ссылки на элементы, которые могут иметь общее использование и значение вне контекста веб-сайта».[19]

В течение нескольких лет Интернет-архив не сканировал сайты с robots.txt, но в апреле 2017 г.[20] что он больше не будет соблюдать директивы в файлах robots.txt. «Со временем мы заметили, что файлы robots.txt, предназначенные для поисковых роботов, не обязательно служат нашим архивным целям».[21] Это произошло в ответ на то, что целые домены были помечены файлом robots.txt, когда содержание стало устаревшим.[21]

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

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

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

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

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

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

Примеры

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

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

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

Этот пример говорит всем роботам держаться подальше от веб-сайта:

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

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

Пользовательский агент: * Disallow: / cgi-bin / Disallow: / tmp / Disallow: / junk /

Этот пример говорит всем роботам держаться подальше от одного конкретного файла:

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

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

Этот пример говорит конкретному роботу не заходить на сайт:

User-agent: BadBot # замените BadBot на фактический пользовательский агент бота Disallow: /

Этот пример говорит двум конкретным роботам не входить в один конкретный каталог:

User-agent: BadBot # замените BadBot на фактический пользовательский агент бота. User-agent: GooglebotDisallow: / private /

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

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

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

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

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

Нестандартные пристройки

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

Некоторые сканеры поддерживают значение задержки сканирования, чтобы ограничивать их посещения хоста. Поскольку это значение не является частью стандарта, его интерпретация зависит от считывающего его сканера. Он используется, когда множественные посещения ботов замедляют работу хоста. Яндекс интерпретирует значение как количество секунд ожидания между последующими посещениями.[16] Bing определяет задержку сканирования как размер временного окна (от 1 до 30 секунд), в течение которого BingBot будет обращаться к веб-сайту только один раз.[33] Google предоставляет интерфейс в своих консоль поиска для веб-мастеров, чтобы контролировать GoogleBot последующие посещения.[34]

Пользовательский агент: bingbotAllow: / Crawl-delay: 10

Разрешить директиву

Некоторые основные сканеры поддерживают Позволять директива, которая может противодействовать следующему Запретить директива.[35][36] Это полезно, когда кто-то говорит роботам избегать просмотра всего каталога, но при этом хочет, чтобы некоторые HTML-документы в этом каталоге сканировались и индексировались. В то время как при стандартной реализации всегда побеждает первый соответствующий шаблон robots.txt, реализация Google отличается тем, что шаблоны разрешения с равным или большим количеством символов в пути к директиве побеждают соответствующий шаблон Disallow.[37] Bing использует либо Позволять или же Запретить директива, в зависимости от того, какая конкретная, зависит от длины, например Google.[17]

Чтобы быть совместимым со всеми роботами, если кто-то хочет разрешить отдельные файлы внутри запрещенного в противном случае каталога, необходимо сначала разместить директивы Allow, а затем Disallow, например:

Разрешить: /directory1/myfile.htmlDisallow: / directory1 /

В этом примере в / directory1 / будет запрещено что-либо, кроме /directory1/myfile.html, так как последний будет соответствовать первым. Порядок важен только для роботов, которые следуют стандарту; в случае с ботами Google или Bing порядок не имеет значения.

Карта сайта

Некоторые сканеры поддерживают Карта сайта директива, позволяющая несколько Файлы Sitemap В то же самое robots.txt в виде Карта сайта: полный URL:[38]

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

Хозяин

Некоторые краулеры (Яндекс ) поддерживать Хозяин директива, позволяющая веб-сайтам с несколькими зеркалами указывать свой предпочтительный домен:[39]

Хост: hosting.example.com

Это поддерживается не всеми сканерами.

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

В Стандарт исключения роботов не упоминает символ "*" в Запретить: утверждение.[40]

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

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

Мета-тег noindex
<мета имя="роботы" содержание="ноиндекс" />
Заголовок ответа HTTP "noindex"
X-Robots-Tag: noindex

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

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

Рекомендации

  1. ^ «Исторический». Greenhills.co.uk. В архиве из оригинала от 03.04.2017. Получено 2017-03-03.
  2. ^ Филдинг, Рой (1994). «Поддержка распределенных гипертекстовых инфоструктур: добро пожаловать в сеть MOMspider» (PostScript). Первая международная конференция по всемирной паутине. Женева. В архиве из оригинала 27.09.2013. Получено 25 сентября, 2013.
  3. ^ а б «Страницы веб-роботов». Robotstxt.org. 1994-06-30. В архиве из оригинала 12.01.2014. Получено 2013-12-29.
  4. ^ Костер, Мартейн (25 февраля 1994 г.). "Важно: пауки, роботы и странники в сети". список рассылки www-talk. Архивировано из оригинал (Гиперпочта заархивированное сообщение) 29 октября 2013 г.
  5. ^ «Как я попал сюда в итоге, часть пятая:« Все может стать лучше! »"". Дневник Чарли. 19 июня 2006 г. В архиве из оригинала от 25.11.2013. Получено 19 апреля 2014.
  6. ^ Барри Шварц (30 июня 2014 г.). "Robots.txt отмечает 20-летие блокировки поисковых систем". Search Engine Land. В архиве из оригинала от 07.09.2015. Получено 2015-11-19.
  7. ^ «Формализация спецификации протокола исключения роботов». Официальный блог Центра веб-мастеров Google. Получено 2019-07-10.
  8. ^ М. Костер, Stalworthy Computing, Ltd., Г. Иллис, Х. Зеллер, Л. Харви, Google (1 июля 2019 г.). "Протокол исключения роботов draft-rep-wg-topic-00". Документы IETF. Получено 2019-09-09.CS1 maint: несколько имен: список авторов (связь)
  9. ^ "Не просканированные URL в результатах поиска". YouTube. 5 октября 2009 г. В архиве из оригинала 06.01.2014. Получено 2013-12-29.
  10. ^ «Об Ask.com: Веб-мастера». About.ask.com. Получено 16 февраля 2013.
  11. ^ "О поиске AOL". Search.aol.com. Получено 16 февраля 2013.
  12. ^ "Байдуспайдер". Baidu.com. Получено 16 февраля 2013.
  13. ^ "DuckDuckGo Bot". DuckDuckGo.com. Получено 25 апреля 2017.
  14. ^ а б «Вебмастерам: Спецификации Robots.txt». Разработчики Google. В архиве из оригинала от 15.01.2013. Получено 16 февраля 2013.
  15. ^ «Размещение вашего веб-сайта в Yahoo! Search». В архиве из оригинала 21.01.2013. Получено 16 февраля 2013.
  16. ^ а б "Использование robots.txt". Help.yandex.com. В архиве из оригинала от 25.01.2013. Получено 16 февраля 2013.
  17. ^ а б «Протокол исключения роботов: объединение для улучшения документации». Blogs.bing.com. В архиве из оригинала 18.08.2014. Получено 16 февраля 2013.
  18. ^ «Как создать файл Robots.txt - Инструменты Bing для веб-мастеров». www.bing.com. Получено 2019-02-06.
  19. ^ Джейсон Скотт. "Robots.txt - это предсмертная записка". Архивная команда. В архиве из оригинала на 18.02.2017. Получено 18 февраля 2017.
  20. ^ "Robots.txt, предназначенный для поисковых систем, плохо работает с веб-архивами | Интернет-архив блогов". blog.archive.org. В архиве из оригинала на 2018-12-04. Получено 2018-12-01.
  21. ^ а б Джонс, Брэд (24 апреля 2017 г.). «Интернет-архив будет игнорировать файлы Robots.txt для сохранения точности». Цифровые тенденции. В архиве из оригинала на 2017-05-16. Получено 8 мая 2017.
  22. ^ "Блокировать URL-адреса с помощью robots.txt: узнайте о файлах robots.txt". В архиве из оригинала на 2015-08-14. Получено 2015-08-10.
  23. ^ «Robots.txt сообщает хакерам те места, в которые они не должны смотреть». Реестр. В архиве из оригинала от 21.08.2015. Получено 12 августа, 2015.
  24. ^ «Руководство по общей безопасности сервера» (PDF). Национальный институт стандартов и технологий. Июль 2008 г. В архиве (PDF) из оригинала от 08.10.2011. Получено 12 августа, 2015.
  25. ^ Сверре Х. Хусеби (2004). Innocent Code: тревожный звонок для веб-программистов. Джон Вили и сыновья. С. 91–92. ISBN  9780470857472. В архиве из оригинала на 2016-04-01. Получено 2015-08-12.
  26. ^ «Список пользователей-агентов (пауки, роботы, браузер)». User-agents.org. В архиве из оригинала 07.01.2014. Получено 2013-12-29.
  27. ^ «Контроль доступа - HTTP-сервер Apache». Httpd.apache.org. В архиве из оригинала 29.12.2013. Получено 2013-12-29.
  28. ^ «Запретить строки для правил фильтрации: официальный сайт Microsoft IIS». Iis.net. 2013-11-06. В архиве из оригинала на 01.01.2014. Получено 2013-12-29.
  29. ^ "Google people.txt". Получено 3 октября, 2019.
  30. ^ "Github human.txt". Получено 3 октября, 2019.
  31. ^ Ньюман, Лили Хэй (2014-07-03). "Это пасхальное яйцо Google или доказательство того, что Скайнет на самом деле замышляет мировое господство?". Slate Magazine. Получено 2019-10-03.
  32. ^ "/killer-robots.txt". 2018-01-10. В архиве с оригинала на 2018-01-10. Получено 2018-05-25.
  33. ^ «Ползать или не ползать - вот вопрос BingBot». 3 мая 2012 г. В архиве из оригинала от 03.02.2016. Получено 9 февраля 2016.
  34. ^ "Изменить скорость сканирования робота Google - Справка Search Console". support.google.com. В архиве из оригинала 2018-11-18. Получено 22 октября 2018.
  35. ^ "Справочный центр для веб-мастеров - как заблокировать Googlebot?". В архиве из оригинала 01.08.2010. Получено 2007-11-20.
  36. ^ «Как мне предотвратить сканирование моего сайта или определенных подкаталогов? - Справка Yahoo Search». В архиве из оригинала от 13.10.2007. Получено 2007-11-20.
  37. ^ "Скрытая интерпретация файла Robots.txt Google". В архиве из оригинала 20.11.2010. Получено 2010-11-15.
  38. ^ «Yahoo! Search Blog - теперь веб-мастера могут автоматически обнаруживать с помощью файлов Sitemap». Архивировано из оригинал на 2009-03-05. Получено 2009-03-23.
  39. ^ «Яндекс - Использование robots.txt». В архиве из оригинала на 2013-05-09. Получено 2013-05-13.
  40. ^ «Технические характеристики Robots.txt». Разработчики Google. Получено 15 февраля, 2020.
  41. ^ а б "Спецификации метатега роботов и HTTP-заголовка X-Robots-Tag - Веб-мастера - Разработчики Google". В архиве из оригинала 08.08.2013. Получено 2013-08-17.

внешняя ссылка