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