Существует несколько основных директив, которые задают поисковым роботам определенные команды.
1. User-agent — обязательная директива, от которой зависит, каким поисковым ботам требуется выполнить данную инструкцию. У Google это Googlebot, у Яндекса — Yandex. Если рекомендации в файле направлены на обе поисковые системы, то ставится символ звездочки — *.
Выглядит данная директива следующим образом:
User-agent: * — сайт открыт для сканирования всем краулерам, вне зависимости от поисковой системы
User-agent: Yandex — доступ предоставлен только роботам Яндекса
User-agent: Googlebot — доступ предоставлен только роботам Google
2. Disallow — директива, которая позволяет закрыть от индексации в robots.txt некоторые или все страницы. Если на вашем сайте нет страниц, индексацию которых нужно запретить, то после директивы Disallow не указываются никакие символы. Для запрета индексации всего сайта используется символ слэша. Если нужно скрыть конкретный раздел сайта, то после слэша ставится соответствующий URL. Примеры директивы:
User-agent: *
Disallow:
Расшифровка: разрешена индексация всего сайта для всех краулеров. Пустое поле директивы означает, что ни один из разделов сайта не закрыт для индексации.
User-agent: *
Disallow: /
Расшифровка: запрещена индексация всего сайта для всех поисковых роботов — ни один из разделов сайта не открыт для индексации.
User-agent: *
Disallow: /razdel/
Расшифровка: запрещена индексация в пределах указанного URL — робот не должен индексировать раздел с соответствующим URL.
3. Allow — директива, разрешающая индексацию страниц. Она используется автоматически, если в файле robots.txt сайта не указаны запреты, то есть изначально все данные сайта открыты к сканированию. Поэтому чаще всего директива Allow используется для указания исключений из правил, установленных директивой Disallow. Например, весь сайт закрыт для индексации, но нужно открыть одну страницу раздела. Тогда прописывается следующее:
User-agent:*
Disallow: /
Allow: /razdel/
Расшифровка: запрещена индексация всего сайта для всех краулеров, кроме одного раздела — страница с указанным URL (razdel) доступна для индексации.
Также можно запретить сканировать сайт роботам Яндекса и разрешить индексацию роботам Google. Пример файла robots.txt в этом случае выглядит так:
User-agent: Yandex
Disallow: /
User-agent: Googlebot
Allow: /
4. Sitemap — необязательная директива с картой сайта и перечнем всех доступных для индексации страниц. Директивой выступает полная ссылка на файл с указанными данными в формате .xml. Пример:
User-agent: *
Disallow: /
Sitemap:
https://example.com/sitemap1.xml
5. Clean-param — межсекционная директива для Яндекса, которая позволяет запретить индексирование дублей страниц. Применяется как альтернатива Disallow, так как Clean-param в robots.txt работает в связке с основной страницей, позволяя улучшить ее ранжирование. Пример:
User-agent: Yandex
Disallow:
Clean-param:sort_field&order /catalog/category/
Расшифровка: поисковому боту Yandex разрешена индексация всего сайта, но рекомендуется не индексировать страницы с параметрами sort_field и order, так как их содержание дублирует страницу site.ru/catalog/category/, которая и будет проиндексирована.
Также существуют уже неактуальные директивы для Яндекса, использование которых уже не имеет смысла. Это директивы Crawl-delay (задает скорость обхода сайта — сейчас лучше настраивать скорость через Яндекс.Вебмастер) и Host (указывает на основное зеркало).