Поисковые сервера всегда перед индексацией вашего ресурса ищут в
корневом каталоге вашего домена файл с именем "robots.txt"
(http://www.mydomain.com/robots.txt). Этот файл сообщает роботам
(паукам-индексаторам), какие файлы они могут индексировать, а какие нет.
Поисковые сервера всегда перед индексацией вашего ресурса ищут в
корневом каталоге вашего домена файл с именем "robots.txt"
(http://www.mydomain.com/robots.txt). Этот файл сообщает роботам
(паукам-индексаторам), какие файлы они могут индексировать, а какие нет.
Формат
файла robots.txt - особый. Он состоит из записей. Каждая запись состоит
из двух полей: строки с названием клиентского приложения (user-agent), и
одной или нескольких строк, начинающихся с директивы Disallow:
<Поле> ":" <значение>
Robots.txt
должен создаваться в текстовом формате Unix. Большинство хороших
текстовых редакторов уже умеют превращать символы перевода строки
Windows в Unix. Либо ваш FTP-клиент должен уметь это делать. Для
редактирования не пытайтесь пользоваться HTML-редактором, особенно
таким, который не имеет текстового режима отображения кода.
Поле User-agent
Строка User-agent содержит название робота. Например:
User-agent: googlebot
Если вы обращаетесь ко всем роботам, вы можете использовать символ подстановки "*":
User-agent: *
Названия
роботов вы можете найти в логах вашего веб-сервера. Для этого выберите
только запросы к файлу robots.txt. большинство поисковых серверов
присваивают короткие имена своим паукам-индексаторам.
Поле 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
Google
- первый поисковый сервер, который поддерживает в директивах регулярные
выражения. Что позволяет запрещать индексацию файлов по их расширениям.
User-agent: googlebot
Disallow: *.cgi
В
поле user-agent вам следует использовать имя "googlebot". Не рискуйте
давать подобную директиву другим роботам-паукам, они не поймёт.
МЕТА-тег robots
МЕТА
тег robots служит для того, чтобы разрешить или запретить поисковым
роботам, приходящим на сайт, индексировать (либо нет) определённые
страницы страницу. Кроме того, этот тег предназначен для того, чтобы
предлагать роботам пройтись по всем страницам сайта и проиндексировать
их. В настоящее время этот тег приобретает все большее значение.
Кроме того, этит тег будет полезен тем, кто не может подступиться к корневому каталогу сервера robots.txt и изменить его.
Некоторые
поисковые сервера, такие как Inktomi например, полностью понимают
мета-тег robots. Inktomi пройдет по всем страницам сайта если значение
данного тега будет "index,follow".
Формат мета-тега Robots
Мета тег robots помещается в тег html-документа. Формат достаточно прост (регистр букв значения не играет):
<HTML>
<HEAD>
<META NAME=ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<META NAME="DESCRIPTION" CONTENT="Эта страница ….">
<TITLE>...</TITLE>
</HEAD>
<BODY>
Значения мета-тега robots
Данному мета-тегу можно присвоит четыре значения content:
index, noindex, follow, nofollow
Если значений несколько, они разделяются запятыми.
В настоящее время лишь следующие значения важны:
Директива INDEX говорит роботу, что данную страницу можно индексировать.
Директива
FOLLOW сообщает поисковому роботу, что ему разрешается индексировать
ссылки на данной странице. В некоторых источниках можно прочитать, что
если данные значения отсутствуют, то поисковые роботы по умолчанию
действуют так, как если бы им даны были директивы INDEX и FOLLOW. К
сожалению, это не всегда так и для поискового сервера Inktomi значения
будут равны "index, nofollow".
Итак, глобальные директивы выглядят так:
Индексировать всё = INDEX, FOLLOW
Не индексировать ничего = NOINDEX, NOFOLLOW
Примеры мета-тега robots
<META NAME=ROBOTS" CONTENT="NOINDEX, FOLLOW">
<META NAME=ROBOTS" CONTENT="INDEX, NOFOLLOW">
<META NAME=ROBOTS" CONTENT="NOINDEX, NOFOLLOW">