Robots.txt: как настроить и проверить для SEO

Robots.txt — инструкция для поисковых роботов

Файл robots.txt находится в корне сайта (example.ru/robots.txt) и содержит инструкции для поисковых роботов (краулеров) Яндекса, Google и других поисковых систем. Он говорит роботам, какие страницы можно индексировать, а какие — нет.

Важно: robots.txt — это рекомендация, а не команда. Почти все крупные поисковики соблюдают robots.txt, но боты спамеров и скрейперы — нет.

ДирективаНазначениеПример
AllowРазрешает обход пути внутри закрытой директорииAllow: /private/public/
DisallowПросит робота не обходить путьDisallow: /admin/
Clean-paramСообщает Яндексу об игнорируемых параметрахClean-param: sort filter /
HostИсторическая директива Яндекса; для зеркал используйте 301 и canonicalHost: example.ru
SitemapУказывает URL карты сайтаSitemap: https://example.ru/sitemap.xml

Структура robots.txt

Базовый формат

User-Agent: *
Disallow: /admin/
Disallow: /tmp/
Disallow: /private/
  • User-Agent — имя робота. * означает «все роботы».
  • Disallow — путь, который закрыт от индексации.
  • Allow — путь, который разрешён даже внутри закрытой директории.

User-Agent для разных поисковиков

User-Agent: Googlebot
Disallow: /admin/

User-Agent: YandexBot
Disallow: /admin/
Disallow: /private/

Яндекс и Google могут иметь разные правила. Если вы хотите одинаковые правила для всех — используйте User-Agent: *.

Что закрывать в robots.txt

Служебные директории

Disallow: /admin/
Disallow: /wp-admin/
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /cache/

Страницы с фильтрами и сортировкой

Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*&page=

Страницы поиска на сайте

Disallow: /search/

Личные кабинеты

Disallow: /account/
Disallow: /profile/
Disallow: /cart/

Что НЕ закрывать

  • Главную страницу/
  • Каталог и товары/catalog/, /product/
  • Блог/blog/
  • Контакты/contacts/
  • Sitemap/sitemap.xml (robots.txt должен ссылаться на sitemap)
  • Страницы с контентом/about/, /services/

Clean-param — очистка параметров URL

Clean-param — это специальная директива Яндекса, которая говорит роботу игнорировать параметры в URL и считать страницы с разными параметрами одной.

Синтаксис

Clean-param: parameter1 parameter2 /path/

Важно: параметры разделяются пробелами, не амперсандами!

Примеры

# Очистить параметры sort и filter на всех страницах
Clean-param: sort filter /

# Очистить параметры s и page только на страницах поиска
Clean-param: s page /search/

# Очистить параметры session и csrf на всех страницах
Clean-param: session csrf /

Частая ошибка

# Неправильно — амперсанды
Clean-param: searchid&web&search_btn&text /search/

# Правильно — пробелы
Clean-param: searchid web search_btn text /search/

Если использовать амперсанды, Яндекс проигнорирует правило, и каждый вариант параметров будет считаться отдельной страницей — дубли контента.

Подробнее о том, когда Clean-param помогает, а когда создаёт риски: Clean-param в robots.txt — когда нужно, когда вредит.

Host — указание канонического домена

Директива Host указывает Яндекс, какой домен является каноническим:

Host: example.ru

Важно: без https://! Только домен:

# Правильно
Host: example.ru

# Неправильно — Google проигнорирует
Host: https://example.ru

Директива Host используется только Яндексом. Google игнорирует её и определяет канонический домен по canonical тегам.

Sitemap — ссылка на карту сайта

В robots.txt можно указать ссылку на sitemap.xml:

Sitemap: https://example.ru/sitemap.xml

Это помогает поисковикам быстрее найти все страницы сайта. Можно указать несколько sitemap:

Sitemap: https://example.ru/sitemap.xml
Sitemap: https://example.ru/sitemap_images.xml
Sitemap: https://example.ru/sitemap_news.xml

Robots.txt для разных CMS

