понедельник, 17 ноября 2008 г.

Всё о фаиле robots.txt

Наверняка большинство людей уже знают о существовании этого в файла robots.txt . Факт в том, что его маленький и не приметный файлик может довольно корректно указать поисковой системе, что же всё-таки индексировать на вашем сайте, а что следует оставить "в тени".

Парадокс весь в том, что эта некоторая простота синтаксиса файла robots.txt скрывает в себе большие проблемы, если его не приручить, т. е. не научиться его правильно составлять. Ведь любая ошибка может стоить вам многого. В этой статье я расскажу вам, как использовать подобный файл с умом и избежать возможных проблем.

Начнём, пожалуй, с истории рождения стандарта robots.txt. Как гласит история, стандарт robots.txt был принят консенсусом 30 января 1994 года и опубликован, с тех пор используется большинством известных поисковых машин.

Позже этот стандарт начинали всячески модифицировать различные поисковые компании, которые внедряли новую функциональность в ранее созданный стандарт.

Как например, компания Yahoo, которая ввела для своего поискового бота YahooSlurp, дополнительную возможность запрета индексации типов файлов по их расширению, добавив возможность использования символов * и $ в полях Disallow. Позже эта возможность была одобрена Google, а затем и "Яндексом" в конце 2007 года. "Яндекс" также добавил возможность использования дополнительного поля Host для определения основного зеркала сайта.

Недавно была добавлена возможность использования ещё одного поля.

Sitemap: http://www.site.ru/sitemap.xml

Поле Sitemap позволяет поисковой системе указать, где находится специальным образом сгенерированная карта Sitemap для сайта, что помогает снять обязанность веб-мастеров каждый раз загружать новую карту Sitemap на сервер поисковой системе и позволить поисковой системе самой загружать Sitemap с сайта. Возможность использования директивы в настоящий момент поддерживается в Google, Yahoo, Ask, MSN и "Яндекс".

Что такое Robots.txt?

Robots.txt – это специальным образом оформленный текстовый файл, в котором содержатся директивы, следуя которым поисковая система может понять стратегию индексирования информации на вашем сайте.

Структура robots.txt:

Файл состоит из полей. Структура полей такова: сначала идёт информация о том, какой поисковик должен следовать указаниям в директиве (строка содержит User-Agent поискового бота или *, как рекомендация для всех поисковых систем), далее идёт поле Disallow, в котором указывается название объекта, который необходимо скрыть от индексирования.

Раздел рекомендаций между инструкциями для одной поисковой системы распознаётся от раздела рекомендаций для другой поисковой системы пустой строкой, а раздел, в свою очередь, формируется полем User-Agent. В одном разделе может быть сразу несколько полей User-Agent, начинающихся с новой строки.

Стандарт robots.txt поддерживает комментарии. Всё, что начинается от символа # до конца строки, является комментарием.

Следует заметить любопытный факт, что файл robots.txt создавался и создаётся с основной целью – запрета индексации, следовательно, и все поля, в нём прописанные, явно указывают на запрет индексации частей сайта. Были предложения также ввести поле Allow, но пока официально оно не признано, хоть и используется поисковыми системами (Например, "Яндексом", Google и MSN).

Некоторые поисковые системы используют собственные "информационные" директивы.  В MSN Live через robots.txt реализована установка значения скорости индексации документа. Делается это через директиву:

User-agent: MSNbotCrawl-delay: n где n - величина задержки в секундах перед индексированием очередной страницы.Пример одного из составленных файлов robots.txt:

User-agent: *Disallow: / User-agent: GooglebotDisallow: /text/

Это важно знать:

1) Файл robots.txt должен находиться только в корневой директории сайта, только тогда он будет учитываться поисковыми системами.

2) Называть файл необходимо robots.txt, Robots.txt будет уже ошибкой.

3) На каждой строке должно быть поле Disallow, запрещающее индексацию только одного объекта. Если нужно запретить несколько директорий или файлов, то для этого пишем поле Disallow на каждой новой строке. В записи должно быть хотя бы одно поле Disallow. Также не забудьте про поле User-Agent - оно не должно быть пустым.

4) Запомните простые комбинации:

Disallow: - разрешение индексировать всё содержимое сайта,Disallow: / - запрет на индексацию всего сайта.Disallow: /name – запрет на индексацию любых файлов и папок, которые называются или имеют в своём названии name.Disallow: /name/ - запрет на индексацию папки name.Disallow: /*.gif$ - запрет на индексацию всех файлов, имеющих расширение .gif.Disallow: /name.php – запрет на индексацию файла name.php.Disallow: /name.php?action=print – запрет индексации переменной, например, страниц для печати.

5) Поле Host используется "Яндексом" для определения основного зеркала сайта. Например, так: Host: www.site.ru. Это поле говорит поисковой системе "Яндекс", что в результатах поиска лучше выводить именно такую ссылку на ваш сайт (с www).

6) Поле Sitemap используется для указания поисковой системе, где находится сгенерированная для поисковых систем карта сайта.(Sitemap: http://www.site.ru/sitemap.xml). Применяется в Google, Ask, Yahoo, MSN и "Яндекс".

7) Если инструкции задаются для нескольких поисковых систем, то поля User-Agent

должны вводиться через Enter.

Вот так:

User-Agent: msnbotUser-Agent: SlurpDisallow: /admin/

Ошибки в файле robots.txt:

1) Неверный порядок расположения полей:

Неправильно:

Disallow: /User-agent: *

Правильно:

User-agent: *Disallow: /

2) Совершаются синтаксические ошибки:

Нет пустой строки:

Неправильно:

User-agent: GooglebotDisallow: /User-agent: *Disallow:

Правильно:

User-agent: GooglebotDisallow: /

User-agent: *Disallow:

Ошибки в синтаксисе Disallow:

Disallow: * (приводит к запрету на индексацию всего сайта).

Disallow: /text/ /text2/ (нельзя использовать одно поле для разных директорий).

Правильно:

Disallow: /text/Disallow: /text2/

Поле User-Agent:

User-agent: (поле не должно быть пустым)

Поле Host:

Неправильно:

Host: http://www.site.ru/ (нельзя использовать протокол и слеш в конце)

Правильно:

Host: www.site.ru

Здесь можно оставить свои комментарии.

Комментариев нет: