Спецификация robots.txt.
Поисковые машины поддерживают всего три директивы файла robots.txt:
# означает начало комментария. Вся строка, следующая за этим знаком, игнорируется. Данная директива позволяет разработчику оставить себе памятку о том, с какой целью он указал ту, или другую, директиву.
User-agent: указывает робота, которому адресован приведенный в следующих за строкой User-agent блок инструкций. Например, робот поисковой системы Рамблер называется StackRambler и, строка для его указания выглядит как:
User-agent: StackRambler
В одной директиве User-agent можно указать только одного робота (на самом деле, спецификации, с момента создания изменились и, в одной директиве, через пробел можно указывать любое количество роботов, но наши поисковые системы и многие западные, проигнорировали такое нововведение в спецификации и не понимают строк User-agent указывающих на нескольких роботов) и, для указания нескольких роботов, применяется несколько директив User-agent. Однако допускается применение универсального имени * означающего всех роботов, кроме тех, что указаны в других строках. Например:
User-agent: *
Если указание одного и того же робота повторяется в нескольких строках (по ошибке), роботами учитывается только первое, потому что, найдя первое упоминание о себе, роботы прекращают поиск директивы User-agent (спецификация, в таком случае, разрешает роботам произвольно выбирать используемый блок).
disallow: указывает имя или часть имени не индексируемых файлов. Так же, как и директива User-agent, директива disallow: допускает не более одного параметра, поэтому для указания нескольких файлов, требуется употребление нескольких строк disallow. Директивы disallow должны идти в следующей строке после строки User-agent. Пустая строка является окончанием блока параметров для одного робота и началом блока параметров для следующего. Дойдя до пустой строки своего блока, роботы прекращают чтение параметров и начинают индексацию файлов. Поэтому пустые строки недопустимы как внутри блока параметров, так и между этим блоком и предшествующей им строкой с директивой User-agent. Например, блок параметров для Рамблера должен выглядеть так:
user-agent: StackRambler
disallow: /alt
disallow: /mac
disallow: /koi
Этот блок запретит индексацию файлов путь, к которым начинается с alt, mac и koi. Если же между disallow: /mac и disallow: /koi вставить пустую строку, файлы, имя которых начинается с koi, будут проиндексированы.
Директива disallow не признает шаблонов типа *.CGI, поэтому, чтобы облегчить себе жизнь и не повторять строку тысячи раз, следует собрать все неиндексируемые файлы в один каталог (или несколько каталогов, если так будет удобней) и запретить индексацию всего этого каталога.
Параметр директивы disallow должен указывать относительный путь от корня сайта. Попытка указать абсолютный путь вроде HTTP://MyCite.Host.ru/files.html приведет к результату
disallow: /HTTP://MyCite.Host.ru/HTTP://MyCite.Host.ru/files.html
Этот результат получается в силу того, что путь к корневому каталогу сайта роботами учитывается автоматически (иначе можно было бы запретить индексацию файлов на чужих сайтах).
Корневой каталог сайта обозначается обратным слешем (/). Если по какой-то причине не требуется индексация всего сайта, директива disallow должна указывать на корень:
disallow: /
Директива disallow без слеша ничего не запрещает.
Если не требуется индексация файлов, имя которых начинается с некоторой последовательности символов, в директиве disallow указывается обратный слеш и требуемая последовательность. Например:
disallow: /dir
Запретит индексацию файлов «/dir.html», «/dir/index.html», «/directory.html».
Если требуется указать не начало имени файла или пути к нему, а имя целиком, это имя следует закончить обратным слешем. Например:
disallow: /dir/
disallow: /dir.html/
Чувствительность к регистру в имени файлов зависит от сервера предоставляющего хостинг. Если сервер регистрочувствительный, то
disallow: /dir.html/
Запретит индексацию файла dir.html, но не файла dir.HTML.
Других директив, robots.txt содержать не может. В частности, нет директив разрешающих индексацию. Иначе владелец сайта мог бы разрешить индексацию файлов, запрещенных к индексации владельцем сервера.
Трудно представить ситуацию, в которой содержателю сайта пришлось бы давать различные инструкции для разных роботов. Поэтому, с учетом изложенного, стандартный файл robots.txt выглядит примерно так:
User-Agent: *
Disallow: /cgi-bin/
Disallow: /links/
Где cgi-bin – папка с cgi-скриптами, а links – папка с различными ссылками. Если же требуется задание различных параметров индексации различным роботам, перед началом блока параметров для следующего робота обязательно наличие пустой строки, определяющей завершение предыдущего блока. Например:
User-Agent: *
Disallow: /cgi-bin/
Disallow: /links/
User-Agent: Lycos
Disallow: /cgi-bin/
Имена некоторых роботов: Yandex, StackRambler, Aport, Googlebot, Lycos