Barry Schwartz дает ссылки на обсуждения приоритета выбора записей в robots.txt роботами поисковых систем. Меня всегда удивляло, как можно делать такие разные и вычурные ошибки в таком простом файле исключений с четким и однозначным форматом. Можно, конечно, грешить на большое количество расширений, которые добавляет в стандарт каждая значимая система с широко известными в узких кругах именами роботов: Google, Yahoo, MSN, Yandex. Но в таком случае и вопросы по robots.txt возникали бы прежде всего именно по расширениям.
Вернемся к приоритетам. Как известно, записи в robots.txt разделяются пустыми строками, каждая запись — это инструкция для одного или нескольких роботов. Пусть мы имеем следующее содержание файла исключений:
User-agent: * Disallow: /dir/file
User-agent: Yandex Disallow: /reports
User-agent: Googlebot Disallow: /users Allow: /best-page.html
Вопрос заключался в том, какими директивами в данном случае будет руководствоваться робот Гугля, что для него будет запрещено? Можно подумать, что робот наткнется в первую очередь на секцию для всех роботов и именно ее правила примет к рассмотрению.
Это неверное предположение. Робот при парсинге файла работает примерно по следующему алгоритму:
Получает полностью файл
Выделяет в файле корректные секции
Ищет "свою" секцию
Если своя секция найдена принимает к руководству ее инструкции.
Если своей секции не обнаружено, ищет секцию для всех роботов
Если обнаружена секция для всех роботов, принимает к руководству ее инструкции
Если общая секция не найдена, робот считает, что индексировать можно все без исключения.
Отсюда делаем сразу несколько выводов:
Порядок секций в файле значения не имеет.
Если будет найдена "своя секция", то робот будет руководствоваться только ее инструкциями, игнорируя все остальные, поэтому в нашем примере робот Гугл абсолютно справедливо будет индексировать /dir/file.
Отсутствие общей секции — разрешение индексировать весь сайт роботам, не упомянутым ни в одной секции.
|