Поле Disallow
Вторая часть записи состоит из строк Disallow. Эти строки - директивы для данного робота. Они сообщают роботу какие файлы и/или каталоги роботу неразрешено индексировать. Например следующая директива запрещает паукам индексировать файл email.htm:
Disallow: email.htm
Директива может содержать и название каталога
Disallow: /cgi-bin/
Эта директива запрещает паукам индексировать директорию "cgi-bin".
В Disallow могут использоваться и символы подстановки, стандарт диктует, что директива /bob запретит паукам лезть в /bob.html и так же в /bob/index.html.
Если же директива Disallow останется пустой, то роботу разрешено индексировать обсолютно все файлы. Как минимум одна
директива Disallow должна присутствовать для каждого поля User-agent, для того, чтобы robots.txt считался корректным. Полностью пустой robots.txt означает то же самое, как если бы его не было вообще.
Пробелы и комментарии
Начинающаяся строка с # в robots.txt считается комментарием. Разрешается использовать комментарии в конце строк с директивами, но это считается плохим стилем:
Disallow: bob #comment
Некоторые пауки не смогут правильно разобрать данную строку и вместо этого поймут ее как запрет на индексацию ресурсов bob#comment. Поэтому все комментарии должны размещаться на отдельной строке.
Пробел в начале строки разрешается, но не рекомендуется
Disallow: bob #comment
Примеры:
Следующая директива разрешает всем роботам индексировать все ресурсы сайта, так как используется символ подстановки "*".
User-agent: *
Disallow:
Следующая директива будет запрещать всем роботам это делать:
User-agent: *
Disallow: /
Запрещается всем роботам индексировать директории "cgi-bin" и "images":
User-agent: *
Disallow: /cgi-bin/
Disallow: /images/
Запрещается роботу Roverdog заходить во все каталоги сервера:
User-agent: Roverdog
Disallow: /
Данная директива запрещает Google роботу googlebot индексировать файл cheese.htm:
User-agent: googlebot
Disallow: cheese.htm
Есле Вас интересуют более сложные примеры или же хотите посмотреть на действующий файл robots.txt, то просмотрите его на каком-нибудь большом сайте.
http://sitename.com/robots.txt
В поисках корректного robots.txt
Статистика показывает, что около 5% всех robots.txt имеют плохой стиль или некорректны, а 2% вообще настолько плохо написаны, что ни один робот не разберется в написанном.
Рассмотрим наиболее встречаемые ошибки при создании robots.txt
Перевернутый синтаксис
Одна из самых распространенных ошибок - перевернутый синтаксис:
User-agent: *
Disallow: scooter
А должно быть так:
User-agent: scooter
Disallow: *
Несколько директив Disallow в одной строке
Многие указывали несколько директив на одной строке:
Disallow: /css/ /cgi-bin/ /images/
Различные пауки поймут эту директиву по-разному. Некоторые из них проигнорируют пробелы и поймут директиву как запрет на индексацию дирректории /css//cgi-bin//images/. Возможен вариант, что они проиндексируют лишь один каталог (/images/ или /css/), остальные проигнорируют.
Правильный синтаксис в данном случае будет таков:
Disallow: /css/
Disallow: /cgi-bin/
Disallow: /images/
Строка в формате DOS
Еще одна нередкая ошибка – это редактирование файла robots.txt в формате DOS. Несмотря на то, что из-за распространенности данной ошибки многие пауки научились «понимать» ее, не стоит допускать её. Необходимо редактировать свой robots.txt в режиме UNIX и закачивать на сайт в режиме ASCII. Многие FTP-клиенты для закачки файлов на сервер умеют переводить символы строки из DOS-формата в UNIX-формат. Но стоит помнить, что некоторые этого всё же не делают.
Комментарии в конце строки
Согласно стандарту, это верно:
Disallow: /cgi-bin/ #this bans robots from our cgi-bin
Но в недавнем прошлом были роботы, которые заглатывали всю строку в качестве директивы. Сейчас нам такие роботы неизвестны, но кто может с уверенностью сказать, что такая ошибка не может случиться. Размещайте комментарии на отдельной строке.
Пробелы в начале строки
Disallow: /cgi-bin/
Стандарт ничего не говорит по поводу пробелов, но это считается плохим стилем. И опять же, бережёного Бог бережёт!
Редирект на другую страницу при ошибке 404
Весьма распространено, что при ошибке 404 (файл не найден) веб-сервер выдает особую страницу, например 404.html. При этом сервер не выдает код ошибки и не делает редиректа на главную страницу. В этом случае робот не понимает, что файл robots.txt отсутствует, вместо этого он получит html-страницу с определённым содержимым. Конечно никаких проблем здесь возникнуть не должно, но стоит ли рисковать? Кто знает, как разберет робот этот html файл. Ведь он может принять страницу за robots.txt. Чтобы этого не происходило, обязательно поместите хотя бы пустой robots.txt в Ваш корневой каталог.
Конфликты директив
Чтобы вы сделали на месте робота slurp, увидев данные директивы?
User-agent: *
Disallow: /
#
User-agent: slurp
Disallow:
Первая директива запрещает всем роботам индексировать сайт, но вторая директива разрешает роботу slurp это делать. Так что же все-таки должен делать slurp? Мы не можем гарантировать, что все роботы поймут эти директивы правильно. В данном примере slurp должен проиндексировать весь сайт, а все остальные не должны уйти прямо с порога.
Верхний регистр всех букв - плохой стиль:
USER-AGENT: EXCITE
DISALLOW:
Несмотря на то, что стандарт безразлично относится к регистру букв в robots.txt, в именах каталогов и файлов регистр все-таки важен. Лучше всего следовать примерам и в верхнем регистре писать первые буквы только в словах User и Disallow.
Список всех файлов
Еще одна ошибка - перечисление всех файлов в каталоге:
Disallow: /AL/Alabama.html
Disallow: /AL/AR.html
Disallow: /Az/AZ.html
Disallow: /Az/bali.html
Disallow: /Az/bed-breakfast.html
Вышеприведенный пример можно заменить на:
Disallow: /AL
Disallow: /Az
Помните, что начальная наклонная черта обозначает, что речь идет о каталоге. Конечно, ничто не запрещает вам перечислить парочку файлов, но мы речь ведем о стиле. Данный пример взят из файла robots.txt, размер которого превышал 400 килобайт, в нем было упомянуто 4000 файлов! Интересно, сколько роботов-пауков, посмотрев на этот файл, решили больше не приходить на этот сайт.
Есть только директива Disallow!
Нет такой директивы Allow, есть только Disallow. Этот пример неверный:
User-agent: Spot
Disallow: /john/
allow: /jane/
Правильно будет так:
User-agent: Spot
Disallow: /john/
Disallow:
Нет открывающей наклонной черты
Что должен сделать робот-паук с данной директивой:
User-agent: Spot
Disallow: john
Согласно стандартам эта директива запрещает индексировать файл "john" и каталог john". Но лучше всего, для верности, использовать наклонную черту, чтобы робот мог отличить файл от каталога.
Еще мы видели, как люди записывали в файл robots.txt ключевые слова для своего сайта (подумать только - для чего?).
Бывали такие файлы robots.txt, которые были сделаны в виде html-документов. Помните, во FrontPage делать robots.txt не стоит.
Неправильно настроенный сервер
Почему вдруг на запрос robots.txt веб-сервер выдает бинарный файл? Это происходит в том случае, если ваш веб-сервер настроен неправильно, либо вы неправильно закачали на сервер сам файл.
Всегда после того, как вы закачали файл robots.txt на сервер, проверяйте его. Достаточно в броузере набрать простой запрос:
http://www.mydomain.com/robots.txt
Вот и все что нужно для проверки.
Особенности Google
Публикация данной статьи возможна только при наличии ссылки на источник: http://vmiruspeha.ru