RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


Боковая панель


Навигация

Линкшэринг

~~socialite Display:icon facebook twitter~~

ALARM!

Добавить новую страницу

You are not allowed to add pages

Реклама

web:robots.txt

Файл robots.txt

Что такое файл 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: YandexBot # будет использоваться только основным индексирующим роботом
Disallow: /*id=

User-agent: Yandex # будет использована всеми роботами Яндекса
Disallow: /*sid= # кроме основного индексирующего

User-agent: * # не будет использована роботами Яндекса
Disallow: /cgi-bin

Использование директив 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'

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

Директивы Allow и Disallow из соответствующего User-agent блока сортируются по длине префикса URL (от меньшего к большему) и применяются последовательно. Если для данной страницы сайта подходит несколько директив, то выбирается последняя в порядке появления в сортированном списке. Таким образом порядок следования директив в файле robots.txt не влияет на использование их роботом. Примеры:

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

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

Директивы Allow-Disallow без параметров.

Отсутствие параметров у директивы трактуется следующим образом:

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, обработает файлы и будет использовать результаты при последующем формировании сессий закачки.

Директива 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, где она указана.

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

Пример:

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

User-agent: *
Disallow: /cgi-bin

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

Важно: параметр директивы Host обязан состоять из одного корректного имени хоста (то есть соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Некорректно составленные строчки '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

# 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'. Робот Яндекса, используя эту информацию, не будет многократно перезакачивать дублирующуюся информацию. Таким образом, увеличится эффективность обхода вашего сайта, снизится нагрузка на сервер.

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

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

Дополнительные примеры:

#для адресов вида:
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 может отличаться от результата без них, а именно:

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:

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 необходимо помнить, что у робота есть разумное ограничение на его размер. Слишком большие robots.txt (более 32 Кб) считаются полностью разрешающими, то есть рассматриваются аналогично:

User-agent: Yandex
Disallow:

Также разрешающими считаются robots.txt, которые не удалось закачать (например, по причине неправильных http-заголовков) или отдающие 404 ошибку.

Для проверки правильности файла robots.txt вы можете воспользоваться специальным on-line анализатором. См. описание «Анализатор robots.txt»

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies

Discussion

Enter your comment. Wiki syntax is allowed:
 
web/robots.txt.txt · Последнее изменение: 2013/08/16 19:15 (внешнее изменение)