Стандарт исключения роботов

редактировать

Стандарт, рекомендующий поисковым роботам и парсерам не индексировать веб-страницу или сайт

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

Содержание
  • 1 История
  • 2 Стандартный
  • 3 Безопасность
  • 4 Альтернативы
  • 5 Примеры
  • 6 Нестандартные расширения
    • 6.1 Директива Crawl-delay
    • 6.2 Разрешающая директива
    • 6.3 Карта сайта
    • 6.4 Хост
    • 6.5 Универсальное соответствие "*"
  • 7 Мета-теги и заголовки
  • 8 См. Также
  • 9 Ссылки
  • 10 Внешние ссылки
История

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

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

1 июля 2019 г. Google объявил о предложении протокола исключения роботов как официальный стандарт Инженерной группы Интернета. Сейчас проект будет проходить приемку.

Стандарт

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

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

Файл 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, AOL, Baidu, DuckDuckGo, Google, Yahoo !, и Яндекс. Bing по-прежнему не полностью совместим со стандартом, так как не может наследовать настройки от подстановочного знака (*).

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

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

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

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

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

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

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

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

Примеры

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

User-agent: * Allow: /

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

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

User-agent: * Disallow: /

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

User-agent: * Disallow: / cgi-bin / Disallow: / tmp / Disallow: / junk /

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

User-agent: * Disallow: /directory/file.html

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

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

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

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

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

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

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

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

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

User-agent: googlebot # все службы Google Disallow: / private / # запретить этот каталог User-agent: googlebot-news # только служба новостей Disallow: / # запретить все User-agent : * # any robot Disallow: / something / # disallow this directory
Нестандартные расширения

Директива Crawl-delay

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

User-agent: bingbot Allow: / Crawl-delay: 10

Директива Allow

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

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

Allow: /directory1/myfile.html Disallow: / directory1 /

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

Sitemap

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

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

Host

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

Host: hosting.example.com

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

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

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

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

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

Метатег «noindex»
Заголовок ответа HTTP "noindex"
X-Robots-Tag: noindex

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

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-04 07:24:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте