Robots.txt — текстовый файл, который содержит параметры индексирования сайта для роботов поисковых систем.

Как создать robots.txt

В текстовом редакторе создайте файл с именем robots.txt и заполните его в соответствии с представленными ниже правилами.

Проверьте файл в сервисе Яндекс. Вебмастер (пункт меню Анализ robots.txt).

Загрузите файл в корневую директорию вашего сайта.

Директива User-agent

Робот Яндекса поддерживает стандарт исключений для роботов с расширенными возможностями, которые описаны ниже.

В роботе используется сессионный принцип работы, на каждую сессию формируется определенный пул страниц, которые планирует загрузить робот.

Сессия начинается с загрузки файла robots.txt. Если файл отсутствует, не является текстовым или на запрос робота возвращается HTTP-статус отличный от 200 OK, робот считает, что доступ к документам не ограничен.

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

Следующим роботам Яндекса можно указать отдельные директивы:

  • 'YandexBot' — основной индексирующий робот;
  • 'YandexDirect' — скачивает информацию о контенте сайтов-партнеров Рекламной сети, чтобы уточнить их тематику для подбора релевантной рекламы, интерпретирует robots.txt особым образом;
  • 'YandexDirectDyn' — робот генерации динамических баннеров, интерпретирует robots.txt особым образом;
  • 'YandexMedia' — робот, индексирующий мультимедийные данные;
  • 'YandexImages' — индексатор Яндекс.Картинок;
  • 'YaDirectFetcher' — робот Яндекс.Директа, интерпретирует robots.txt особым образом;
  • 'YandexBlogs'поиска по блогам — робот , индексирующий посты и комментарии;
  • 'YandexNews' — робот Яндекс.Новостей;
  • 'YandexPagechecker' — валидатор микроразметки;
  • ‘YandexMetrika’ — робот Яндекс.Метрики;
  • ‘YandexMarket’— робот Яндекс.Маркета;
  • ‘YandexCalendar’ — робот Яндекс.Календаря.
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 рекомендуется вставлять пустой перевод строки.

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

Чтобы разрешить доступ робота к сайту или некоторым его разделам, используйте директиву 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'.

Директива Sitemap

Если вы используете описание структуры сайта с помощью файла Sitemap, укажите путь к файлу в качестве параметра директивы sitemap (если файлов несколько, укажите все).

User-agent: Yandex  
Allow: /  
sitemap: https://example.com/site_structure/my_sitemaps1.xml  
sitemap: https://example.com/site_structure/my_sitemaps2.xml  

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

Робот запомнит путь к файлу, обработает данные и будет использовать результаты при последующем формировании сессий загрузки.

Директива Host

Если у вашего сайта есть зеркала, специальный робот зеркальщик (Mozilla/5.0 (compatible; YandexBot/3.0; MirrorDetector; +http://yandex.com/bots)) определит их и сформирует группу зеркал вашего сайта. В поиске будет участвовать только главное зеркало. Вы можете указать его для всех зеркал в файле robots.txt: имя главного зеркала должно быть значением директивы Host.

Директива Host не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом.

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

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

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

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

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

User-agent: Yandex  
Crawl-delay: 2 # задает таймаут в 2 секунды  

User-agent: *  
Disallow: /search  
Crawl-delay: 4.5 # задает таймаут в 4.5 секунды  

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

Если адреса страниц сайта содержат динамические параметры, которые не влияют на их содержимое (например: идентификаторы сессий, пользователей, рефереров и т. п.), вы можете описать их с помощью директивы Clean-param.

Робот Яндекса, используя эту информацию, не будет многократно перезагружать дублирующуюся информацию. Таким образом, увеличится эффективность обхода вашего сайта, снизится нагрузка на сервер.

С более подробной информацией можно ознакомиться на официальном сайте

Обновлено 1 августа 2018 г.