Настройка файла robots.txt
robots.txt
— это служебный файл с инструкциями для поисковых роботов, размещаемый в корневой директории сайта (/public_html/robots.txt
). С его помощью можно запретить индексирование отдельных страниц (или всего сайта), ограничить доступ для определенных роботов, настроить частоту запросов роботов к сайту и др. Корректная настройка robots.txt
позволит снизить нагрузку на сайт, создаваемую поисковыми роботами.
Формат robots.txt
- Файл содержит набор правил (директив), каждое из которых записывается с новой строки в формате
имя_директивы: значение
(пробел после двоеточия необязателен, но допустим). - Каждый блок правил начинается с директивы
User-agent
. - Внутри блока правил не должно быть пустых строк.
- Новый блок правил отделяется от предыдущего пустой строкой.
- В файле можно использовать примечания, отделяя их знаком
#
. - Файл должен называться именно
robots.txt
; написание Robots.txt или ROBOTS.TXT будет ошибочным.
Некоторые роботы могут игнорировать отдельные директивы. Например, GoogleBot не учитывает директивы Host
и Crawl-Delay
; YandexDirect игнорирует общие директивы (заданные как User-agent: *
), но учитывает правила, заданные специально для него.
Проверить созданный robots.txt
можно в вебмастер-сервисах Yandex или Google или в других подобных сервисах в сети.
Используемые директивы
User-agent
Все блоки правил начинаются с директивы User-agent
, в которой указывается название робота, для которого задается правило. Запись вида User-agent: *
означает, что правило задается для всех поисковых роботов.
Например, при следующей записи правило будет применено только к основному индексирующему боту Яндекса:
User-agent: YandexBot
Правило будет применено ко всем роботам Яндекса и Google:
User-agent: Yandex
User-agent: Googlebot
Правило будет применено вообще ко всем роботам:
User-agent: *
Disallow и Allow
Директивы используются, чтобы запретить и разрешить доступ к определенным разделам сайта.
Например, можно запретить индексацию всего сайта (Disallow: /
), кроме определенного каталога (Allow: /catalog
):
User-agent: имя_бота
Disallow: /
Allow: /catalog
Запретить индексацию страниц, начинающихся с /catalog
, но разрешить для страниц, начинающихся с /catalog/auto
и /catalog/new
:
User-agent: имя_бота
Disallow: /catalog
Allow: /catalog/auto
Allow: /catalog/new
В каждой строке указывается только одна директория. Для запрещения (или разрешения) доступа к нескольким каталогам, для каждого требуется отдельная запись.
С помощью Disallow
можно ограничить доступ к сайту для нежелательных ботов, тем самым снизив создаваемую ими нагрузку. Например, чтобы запретить доступ ко всему сайту для MJ12bot и AhrefsBot — ботов сервиса majestic.com и ahrefs.com — используйте:
User-agent: MJ12bot
User-agent: AhrefsBot
Disallow: /
Аналогичным образом устанавливается блокировка и для других ботов (скажем, DotBot, SemrushBot и других).
Примечания:
- Пустая директива
Disallow:
равнозначнаAllow: /
, то есть «не запрещать ничего». - В директивах может использоваться символ
$
для обозначения точного соответствия указанному параметру. Например, записьDisallow: /catalog
аналогичнаDisallow: /catalog *
и запретит доступ ко всем страницам с/catalog
(/catalog, /catalog1, /catalog-new, /catalog/clothes и др.).
Использование$
это изменит.Disallow: /catalog$
запретит доступ к/catalog
, но разрешит /catalog1, /catalog-new, /catalog/clothes и др.
Sitemap
При использовании файла sitemap.xml
для описания структуры сайта, можно указать путь к нему с помощью соответствующей директивы:
User-agent: *
Disallow:
Sitemap: https://mydomain.com/путь_к_файлу/mysitemap.xml
Можно перечислить несколько файлов Sitemap
, каждый в отдельной строке.
Host
Директива используется для указания роботам Яндекса основного зеркала сайта и полезна, когда сайт доступен по нескольким доменам.
User-agent: Yandex
Disallow: /catalog1$
Host: https://mydomain.com
Примечания:
- Директива
Host
может быть только одна; если в файле указано несколько, роботом будет учтена только первая. - Необходимо указывать протокол HTTPS, если он используется. Если вы используете HTTP, зеркало можно записать в виде mydomain.com
- Для корректного прочтения директивы, ее нужно указывать в блоке правил
User-agent
после директивDisallow
иAllow
.
Crawl-delay
Директива устанавливает минимальный интервал в секундах между обращениями робота к сайту, что может быть полезно для снижения создаваемой роботами нагрузки. Чем выше указанное значение, тем меньше страниц робот загрузит за сессию.
Значения можно указывать целыми или дробными числами (разделитель — точка).
User-agent: Yandex
Disallow:
Crawl-delay: 0.5
Примечания:
- Для корректного прочтения директивы, ее нужно указывать в блоке правил
User-agent
после директивDisallow
иAllow
. - Для Яндекса максимальное значение в
Crawl-delay
— 2. Более высокое значение можно установить инструментами Яндекс.Вебмастер. - Для Google-бота установить частоту обращений можено в панели вебмастера Search Console.
Clean-param
Директива используется для робота Яндекса. Она позволяет исключить из индексации страницы с динамическими параметрами в URL-адресах (это могут быть идентификаторы сессий, пользователей, рефереров), чтобы робот не индексировал одно и то же содержимое повторно, повышая тем самым нагрузку на сервер.
Например, на сайте есть страницы:
www.mydomain.ru/news.html?&parm1=1&parm2=2
www.mydomain.ru/news.html?&parm2=2&parm3=3
По факту по обоим адресам отдается одна и та же страница — www.mydomain.ru/news.html
, при этом в URL присутствуют дополнительные динамические параметры.
Чтобы робот не индексировал каждую подобную страницу, можно использовать директиву:
User-agent: Yandex
Disallow:
Clean-param: parm1&parm2&parm3 /news.html
Через знак &
указываются параметры, которые робот должен игнорировать. Далее указывается страница, для которой применяется данное правило
С более подробной информацией о настройке директивы Clean-param
рекомендуем ознакомиться в справочнике Яндекса.