Главная | Контакты



Главная > Поисковая оптимизация

Спецификация robots.txt

Путь к файлу robots.txt

  1. Поскольку для некоторых сетевых операционных систем регистр символов в названии файла имеет значение, наименование файла robots.txt должно состоять из букв нижнего регистра (именно под таким именем он ищется поисковыми машинами). Это правило следует соблюдать, даже если сервер, предоставляющий услуги хостинга, нормально переводит регистр символов и понимает что и одно и тоже.
  2. Файл robots.txt должен находиться в корневом каталоге сервера, и определять, какие каталоги не допускаются к индексации (но это касается только администраторов сервера и не касается создателей сайтов).
  3. Файл robots.txt должен находиться в корневом каталоге сайта. Файлы robots.txt, вложенные во внутренние каталоги сайта, поисковыми машинами игнорируются.

Спецификация robots.txt
Поисковые машины поддерживают всего три директивы файла robots.txt:

1. # означает начало комментария. Вся строка, следующая за этим знаком, игнорируется. Данная директива позволяет разработчику оставить себе памятку о том, с какой целью он указал ту или другую директиву.

2. User-agent: указывает робота, которому адресован блок инструкций, приведенный за строкой User-agent . Например, робот поисковой системы Рамблер называется StackRambler, и строка для его указания выглядит как:

User-agent: StackRambler

В одной директиве User-agent можно указать только одного робота (на самом деле, спецификации с момента создания изменились, и в одной директиве через пробел можно указывать любое количество роботов, но наши поисковые системы и многие западные проигнорировали такое нововведение в спецификации и не понимают строк User-agent, указывающих на нескольких роботов), для указания нескольких роботов применяется несколько директив User-agent. Однако допускается применение универсального имени *, означающего всех роботов кроме тех, что указаны в других строках. Например:

User-agent: *

Если указание одного и того же робота повторяется в нескольких строках (по ошибке), то учитывается только первое, потому что роботы прекращают поиск директивы User-agent после нахождения первого упоминания о себе (спецификация в таком случае разрешает роботам произвольно выбирать используемый блок).

3. 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://mihalytch.org.ua/files.html приведет к результату:

disallow: /http://mihalytch.org.ua/http://mihalytch.org.ua/files.html

Этот результат получается в силу того, что путь к корневому каталогу сайта роботами учитывается автоматически (иначе можно было бы запретить индексацию файлов на чужих сайтах).

Корневой каталог сайта обозначается слешем (/). Если по какой-то причине не требуется индексация всего сайта, директива disallow должна указывать на корень:

disallow: /

Директива disallow без слеша ничего не запрещает.

Если не требуется индексация файлов, имя которых начинается с некоторой последовательности символов, в директиве disallow указывается слеш и требуемая последовательность. Например:

disallow: /dir

Запретит индексацию файлов , , .

Если требуется указать не начало имени файла или пути к нему, а имя целиком, это имя следует закончить слешем. Например:

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/

Главная > Поисковая оптимизация