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 и canonical | Host: 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.