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.

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

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