Robots.txt

Когда начинаешь писать новую инструкцию, хочется говорить словами классика... Но классик, к сожалению

по этому поводу ничего не сказал...

Поэтому вот слова Яндекса:

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

Материал подготовлен на основании рекомендаций:

Яндекса

Mail.Ru

Google

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

Правила для Robots.txt

User-Agent: — робот, к которому применяется следующее правило

Disallow: — запрет индексации

Allow: — разрешение индексции

Sitemap: — путь к карте сайта

Host: — указание основного зеркала (для Яндекс и Mail.RU)

Crawl-delay: — установка минимального времени между закачками страниц

Clean-param: — склейка страниц с динамическими урлами

# комментарий1... — комментарий

User-Agent

Все:

User-agent: *

все роботы

Yandex:

User-Agent: YandexBot

основной индексирующий робот

User-Agent: YandexMedia

робот, индексирующий мультимедийные данные

User-Agent: YandexImages

индексатор Яндекс.Картинок

User-Agent: YandexCatalog

«простукивалка» Яндекс.Каталога, используется для временного снятия с публикации недоступных сайтов в Каталоге

User-Agent: YaDirectFetcher

робот Яндекс.Директа, особым образом интерпретирует robots.txt

User-Agent: YandexBlogs

робот поиска по блогам, индексирующий посты и комментарии

User-Agent: YandexNews

робот Яндекс.Новостей

User-Agent: YandexPagechecker

валидатор микроразметки

User-Agent: YandexMetrika

робот Яндекс.Метрики

User-Agent: YandexMarket

робот Яндекс.Маркета

User-Agent: YandexCalendar

робот Яндекс.Календаря

User-Agent: Yandex

правила для всех роботов Яндекса

Google:

User-agent: Googlebot

основной индексирующий робот (веб-поиск Google)

User-agent: Googlebot-News

индексатор Google новостей

* при отсутсвии правил для этого робота, руководствуется правилами для Googlebot

Googlebot-Image

индексатор Google картинок

* при отсутсвии правил для этого робота, руководствуется правилами для Googlebot

Googlebot-Video

робот, индексирующий мультимедийные данные

* при отсутсвии правил для этого робота, руководствуется правилами для Googlebot

Googlebot-Mobile

индексатор для мобильной версии сайта

* при отсутсвии правил для этого робота, руководствуется правилами для Googlebot

Mediapartners-Google

робот анализирующий содержание страницы для отображения рекламных объявлений AdSense

* при отсутсвии правил для этого робота, руководствуется правилами для Googlebot

AdsBot-Google

Проверка качества целевой страницы

Mail.RU

User-agent: Mail.Ru

основной индексирующий робот

Bing

User-agent: MSNBot/Bingbot

основной индексирующий робот

Синтаксис

Все инструкции для роботов всех поисковых систем начинаются с «/»

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

При указании путей директив Allow-Disallow можно использовать спецсимволы ’*’ и ’$’, задавая, таким образом, определенные регулярные выражения.

Спецсимвол ’*’

Означает любую (в том числе пустую) последовательность символов.

Примеры:

