Поисковые машины, для поиска и индексации интернет-ресурсов используют программу-робот. Робот скачивает документы, выставленные в Интернет, находит в них ссылки на другие документы, скачивает вновь найденные документы и находят в них ссылки, и так далее, пока не обойдет весь интересующий его участок Сети. Наш робот "зовут" StackRambler.
Когда робот-индексатор поисковой машины приходит на web-сайт (к примеру, на http://www.rambler.ru/), он прежде всего проверяет, нет ли в корневом каталоге сайта служебного файла robots.txt (в нашем примере - http://www.rambler.ru/robots.txt).
Если робот обнаруживает этот документ, все дальнейшие действия по индексированию сайта осуществляются в соответствии с указаниями robots.txt. Вы можете запретить доступ к определенным каталогам и/или файлам своего сайта любым роботам-индексаторам или же роботам конкретной поисковой системы.
Правда, инструкциям файла robots.txt (как и meta-тегов Robots, см. ниже) следуют только так называемые "вежливые" роботы - к числу которых робот-индексатор Рамблера, разумеется, относится.
Размещение файла robots.txt
Робот ищет robots.txt только в корневом каталоге Вашего сервера. Под именем сервера здесь понимаются доменное имя и, если он есть, порт.
Размещать на сайте несколько файлов robots.txt, размещать robots.txt в подкаталогах (в том числе подкаталогах пользователей типа www.hostsite.ru/~user1/) бессмысленно: "лишние" файлы просто не будут учтены роботом. Таким образом, вся информация о запретах на индексирование подкаталогов сайта должна быть собрана в едином файле robots.txt в "корне" сайта.
Имя robots.txt должно быть набрано строчными (маленькими) буквами, поскольку имена интернет-ресурсов (URI) чувствительны к регистру.
Ниже приведены примеры правильных и неправильных размещений robots.txt.
Следующий простой файл robots.txt запрещает индексацию всех страниц сайта всем роботам, кроме робота Рамблера, которому, наоборот, разрешена индексация всех страниц сайта.
# Инструкции для всех роботов User-agent: * Disallow: /
# Инструкции для робота Рамблера User-agent: StackRambler Disallow:
Группы инструкций для отдельных роботов: User-agent
Любой файл robots.txt состоит из групп инструкций. Каждая из них начинается со строки User-agent, указывающей, к каким роботам относятся следующие за ней инструкции Disallow.
Для каждого робота пишется своя группа инструкций. Это означает, что робот может быть упомянут только в одной строке User-agent, и в каждой строке User-agent может быть упомянут только один робот.
Исключение составляет строка User-agent: *. Она означает, что следующие за ней Disallow относятся ко всем роботам, кроме тех, для которых есть свои строки User-agent.
Инструкции: Disallow
В каждой группе, вводимой строкой User-agent, должна быть хотя бы одна инструкция Disallow. Количество инструкций Disallow не ограничено.
Строка "Disallow: /dir" запрещает посещение всех страниц сервера, полное имя которых (от корня сервера) начинается с "/dir". Например: "/dir.html", "/dir/index.html", "/directory.html".
Чтобы запрещать посещение именно каталога "/dir", инструкция должна иметь вид: "Disallow: /dir/".
Для того, чтобы инструкция что-либо запрещала, указанный в ней путь должен начинаться с "/". Соответственно, инструкция "Disallow:" не запрещает ничего, то есть все разрешает.
Внимание: точно так же и инструкции "Disallow: *", "Disallow: *.doc", "Disallow: /dir/*.doc" не запрещают ничего, поскольку файлов, имя которых начинается со звездочки или содержит ее, не существует! Использование регулярных выражений в строках Disallow, равно как и в файле robots.txt вообще, не предусмотрено.
К сожалению, инструкций Allow в файлах robots.txt не бывает. Поэтому даже если закрытых для индексирования документов очень много, Вам все равно придется перечислять именно их, а не немногочисленные "открытые" документы. Продумайте структуру сайта, чтобы закрытые для индексирования документы были собраны по возможности в одном месте.
Пустые строки и комментарии
Пустые строки допускаются между группами инструкций, вводимыми User-agent.
Инструкция Disallow учитывается, только если она подчинена какой-либо строке User-agent - то есть если выше нее есть строка User-agent.
Любой текст от знака решетки "#" до конца строки считается комментарием и игнорируется.
Использование META-тегов "Robots"
В отличие от файлов robots.txt, описывающих индексацию сайта в целом, тег <meta name="Robots" content="..."> управляет индексацией конкретной web-страницы. При этом роботам можно запретить не только индексацию самого документа, но и проход по имеющимся в нем ссылкам.
Инструкции по индексации записываются в поле content. Возможны следующие инструкции:
NOINDEX - запрещает индексирование документа; NOFOLLOW - запрещает проход по ссылкам, имеющимся в документе; INDEX - разрешает индексирование документа; FOLLOW - разрешает проход по ссылкам. ALL - равносильно INDEX, FOLLOW NONE - равносильно NOINDEX, NOFOLLOW Значение по умолчанию: <meta name="Robots" content="INDEX, FOLLOW">.
В следующем примере робот может индексировать документ, но не должен выделять из него ссылки для поиска дальнейших документов:
<META name="ROBOTS" content="index, nofollow">
Имя тега, названия и значения полей нечувствительны к регистру.
В поле content дублирование инструкций, наличие противоречивых инструкций и т.п. не допускается; в частности, значение поле content не может иметь вид "none, nofollow".