WordPress

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /category/
Disallow: /*?s=
Disallow: /*?feed=
Disallow: /*/feed/rss
Disallow: /*/feed/rss2
Disallow: /*/feed/rss2/
Disallow: /*/feed/rdf
Disallow: /*/feed/atom
Disallow: /*/?feed=
Disallow: /*/?feed=rss2
Disallow: /*/?feed=rss
Disallow: /*/?feed=atom
Disallow: /*/?static=1
Disallow: /*/?attachment_id=
Disallow: /*?s=
Disallow: /*?attachment_id=
Disallow: /*/wp-json/
Disallow: /*/rest/
Sitemap: https://example.ru/sitemap.xml

1С-Битрикс

User-agent: *
Disallow: /local/
Disallow: /tmp/
Disallow: /upload/
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /search/
Disallow: /*?register=
Disallow: /*?login=
Disallow: /*?logout=
Disallow: /*?actions=
Sitemap: https://example.ru/sitemap.xml

Самописный сайт

User-agent: *
Disallow: /admin/
Disallow: /api/
Disallow: /private/
Disallow: /tmp/
Disallow: /cache/
Disallow: /search/
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*&page=
Sitemap: https://example.ru/sitemap.xml

Как проверить robots.txt

1. Открыть в браузере

https://example.ru/robots.txt

2. Через curl

curl -sL 'https://example.ru/robots.txt'

3. Через Яндекс.Вебмастер

В разделе «Индексирование → Файы robots.txt» Яндекс показывает, какие правила он видит и какие страницы закрыл.

4. Через Google Search Console

В разделе «Настройки роботов → Просмотреть как Googlebot» можно проверить, какие страницы доступны.

Частые ошибки с robots.txt

1. Закрытие важных страниц

Если закрыть /catalog/ или /blog/ в Disallow — поисковик не проиндексирует эти разделы. Трафик упадёт до нуля.

Проверка: убедитесь, что все коммерческие и информационные страницы открыты.

2. Disallow на sitemap

Если закрыть /sitemap.xml в Disallow — поисковик может не найти карту сайта. Sitemap должен быть доступен.

Проверка: curl -sL 'https://example.ru/sitemap.xml' должен отдавать 200.

3. Ошибка в Clean-param

Амперсанды вместо пробелов — Яндекс проигнорирует правило. Дубли параметров будут индексироваться.

Проверка: grep 'Clean-param' robots.txt | grep '&' — если нашлось, исправьте.

4. Host с https://

Host: https://example.ru — Google проигнорирует. Только домен: Host: example.ru.

Проверка: grep '^Host:' robots.txt — если есть https://, уберите.

5. robots.txt возвращает 404

Если example.ru/robots.txt отдаёт 404 — поисковик считает, что robots.txt отсутствует, и проиндексирует всё, что найдёт.

Проверка: curl -sI 'https://example.ru/robots.txt' | head -1 — должен быть 200.

Robots.txt и Health Score

В Health Score seoquest.ru robots.txt — один из ключевых параметров:

  • robots.txt доступен — обязательно
  • Важные страницы не закрыты — обязательно
  • Clean-param настроен правильно — рекомендуется
  • Sitemap указана — рекомендуется

Чеклист robots.txt

  • [ ] robots.txt доступен (HTTP 200)
  • [ ] Служебные директории закрыты (/admin/, /tmp/, /cache/)
  • [ ] Важные страницы открыты (/catalog/, /blog/, /contacts/)
  • [ ] Sitemap указана
  • [ ] Clean-param использует пробелы, не амперсанды
  • [ ] Host указан без https://
  • [ ] robots.txt не закрывает sitemap.xml
  • [ ] Нет ошибок синтаксиса

Итог

robots.txt — это базовый элемент технического SEO. Правильно настроенный файл защищает служебные страницы от индексации и помогает поисковикам сосредоточиться на важном контенте. Проверяйте robots.txt хотя бы раз в квартал — и ваш сайт будет индексироваться чисто.

Проверить сайт по техническим и контентным пунктам можно в бесплатной проверке.

Указатель Sitemap: в robots.txt и состав самого XML — отдельная тема: см. гайд Sitemap.xml: проверка и настройка и инструмент Sitemap и robots.txt.

Вопросы и ответы

robots.txt закрывает страницу от индексации?

Не полностью. robots.txt говорит роботам не посещать страницу, но URL может быть проиндексирован, если о нём узнали из других источников (например, из sitemap или ссылок). Для полной защиты от индексации используйте noindex.

robots.txt влияет на ранжирование?

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

Можно ли закрыть всю страницу в Disallow, но оставить часть в Allow?

Да. Директива Allow переопределяет Disallow для конкретных путей. Например, Disallow: /private/ + Allow: /private/public/ закроет /private/, но откроет /private/public/.

robots.txt — это публичный файл?

Да, robots.txt доступен всем. Не закрывайте в нём sensitive данные — боты спамеров и конкуренты увидят структуру вашего сайта.

Clean-param работает для Google?

Нет, Clean-param — это директива только для Яндекса. Для Google используйте canonical на базовый URL.