Disallow: /cgi-bin/*.aspx

# запрещает ’/cgi-bin/example.aspx’
# и ’/cgi-bin/private/test.aspx’


Disallow: /*private

# запрещает не только ’/private’,
# но и ’/cgi-bin/private’

Спецсимвол ’$’

По умолчанию к концу каждого правила, описанного в robots.txt, приписывается ’*’

Чтобы отменить ’*’ на конце правила, можно использовать спецсимвол ’$’

Примеры:

Disallow: /example$

# запрещает ’/example’,
# но не запрещает ’/example.html’


Disallow: /example

# запрещает и ’/example’,
# и ’/example.html’


Disallow: /example$

# запрещает только ’/example’

Disallow: /example*$

# так же, как ’Disallow: /example’
#запрещает и /example.html и /example

Использование директив Disallow и Allow

Чтобы запретить доступ робота к некоторым частям сайта или сайту целиком, используйте директиву ’Disallow’.

Примеры:

Disallow: /

# блокирует доступ ко всему сайту

Disallow: /cgi-bin

# блокирует доступ к страницам
# начинающимся с ’/cgi-bin’

Примечание:

Недопустимо наличие пустых переводов строки между директивами ’User-agent’ и ’Disallow’ (’Allow’), а также между самими ’Disallow’ (’Allow’) директивами.

Кроме того, в соответствии со стандартом перед каждой директивой ’User-agent’ рекомендуется вставлять пустой перевод строки.

Символ ’#’ предназначен для описания комментариев. Все, что находится после этого символа и до первого перевода строки не учитывается.

Чтобы разрешить доступ робота к некоторым частям сайта или сайту целиком, используйте директиву ’Allow’.


Примеры:

Allow: /cgi-bin
Disallow: /
# запрещает скачивать все, кроме страниц
# начинающихся с ’/cgi-bin’



Перечень страниц по умолчанию закрываемых от робота

В них входят страницы сортировки, контекстной рекламы, оплаты, метрик и аналитик.

utm

sort=

gclid=

UAH

RUR

WMZ

USD



Индексация картинок

 

Для предоставления инструкций  индексации картинок, для каждого User-Agent’а указываем расположение папки с картинками на фтп и запрет на индексацию всего сайта, кроме этой папки. Пример:

User-Agent: Googlebot-Image

 

Disallow: /*

 

Allow: /images/



Совместное использование директив.

Директивы Allow и Disallow из соответствующего User-agent блока сортируются по длине префикса URL (от меньшего к большему) и применяются последовательно.

Если для данной страницы сайта подходит несколько директив, то выбирается последняя в порядке появления в сортированном списке. Таким образом порядок следования директив в файле robots.txt не влияет на использование их роботом.

Примеры:

Allow: /catalog
Disallow: /
# Сортированный robots.txt:
User-agent: Yandex
Disallow: /
Allow: /catalog
# разрешает скачивать только страницы,
# начинающиеся с ’/catalog’

Важно. В случае возникновения конфликта между двумя директивами с префиксами одинаковой длины приоритет отдается директиве Allow.

Директива Sitemap

Если вы используете описание структуры вашего сайта в формате sitemaps.xml, и хотите, чтобы робот узнал о ней, укажите путь к sitemaps.xml в качестве параметра директивы ’Sitemap’ (если файлов несколько, укажите все).

Директива Sitemap является межсекционной, поэтому будет использоваться роботом вне зависимости от места в файле robots.txt, где она указана.

Пример:

Allow: /
Sitemap: http://mysite.ru/site_structure/my_sitemaps1.xml
Sitemap: http://mysite.ru/site_structure/my_sitemaps2.xml

Директива Host

Если у вашего сайта есть зеркала, специальный робот зеркальщик определит их и сформирует группу зеркал вашего сайта. В поиске будет участвовать только главное зеркало. Вы можете указать его у всех зеркал при помощи robots.txt, используя директиву ’Host’ и определив в качестве ее параметра имя главного зеркала. Директива ’Host’ не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом.

Пример:

#Если www.glavnoye-zerkalo.ru главное зеркало сайта, то
#robots.txt для всех сайтов из группы зеркал выглядит так
User-Agent: *
Disallow: /forum
Disallow: /cgi-bin
Host: www.glavnoye-zerkalo.ru

Важно: в целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву ’Host’ необходимо добавлять в группе, начинающейся с записи ’User-Agent’, непосредственно после директив ’Disallow’(’Allow’). Аргументом директивы ’Host’ является доменное имя с номером порта (80 по умолчанию), отделенным двоеточием.

Пример:

#Пример корректно составленного robots.txt, при обработке
#которого директива Host учитывается
User-Agent: *
Disallow:
Host: www.myhost.ru

Тем не менее директива Host является межсекционной, поэтому будет использоваться роботом вне зависимости от места в файле robots.txt, где она указана.

Важно: для каждого файла robots.txt обрабатывается только одна директива Host. Обнаружив несколько директив, робот использует первую.

Пример:

Host: myhost.ru # используется

User-agent: *


Disallow: /cgi-binUser-agent: Yandex
Disallow: /cgi-bin
Host: www.myhost.ru # не используется

Директива Host должна состоять из следующих частей:

  • указание на протокол HTTPS, если зеркало доступно только по защищенному каналу (Host: https://myhost.ru);
  • одно корректное доменное имя, соответствующего RFC 952 и не являющегося IP-адресом;
  • номер порта, если необходимо (Host: myhost.ru:8080).

Некорректно составленные директивы Host игнорируются.

# Примеры игнорируемых директив Host
Host: www.myhost-.ru
Host: www.-myhost.ru
Host: www.myhost.ru:100000
Host: www.my_host.ru
Host: .my-host.ru:8000
Host: my-host.ru.
Host: my..host.ru
Host: www.myhost.ru/
Host: www.myhost.ru:8080/
Host: http://www.myhost.ru
Host: 213.180.194.129
Host: www.firsthost.ru,www.secondhost.ru
Host: www.firsthost.ru www.secondhost.ru

Примеры использования директивы Host:

# domen.myhost.ru является главным зеркалом
# www.domen.myhost.ru, тогда корректное использование
# директивы Host такое:
User-Agent: *
Disallow:
Host: domen.myhost.ru

Директива Crawl-delay

Если сервер сильно нагружен и не успевает отрабатывать запросы на закачку, воспользуйтесь директивой «Crawl-delay». Она позволяет задать поисковому роботу минимальный период времени (в секундах) между концом закачки одной страницы и началом закачки следующей. В целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву «Crawl-delay» необходимо добавлять в группе, начинающейся с записи «User-Agent», непосредственно после директив «Disallow» («Allow»).

Поисковый робот Яндекса поддерживает дробные значения Crawl-Delay, например, 0.5. Это не гарантирует, что поисковый робот будет заходить на ваш сайт каждые полсекунды, но дает роботу больше свободы и позволяет ускорить обход сайта.

Примеры:

User-agent: Yandex
Crawl-delay: 2

# задает таймаут в 2 секунды

User-agent: *
Disallow: /search
Crawl-delay: 4.5

# задает таймаут в 4.5 секунды

Директива Clean-param

Если адреса страниц вашего сайта содержат динамические параметры, которые не влияют на их содержимое (например: идентификаторы сессий, пользователей, рефереров и т.п.), вы можете описать их при помощи директивы ’Clean-param’. Робот Яндекса, используя эту информацию, не будет многократно перезакачивать дублирующуюся информацию. Таким образом, увеличится эффективность обхода вашего сайта, снизится нагрузка на сервер.

Например, на сайте есть страницы:

www.site.ru/some_dir/get_book.pl?ref=site_1&book_id=123
www.site.ru/some_dir/get_book.pl?ref=site_2&book_id=123
www.site.ru/some_dir/get_book.pl?ref=site_3&book_id=123

параметр ’ref=’ используется только для того, чтобы отследить с какого ресурса был сделан запрос и не меняет содержимое, по всем трем адресам будет показана одна и та же страница с книгой ’book_id=123′. Тогда, если в robots.txt указать:

Clean-param: ref /some_dir/get_book.pl

Вот так:

User-agent: Yandex
Disallow:
Clean-param: ref /some_dir/get_book.pl

Робот Яндекса сведет все адреса страницы к одному:

www.site.ru/some_dir/get_book.pl?ref=site_1&book_id=123

Если на сайте доступна страница без параметров:

www.site.ru/some_dir/get_book.pl?book_id=123

То все сведется именно к ней, когда она будет проиндексирована роботом. Другие страницы вашего сайта будут обходиться чаще, так как нет необходимости обновлять страницы:

www.site.ru/some_dir/get_book.pl?ref=site_2&book_id=123
www.site.ru/some_dir/get_book.pl?ref=site_3&book_id=123

Синтаксис использования директивы:

Clean-param: p0[&p1&p2&..&pn] [path]

В первом поле через ’&’ перечисляются параметры, которые нужно не учитывать. Во втором поле указывается префикс пути страниц, для которых нужно применить правило.

Важно: директива Clean-Param является межсекционной, поэтому может быть указана в любом месте файла robots.txt. В случае, если директив указано несколько, все они будут учтены роботом.

Примечание:

Префикс может содержать регулярное выражение в формате, аналогичном robots.txt, но с некоторыми ограничениями: можно использовать только символы A-Za-z0-9.-/*_. При этом * трактуется так же, как в robots.txt. В конец префикса всегда неявно дописывается ’*’, то есть:

Clean-param: s /forum/showthread.php

означает, что параметр s будет считаться незначащим для всех url-ов, начинающихся с /forum/showthread.php. Второе поле указывать необязательно, в этом случае правило будет применяться для всех страниц сайта. Регистр учитывается. Действует ограничение на длину правила — 500 символов.

Например:

Clean-param: abc /forum/showthread.php
Clean-param: sid&sort /forumt/*.php
Clean-param: someTrash&otherTrash

Важные правила составления

Дистанция между блоками директив User-agent равняется 1 строке

Директива Host размещается либо после директив User-agent либо после User-agent Yandex (без отступлений)

Для уверенности в корректном внедрении файла Robots.txt сформируйте файл уже в нужном расширении и передайте его на внедрение

Подписаться Подписаться Подписаться