Что такое robots.txt?
Robots.txt – это специальным образом оформленный текстовый файл, находящийся в корне сайта, в котором содержатся директивы, следуя которым поисковая система может понять стратегию индексирования информации на вашем сайте.
Структура robots.txt:
Файл состоит из полей. Структура полей такова: сначала идёт информация о том, какой поисковик должен следовать указаниям в директиве (строка содержит User-Agent поискового бота или *, как рекомендация для всех поисковых систем), далее идёт поле Disallow, в котором указывается название объекта, который необходимо скрыть от индексирования.
Раздел рекомендаций между инструкциями для одной поисковой системы распознаётся от раздела рекомендаций для другой поисковой системы пустой строкой, а раздел, в свою очередь, формируется полем User-Agent. В одном разделе может быть сразу несколько полей User-Agent, начинающихся с новой строки.
Стандарт robots.txt поддерживает комментарии. Всё, что начинается от символа # до конца строки, является комментарием.
Строки файла robots.txt являются регистрозависимыми (primer.html и Primer.html - разные файлы).
Следует заметить любопытный факт, что файл robots.txt создавался и создаётся с основной целью – запрета индексации, следовательно, и все поля, в нём прописанные, явно указывают на запрет индексации частей сайта. Однако поисковые системы постепенно вводят поле Allow, которое всегда должно стоять раньше директивы Disallow, но пока официально оно не признано, хоть и используется некоторыми поисковыми системами (Например, "Яндексом", Google иBing).
Некоторые поисковые системы используют собственные "информационные" директивы. В Bing Live и "Яндексе" через robots.txt реализована установка значения скорости индексации документа. Делается это так:
User-agent: MSNbot
Crawl-delay: n где n - величина задержки в секундах перед индексированием очередной страницы.
Crawl-delay: n где n - величина задержки в секундах перед индексированием очередной страницы.
User-agent: Yandex
Crawl-delay: n где n - величина задержки в секундах перед индексированием очередной страницы.
Crawl-delay: n где n - величина задержки в секундах перед индексированием очередной страницы.
В начале 2009 года в поисковой системе "Яндекс" введена директива Clean-param, при помощи которой веб-мастер может указать, как индексировать динамические параметры, которые не влияют на содержание страницы. Это могут быть различные идентификаторы сессий, пользователей и т. д., что увеличивает эффективность индексации страницы. (Ознакомиться с ней можно здесь).
Пример одного из составленных файлов robots.txt:
User-agent: *
Disallow: /User-agent: Googlebot
Disallow: /text/
Disallow: /User-agent: Googlebot
Disallow: /text/
Это важно знать:
1) Файл robots.txt должен находиться только в корневой директории сайта, только тогда он будет учитываться поисковыми системами.
2) Называть файл необходимо robots.txt, Robots.txt будет уже ошибкой.
3) На каждой строке должно быть поле Disallow, запрещающее индексацию только одного объекта. Если нужно запретить несколько директорий или файлов, то для этого пишем поле Disallow на каждой новой строке. В записи должно быть хотя бы одно поле Disallow. Также не забудьте про поле User-Agent - оно не должно быть пустым (либо *, либо имя робота). Если используется директива Allow, то она всегда должна стоять раньше Disallow.
4) Запомните простые комбинации:
Disallow: - разрешение индексировать всё содержимое сайта,
Disallow: / - запрет на индексацию всего сайта.
Disallow: /name – запрет на индексацию любых файлов и директорий, которые называются или имеют в своём названии name.
Disallow: /name/ - запрет на индексацию директории name.
Disallow: /*.gif$ - запрет на индексацию всех файлов, имеющих расширение .gif.
Disallow: /name.php – запрет на индексацию файла name.php.
Disallow: /name.php?action=print – запрет индексации переменной, например, страниц для печати.
Allow: / - всё наоборот (разрешается индексировать), синтаксис такой же, как и с Disallow
# - при помощи решётки можно писать комментарии: они не учитываются роботами поисковых систем и носят сугубо информативный характер.
Disallow: / - запрет на индексацию всего сайта.
Disallow: /name – запрет на индексацию любых файлов и директорий, которые называются или имеют в своём названии name.
Disallow: /name/ - запрет на индексацию директории name.
Disallow: /*.gif$ - запрет на индексацию всех файлов, имеющих расширение .gif.
Disallow: /name.php – запрет на индексацию файла name.php.
Disallow: /name.php?action=print – запрет индексации переменной, например, страниц для печати.
Allow: / - всё наоборот (разрешается индексировать), синтаксис такой же, как и с Disallow
# - при помощи решётки можно писать комментарии: они не учитываются роботами поисковых систем и носят сугубо информативный характер.
5) Поле Host используется "Яндексом" для определения основного зеркала сайта. Например, так: Host: www.site.ru. Это поле говорит поисковой системе "Яндекс", что в результатах поиска лучше выводить именно такую ссылку на ваш сайт (с www).
Параметр директивы Host обязан состоять из одного корректного имени хоста (т.е. соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Важно помнить, что если вы хотите, чтобы поисковая система "Яндекс" приняла во внимание директиву Host в вашей файле, то создайте одинаковые файлы robots.txt на всех "зеркалах" сайта. Только тогда зеркальщик "Яндекс" выделит главное зеркало, согласно данным в Host.
Параметр директивы Host обязан состоять из одного корректного имени хоста (т.е. соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Важно помнить, что если вы хотите, чтобы поисковая система "Яндекс" приняла во внимание директиву Host в вашей файле, то создайте одинаковые файлы robots.txt на всех "зеркалах" сайта. Только тогда зеркальщик "Яндекс" выделит главное зеркало, согласно данным в Host.
6) Поле Sitemap используется для указания поисковой системе, где находится сгенерированная для поисковых систем карта сайта.(Sitemap: http://www.site.ru/sitemap.xml). Применяется в Google, Ask, Yahoo, Bing и "Яндекс".
User-Agent: Yandex
http://www.site.ru/sitemap-main.xml
http://www.site.ru/folder/sitemap-second.xml
# В случае, когда на сайте используется несколько файлов Sitemap, то их желательно перечислить в файле robots.txt
http://www.site.ru/sitemap-main.xml
http://www.site.ru/folder/sitemap-second.xml
# В случае, когда на сайте используется несколько файлов Sitemap, то их желательно перечислить в файле robots.txt
7) Если инструкции задаются для нескольких поисковых систем, то поля User-Agent
должны вводиться через перевод строки (клавишу Enter).
должны вводиться через перевод строки (клавишу Enter).
Вот так:
User-Agent: msnbot
User-Agent: Slurp
Disallow: /admin/
User-Agent: Slurp
Disallow: /admin/
Ошибки в файле robots.txt:
1) Неверный порядок расположения полей:
Неправильно:
Disallow: /
User-agent: *
User-agent: *
Правильно:
User-agent: *
Disallow: /
Disallow: /
2) Совершаются синтаксические ошибки:
Нет пустой строки:
Нет пустой строки:
Неправильно:
User-agent: Googlebot
Disallow: /
User-agent: *
Disallow:
Disallow: /
User-agent: *
Disallow:
Правильно:
User-agent: Googlebot
Disallow: /User-agent: *
Disallow:
Disallow: /User-agent: *
Disallow:
Ошибки в синтаксисе Disallow:
Disallow: * (приводит к запрету на индексацию всего сайта).
Disallow: /text/ /text2/ (нельзя использовать одно поле для разных директорий).
Disallow: /text/ /text2/ (нельзя использовать одно поле для разных директорий).
Правильно:
Disallow: /text/
Disallow: /text2/
Disallow: /text2/
Поле User-Agent:
User-agent: (поле не должно быть пустым)
Поле Host:
Неправильно:
Host: http://www.site.ru/ # (нельзя использовать протокол и слеш в конце)
Host: .site.ru # (любые ошибки в написании доменных имён не допустимы)
Host: 200.114.47.5 # (указан IP вместо адреса)
Host: .site.ru # (любые ошибки в написании доменных имён не допустимы)
Host: 200.114.47.5 # (указан IP вместо адреса)
Правильно:
Host: www.site.ru
или
Host: www.site.ru:8080
# - если ваш сайт доступен по какому-то другому порту (стандартный порт 80, если используется именно он, то его не указывают).
или
Host: www.site.ru:8080
# - если ваш сайт доступен по какому-то другому порту (стандартный порт 80, если используется именно он, то его не указывают).
Желательно делать так:
Не пишите все поля с больших букв, комментарии лучше переносить на новую строку. С осторожностью используйтедополнительные директивы (Host, Crawl-Delay): убедитесь, что поисковые системы способны их правильно трактовать. Неправильные действия могут вызвать недопонимание тех систем, которые не используют эти поля, а также не забывайте, что поле Disallow должно быть даже тогда, когда некоторые поисковые системы игнорируют его. Не создавайте размер файла robots.txt больше, чем 256 килобайт.
На этом всё, спасибо за внимание.
На этом всё, спасибо за внимание.
Роботы Яндекса
Виды роботов Яндекса (www.yandex.ru)
- Yandex/1.01.001 (compatible; Win16; I) — основной индексирующий робот
- Yandex/1.01.001 (compatible; Win16; P) — индексатор картинок
- Yandex/1.01.001 (compatible; Win16; H) — робот, определяющий зеркала сайтов
- Yandex/1.02.000 (compatible; Win16; F) — робот, индексирующий пиктограммы сайтов (favicons)
- Yandex/1.03.003 (compatible; Win16; D) — робот, обращающийся к странице при добавлении ее через форму «Добавить URL»
- Yandex/1.03.000 (compatible; Win16; M) — робот, обращающийся при открытии страницы по ссылке «Найденные слова»
- YaDirectBot/1.0 (compatible; Win16; I) — робот, индексирующий страницы сайтов, участвующих в Рекламной сети Яндекса
- YandexBlog/0.99.101 (compatible; DOS3.30,B) – робот, индексирующий xml-файлы для поиска по блогам.
- YandexSomething/1.0 – робот, индексирующий новостные потоки партнеров Яндекс-Новостей.
- Bond, James Bond (version 0.07) — робот, заходящий на сайты из подсети Яндекса. Официально никогда не упоминался. Ходит выборочно по страницам. Referer не передает. Картинки не загружает. Судя по повадкам, робот занимается проверкой сайтов на нарушения – клоакинг и пр.
IP-адреса роботов Яндекса
IP-адресов, с которых «ходит» робот Яндекса, много, и они могут меняться. Список адресов не разглашается.Кроме роботов у Яндекса есть несколько агентов-«простукивалок», которые определяют, доступен ли в данный момент сайт или документ, на который стоит ссылка в соответствующем сервисе.
- Yandex/2.01.000 (compatible; Win16; Dyatel; C) — «простукивалка» Яндекс.Каталога. Если сайт недоступен в течение нескольких дней, он снимается с публикации. Как только сайт начинает отвечать, он автоматически появляется в Каталоге.
- Yandex/2.01.000 (compatible; Win16; Dyatel; Z) — «простукивалка» Яндекс.Закладок. Ссылки на недоступные сайты помечаются серым цветом.
- Yandex/2.01.000 (compatible; Win16; Dyatel; D) — «простукивалка» Яндекс.Директа. Она проверяет корректность ссылок из объявлений перед модерацией. Никаких автоматических действий не предпринимается.
- Yandex/2.01.000 (compatible; Win16; Dyatel; N) — «простукивалка» Яндекс.Новостей. Она формирует отчет для контент-менеджера, который оценивает масштаб проблем и, при необходимости, связывается с партнером.
Директива Host
Во избежания возникновения проблем с зеркаломами сайта рекомендуется использовать директиву «Host». Директива «Host» указывает роботу Яндекса на главное зеркало данного сайта. С директивой «Disallow» никак не связана.User-agent: Yandexлибо
Disallow: /cgi-bin
Host: www.site.ru
User-agent: Yandexв зависимости от того что для вас оптимальнее.
Disallow: /cgi-bin
Host: site.ru
Вот цитата из ЧаВо Яндекса:
Мой сайт показывается в результатах поиска не под тем именем. Как это исправить?Интересная информация об обработке директивы Host из ответов А. Садовского на вопросы оптимизаторов:
Скорее всего, ваш сайт имеет несколько зеркал, и робот выбрал как основное не то зеркало, которое хочется вам. Есть несколько решений:
В случае реализации одного из вышеперечисленных советов ваше основное зеркало будет автоматически изменено по мере обхода робота.
- удалите зеркала вашего сайта;
- на всех зеркалах, кроме того, которое вы хотите выбрать основным, разместите файл robots.txt, полностью запрещающий индексацию сайта, либо выложите на зеркалах robots.txt с директивой Host;
- разместите на главных страницах неосновных зеркал тег <meta name=“robots” content=“noindex, nofollow”>, запрещающий их индексацию и обход по ссылкам;
- измените код главных страниц на неосновных зеркалах так, чтобы все (или почти все) ссылки с них вглубь сайта были абсолютными и вели на основное зеркало.
Вопрос: Когда планируется своевременное соблюдение директивы Host: в robots.txt? Если сайт индексируется как www.site.ru, когда указано Host: site.ru уже после того, как robots.txt был размещен 1–2 недели, то при этом сайт с www и без www не склеивается более 1–2 месяца и в Яндексе существуют одновременно 2 копии частично пересекающихся сайтов (один 550 страниц, другой 150 страниц, при этом 50 страниц одинаковых). Прокомментируйте, пожалуйста, проблемы с работой «зеркальщика».
Ответ: Расширение стандарта robots.txt, введенное Яндексом, директива Host — это не команда считать зеркалами два любых сайта, это указание, какой сайт из группы, определенных автоматически как зеркала, считать главным. Следовательно, когда сайты будут идентифицированы как зеркала, директива Host сработает.
HTML-тег <noindex>
Робот Яндекса поддерживает тег noindex, который запрещает роботу Яндекса индексировать заданные (служебные) участки текста. В начале служебного фрагмента ставится <noindex>, а в конце — </noindex>, и Яндекс не будет индексировать данный участок текста.Тег работает аналогично мета-тегу noindex, но распространяется только на контент, заключенный внутри тега в формате:
<noindex>текст, индексирование которого нужно запретить</noindex>Тег noindex не чувствителен к вложенности (может находиться в любом месте html-кода страницы). При необходимости сделать код сайта валидным возможно использование тега в следующем формате:
<!–noindex–>текст, индексирование которого нужно запретить<!–/noindex–>Материал взят robotstxt.org.ru
Хелп с яндекс
Использование robots.txt
- Что такое файл robots.txt
- Как создать robots.txt
- Директива User-agent
- Использование директив Disallow и Allow.
- Использование спецсимволов "*" и "$".
- Директива Sitemap.
- Директива Host.
- Директива Crawl-delay.
- Директива Clean-param
- Дополнительная информация.
Что такое файл robots.txt
Robots.txt — текстовый файл, расположенный на сайте, который предназначен для роботов поисковых систем. В этом файле веб-мастер может указать параметры индексирования своего сайта как для всех роботов сразу, так и для каждой поисковой системы по отдельности.
Как создать robots.txt
Воспользуйтесь любым текстовым редактором (например, Блокнотом или WordPad'ом), создайте файл с именем "robots.txt" и заполните его в соответствии с представленными ниже правилами. После этого необходимо загрузить файл в корневой каталог вашего сайта.
Чтобы проверить правильность обработки вашего файла robots.txt, воспользуйтесь анализатором файла robots.txt.
Директива User-agent
Управлять доступом робота Яндекса к вашему сайту вы можете при помощи файла robots.txt, который должен быть размещен в корневой директории сайта. Робот Яндекса поддерживает стандарт описания http://www.robotstxt.org/wc/norobots.html с расширенными возможностями, описанными ниже.
В роботе Яндекса используется сессионный принцип работы, на каждую сессию формируется определенный пул страниц, которые планирует закачать робот. Сессия начинается с закачки robots.txt сайта, если его нет, он не текстовый или на запрос робота возвращается HTTP-код отличный от '200', считается, что доступ роботу не ограничен. В самом robots.txt проверяется наличие записей, начинающихся с 'User-agent:', в них ищутся подстроки 'Yandex', либо '*' (регистр значения не имеет), причем, если обнаружено 'User-agent: Yandex', директивы для 'User-agent: *' не учитываются. Если записи 'User-agent: Yandex' и 'User-agent: *' отсутствуют, считается, что доступ роботу не ограничен.
Следующим роботам Яндекса можно указать отдельные директивы:
'YandexBot' — основной индексирующий робот;
'YandexMedia' — робот, индексирующий мультимедийные данные;
'YandexImages' — индексатор Яндекс.Картинок;
'YandexCatalog' — "простукивалка" Яндекс.Каталога;
'YandexDirect' — робот, индексирующий страницы сайтов, участвующих в Рекламной сети Яндекса;
'YandexBlogs' — робот поиска по блогам, индексирующий комментарии постов;
'YandexNews' — робот Яндекс.Новостей;
'YandexPagechecker' — робот, обращающийся к странице при валидации микроразметки через форму «Валидатор микроразметки»;
Для каждого из них также действительно правило: если обнаружены директивы для конкретного робота, директивы 'User-agent: Yandex' и 'User-agent: *' не используются.
Пример:
User-agent: * # не будет использована роботами Яндекса Disallow: /cgi-bin User-agent: Yandex # будет использована всеми роботами Ядекса Disallow: /*sid= # кроме основного индексирующего User-agent: YandexBot # будет использоваться только основным индексирующим роботом Disallow: /*id=
Использование директив Disallow и Allow.
Чтобы запретить доступ робота к некоторым частям сайта или сайту целиком, используйте директиву 'Disallow'. Примеры:
Примечание:User-agent: Yandex Disallow: / # блокирует доступ ко всему сайту User-agent: Yandex Disallow: /cgi-bin # блокирует доступ к страницам #начинающимся с '/cgi-bin'
Недопустимо наличие пустых переводов строки между директивами 'User-agent' и 'Disallow' ('Allow'), а также между самими 'Disallow' ('Allow') директивами.
Кроме того, в соответствии со стандартом перед каждой директивой 'User-agent' рекомендуется вставлять пустой перевод строки.
Символ '#' предназначен для описания комментариев. Все, что находится после этого символа и до первого перевода строки не учитывается.
Чтобы разрешить доступ робота к некоторым частям сайта или сайту целиком, используйте директиву 'Allow'. Примеры:
Совместное использование директив.User-agent: Yandex Allow: /cgi-bin Disallow: / # запрещает скачивать все, кроме страниц # начинающихся с '/cgi-bin'
Если для данной страницы сайта подходит несколько директив, то выбирается первая в порядке появления в выбранном User-agent блоке. Примеры:
User-agent: Yandex Allow: /cgi-bin Disallow: / # запрещает скачивать все, кроме страниц # начинающихся с '/cgi-bin'
Директивы Allow-Disallow без параметров.User-agent: Yandex Disallow: / Allow: /cgi-bin # запрещает скачивать весь сайт
Отсутствие параметров у директивы трактуется следующим образом:
User-agent: Yandex Disallow: # то же, что и Allow: / User-agent: Yandex Allow: # то же, что и Disallow: /
Использование спецсимволов "*" и "$".
При указании путей директив Allow-Disallow можно использовать спецсимволы '*' и '$', задавая, таким образом, определенные регулярные выражения. Спецсимвол '*' означает любую (в том числе пустую) последовательность символов. Примеры:
Спецсимвол '$'User-agent: Yandex Disallow: /cgi-bin/*.aspx # запрещает '/cgi-bin/example.aspx' # и '/cgi-bin/private/test.aspx' Disallow: /*private # запрещает не только '/private', # но и '/cgi-bin/private'
По умолчанию к концу каждого правила, описанного в robots.txt, приписывается '*', например:
Чтобы отменить '*' на конце правила, можно использовать спецсимвол '$', например:User-agent: Yandex Disallow: /cgi-bin* # блокирует доступ к страницам # начинающимся с '/cgi-bin' Disallow: /cgi-bin # то же самое
User-agent: Yandex Disallow: /example$ # запрещает '/example', # но не запрещает '/example.html'
User-agent: Yandex Disallow: /example # запрещает и '/example', # и '/example.html'
User-agent: Yandex Disallow: /example$ # запрещает только '/example' Disallow: /example*$ # так же, как 'Disallow: /example' #запрещает и /example.html и /example
Директива Sitemap.
Если вы используете описание структуры вашего сайта в формате sitemaps.xml, и хотите, чтобы робот узнал о ней, укажите путь к sitemaps.xml в качестве параметра директивы 'Sitemap' (если файлов несколько, укажите все). Примеры:
илиUser-agent: Yandex Allow: / Sitemap: http://mysite.ru/site_structure/my_sitemaps1.xml Sitemap: http://mysite.ru/site_structure/my_sitemaps2.xml
Робот запомнит пути к sitemaps.xml, обработает файлы и будет использовать результаты при последующем формировании сессий закачки.User-agent: Yandex Allow: / User-agent: * Disallow: / Sitemap: http://mysite.ru/site_structure/my_sitemaps1.xml Sitemap: http://mysite.ru/site_structure/my_sitemaps2.xml
Директива Host.
Если у вашего сайта есть зеркала, специальный робот зеркальщик определит их и сформирует группу зеркал вашего сайта. В поиске будет участвовать только главное зеркало. Вы можете указать его у всех зеркал при помощи robots.txt, используя директиву 'Host' и определив в качестве ее параметра имя главного зеркала. Директива 'Host' не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом. Пример:
Важно: в целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву 'Host' необходимо добавлять в группе, начинающейся с записи 'User-Agent', непосредственно после директив 'Disallow'('Allow'). Аргументом директивы 'Host' является доменное имя с номером порта (80 по умолчанию), отделенным двоеточием.#Если www.glavnoye-zerkalo.ru главное зеркало сайта, то #robots.txt для всех сайтов из группы зеркал выглядит так User-Agent: * Disallow: /forum Disallow: /cgi-bin Host: www.glavnoye-zerkalo.ru
Тем не менее директива Host является межсекционной, поэтому будет использоваться роботом вне зависимости от места в файле robots.txt, где она указана.#Пример корректно составленного robots.txt, при обработке #которого директива Host учитывается User-Agent: * Disallow: Host: www.myhost.ru
Важно: Директива Host в файле robots.txt может быть только одна. В случае указания нескольких директив, использоваться будет первая.
Пример:
Важно: параметр директивы Host обязан состоять из одного корректного имени хоста (то есть соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Некорректно составленные строчки 'Host:' игнорируются.Host: myhost.ru # используется User-agent: * Disallow: /cgi-bin User-agent: Yandex Disallow: /cgi-bin Host: www.myhost.ru # не используется
Примеры использования директивы 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
# domen.myhost.ru является главным зеркалом # www.domen.myhost.ru, тогда корректное использование # директивы Host такое: User-Agent: * Disallow: Host: domen.myhost.ru # domen.myhost.ru является главным зеркалом # www.domen.myhost.ru, тогда некорректное использование # директивы Host такое: User-Agent: * Disallow: Host: 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'. Робот Яндекса, используя эту информацию, не будет многократно перезакачивать дублирующуюся информацию. Таким образом, увеличится эффективность обхода вашего сайта, снизится нагрузка на сервер.
Например, на сайте есть страницы:
параметр 'ref=' используется только для того, чтобы отследить с какого ресурса был сделан запрос и не меняет содержимое, по всем трем адресам будет показана одна и та же страница с книгой 'book_id=123'. Тогда, если в robots.txt указать: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
Вот так: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. В конец префикса всегда неявно дописывается '*', то есть:
означает, что параметр s будет считаться незначащим для всех url-ов, начинающихся с /forum/showthread.php. Второе поле указывать необязательно, в этом случае правило будет применяться для всех страниц сайта. Регистр учитывается. Действует ограничение на длину правила — 500 символов. Например:Clean-param: s /forum/showthread.php
Дополнительные примеры:Clean-param: abc /forum/showthread.php Clean-param: sid&sort /forumt/*.php Clean-param: someTrash&otherTrash
#для адресов вида: www.site1.ru/forum/showthread.php?s=681498b9648949605&t=8243 www.site1.ru/forum/showthread.php?s=1e71c4427317a117a&t=8243 #robots.txt будет содержать: User-agent: Yandex Disallow: Clean-param: s /forum/showthread.php
#для адресов вида: www.site2.ru/index.php?page=1&sort=3a&sid=2564126ebdec301c607e5df www.site2.ru/index.php?page=1&sort=3a&sid=974017dcd170d6c4a5d76ae #robots.txt будет содержать: User-agent: Yandex Disallow: Clean-param: sid /index.php
#если таких параметров несколько: www.site1.ru/forum_old/showthread.php?s=681498605&t=8243&ref=1311 www.site1.ru/forum_new/showthread.php?s=1e71c417a&t=8243&ref=9896 #robots.txt будет содержать: User-agent: Yandex Disallow: Clean-param: s&ref /forum*/showthread.php
#если параметр используется в нескольких скриптах: www.site1.ru/forum/showthread.php?s=681498b9648949605&t=8243 www.site1.ru/forum/index.php?s=1e71c4427317a117a&t=8243 #robots.txt будет содержать: User-agent: Yandex Disallow: Clean-param: s /forum/index.php Clean-param: s /forum/showthread.php
Дополнительная информация.
Директивы robots.txt, которые не упомянуты в данном описании, робот Яндекса не поддерживает.
Необходимо помнить, что результат использования расширений формата robots.txt может отличаться от результата без них, а именно:
Примеры использования расширенного формата robots.txt:User-agent: Yandex Allow: / Disallow: / # без расширений все запрещалось так как 'Allow: /' игнорировалось, # с поддержкой расширений все разрешается User-agent: Yandex Disallow: /private*html # без расширений запрещалось '/private*html', # а с поддержкой расширений и '/private*html', # и '/private/test.html', и '/private/html/test.aspx' и т.п. User-agent: Yandex Disallow: /private$ # без расширений запрещалось '/private$' и '/private$test' и т.п., # а с поддержкой расширений только '/private' User-agent: * Disallow: / User-agent: Yandex Allow: / # без расширений из-за отсутствия перевода строки, # 'User-agent: Yandex' было бы проигнорировано и # результатом стало бы 'Disallow: /', но робот Яндекса # выделяет записи по наличию в строке 'User-agent:', # результат для робота Яндекса в данном случае 'Allow: /' User-agent: * Disallow: / # комментарий1... # комментарий2... # комментарий3... User-agent: Yandex Allow: / # аналогично предыдущему примеру (см. выше)
При написании robots.txt необходимо помнить, что у робота есть разумное ограничение на его размер. Слишком большие robots.txt (более 32 Кб) считаются полностью разрешающими, то есть рассматриваются аналогично:User-agent: Yandex Allow: /archive Disallow: / # разрешает все, что содержит '/archive', остальное запрещено User-agent: Yandex Allow: /obsolete/private/*.html$ # разрешает html файлы # по пути '/obsolete/private/...' Disallow: /*.php$ # запрещает все '*.php' на данном сайте Disallow: /*/private/ # запрещает все подпути содержащие # '/private/', но Allow выше отменяет # часть запрета Disallow: /*/old/*.zip$ # запрещает все '*.zip' файлы, содержащие # в пути '/old/' User-agent: Yandex Disallow: /add.php?*user= # запрещает все скрипты 'add.php?' с параметром 'user'
Также разрешающими считаются robots.txt, которые не удалось закачать (например, по причине неправильных http-заголовков) или отдающие 404 ошибку.User-agent: Yandex Disallow:
Для проверки правильности файла robots.txt вы можете воспользоваться специальным on-line анализатором. См. описание «Анализатор robots.txt»
Комментариев нет:
Отправить комментарий