robots.txt для SEO: синтаксис, примеры и частые ошибки
Файл robots.txt — первое, что запрашивает поисковый робот, попадая на сайт. От его настройки зависит, какие страницы будут обходить Google и Яндекс, а какие — нет. Ошибка в трёх строках может закрыть от индексации весь сайт или, наоборот, отдать в выдачу служебные разделы с паролями, фильтрами и черновиками.
В этом гайде разбираем синтаксис, все поддерживаемые директивы, готовые шаблоны для WordPress, Bitrix и интернет-магазина, семь ошибок, которые встречаются на каждом третьем сайте, и как проверять robots.txt — вручную и автоматически. В конце — чек-лист для быстрой сверки.
Что такое robots.txt и зачем он нужен
robots.txt — это текстовый файл в корне сайта, в котором записаны инструкции для поисковых роботов: какие разделы можно обходить, а какие — нет. Файл доступен по фиксированному адресу https://example.com/robots.txt. Каждый бот, заходя на сайт, запрашивает его в первую очередь и только потом переходит к обходу страниц.
Задач у файла три. Первая — не пускать краулер в служебные разделы: админка, корзина, личный кабинет, внутренний поиск. Вторая — экономить crawl budget: у Google и Яндекса есть лимит на количество обращений к сайту в сутки, и тратить его на бесполезные URL невыгодно. Третья — подсказать боту, где лежит sitemap.xml, чтобы он быстрее находил новые страницы.
Важно различать обход и индексацию. robots.txt управляет обходом — запросом HTML-страницы у сервера. А индексация — это решение поисковика добавить страницу в выдачу. Закрыв страницу в robots.txt, вы не гарантируете её отсутствие в индексе: если на неё стоят внешние ссылки, Google может показать её без содержимого. Для гарантированного исключения нужен noindex.
Синтаксис и основные директивы
Каждая строка в файле — пара «директива: значение». Регистр директив строчный, кодировка — UTF-8 без BOM. Комментарии начинаются с # и игнорируются роботом. Пустые строки разделяют группы правил для разных ботов.
User-agent
Указывает, для какого робота предназначены правила ниже. Значения:
*— для всех ботовGooglebot— только для GoogleYandex— только для ЯндексаBingbot,GPTBot,AhrefsBotи другие — для конкретных поисковиков и краулеров
Можно задать несколько групп, у каждой — свой набор правил. Если в файле есть группа с именем конкретного бота, этот бот игнорирует группу User-agent: * и читает только свою.
Disallow и Allow
Самые важные директивы. Disallow запрещает обход URL, Allow — разрешает (используется, чтобы открыть часть запрещённого раздела).
User-agent: *
Disallow: /admin/
Disallow: /cart
Allow: /admin/login.html
Sitemap: https://example.com/sitemap.xml
Значения — частичные пути. Disallow: /admin/ блокирует всё, что начинается с /admin/: /admin/users, /admin/products/new и так далее. Пустое значение Disallow: означает «не запрещать ничего».
Sitemap
Абсолютный URL до sitemap.xml. Размещается на любой строке файла, вне групп User-agent. Можно указать несколько — Google и Яндекс учтут все.
Crawl-delay
Пауза между запросами бота в секундах. Google игнорирует директиву с 2019 года (скорость обхода настраивается в Search Console). Яндекс и Bing — учитывают.
User-agent: Yandex
Crawl-delay: 2
Clean-param
Только для Яндекса. Позволяет указать GET-параметры, которые не меняют содержимое страницы (например, utm_source, sessionid), чтобы бот не считал их разными URL.
User-agent: Yandex
Clean-param: utm_source&utm_medium /
Host
Устаревшая директива для Яндекса — указание главного зеркала. С марта 2018 Яндекс рекомендует 301-редирект с неглавного зеркала, директива осталась для обратной совместимости. В современных конфигурациях не требуется.
Готовые примеры robots.txt
Ниже — шаблоны под три популярных сценария. Подставляйте свой домен в Sitemap: и адаптируйте запретные пути под структуру сайта.
Базовый robots.txt — всё открыто
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml
Подходит для лендинга, портфолио, блога без личного кабинета. Ничего не запрещает, указывает расположение карты сайта.
robots.txt для WordPress
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /xmlrpc.php
Disallow: /?s=
Disallow: /search
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap.xml
Закрыты админка, форма входа, XML-RPC и внутренний поиск. Открыт admin-ajax.php — он нужен некоторым плагинам для работы на публичных страницах. Карта сайта обычно генерируется плагином Yoast или Rank Math.
robots.txt для Bitrix
User-agent: *
Disallow: /bitrix/
Disallow: /local/
Disallow: /personal/
Disallow: /cart
Disallow: /auth/
Disallow: /search
Disallow: /*?PAGEN
Disallow: /*?SECTION_ID
Allow: /bitrix/templates/*.css
Allow: /bitrix/templates/*.js
Sitemap: https://example.com/sitemap.xml
Закрыты служебные разделы и пагинация через GET-параметры. Важно: CSS и JS из /bitrix/templates/ открыты — без них Google не сможет отрендерить страницу и посчитает её «без стилей».
robots.txt для интернет-магазина
User-agent: *
Disallow: /cart
Disallow: /checkout
Disallow: /my-account
Disallow: /search
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?page=
Allow: /products/
Allow: /categories/
Sitemap: https://shop.example.com/sitemap.xml
Главная боль интернет-магазинов — фасетная фильтрация. Каждое сочетание фильтров даёт новый URL, они размножаются в десятки тысяч и съедают crawl budget. Запрет Disallow: /*?filter= закрывает все URL с фильтром, оставляя открытыми чистые страницы категорий.
Запрет индексации всего сайта
User-agent: *
Disallow: /
Используется на staging-серверах и тестовых окружениях. После переноса на боевой домен эту строку обязательно нужно удалить — иначе сайт выпадет из выдачи.
Шаблоны и спецсимволы
Стандарт robots.txt поддерживает три спецсимвола, и они часто используются неправильно.
| Символ | Значение | Пример |
|---|---|---|
* |
Любая последовательность символов | Disallow: /*?sort= |
$ |
Конец URL | Disallow: /*.pdf$ |
# |
Начало комментария | # закрываем фильтры |
Disallow: /*.pdf$ закроет все PDF-файлы, но разрешит /docs/file.pdf?v=2 (потому что $ требует точного окончания). Без $ правило Disallow: /*.pdf закроет и файл, и URL с параметрами.
Между группами User-agent и правилами Disallow/Allow не должно быть пустой строки — это приведёт к тому, что правила будут считаться относящимися к «нет бота», а не к указанному.
7 частых ошибок в robots.txt
- Закрыли весь сайт через
Disallow: /. Классика после миграции с тестового домена — забыли удалить строку. Симптом: через 2–4 недели сайт выпадает из индекса. - Заблокировали
/static/,/assets/или/wp-content/. Google не может прочитать CSS и JS, страницы выглядят «без стилей» и считаются некорректно отрендеренными. На мобильной оценке это бьёт особенно сильно. - Sitemap указан относительным URL.
Sitemap: /sitemap.xmlне работает — поисковики игнорируют. Только полный абсолютный URL с протоколом:Sitemap: https://example.com/sitemap.xml. - Файл лежит не в корне, а в подкаталоге.
robots.txtработает только по адресу/robots.txt. Файл в/static/robots.txtили/blog/robots.txtпоисковик не увидит. - Ошибка в имени бота.
YandexBotвместоYandex,GoogleвместоGooglebot— правила не применяются. Регистр имеет значение. - Используют
robots.txt, чтобы убрать страницу из выдачи. Не работает. Запрет обхода ≠ запрет индексации. Страница останется в индексе без содержимого, если на неё ведут внешние ссылки. Для удаления нуженnoindex. - Файл недоступен — отдаёт 404 или 403. Поисковый робот считает сайт полностью открытым и может начать обходить всё, включая админку. Проверка доступности — первый шаг любого SEO-аудита.
robots.txt vs meta robots vs X-Robots-Tag
Три разных инструмента управления поведением роботов. Часто их путают, и из-за этого страницы или выпадают из индекса, или, наоборот, не выпадают, когда нужно.
| Способ | Где размещается | Чем управляет | На что действует |
|---|---|---|---|
robots.txt |
Корень сайта | Обход (crawl) | Любые URL, включая картинки и PDF |
meta robots |
В <head> HTML-страницы |
Индексация (index) | Только HTML-страницы |
X-Robots-Tag |
HTTP-заголовок ответа | Индексация (index) | Любые ресурсы, включая не-HTML |
Правило выбора простое. Нужно закрыть раздел от обхода, чтобы бот туда не ходил → robots.txt. Нужно убрать страницу из выдачи, оставив её доступной пользователям → meta robots="noindex". Нужно закрыть PDF или картинку от индексации → X-Robots-Tag: noindex в заголовках.
Главный подводный камень: если страница закрыта в robots.txt, бот не может её обойти и, соответственно, не прочитает тег noindex на ней. Страница остаётся в индексе. Чтобы точно убрать из выдачи — сначала уберите Disallow, дождитесь переиндексации, потом поставьте noindex.
Как проверить robots.txt
Первая проверка — вручную. Откройте в браузере https://yoursite.ru/robots.txt. Файл должен показаться как текст. Если браузер показывает 404, файла нет. Если редиректит на другую страницу — это баг конфигурации, поисковики не следуют редиректам robots.txt предсказуемо.
Вторая проверка — синтаксис. Бесплатный валидатор robots.txt в SEO Crawler разбирает директивы, показывает какие URL разрешены и запрещены для каждого бота, подсвечивает ошибки и конфликты с sitemap.xml.
Третья проверка — в панелях поисковиков. У Google Search Central есть официальная документация по robots.txt и инструмент проверки в Search Console. У Яндекса — справка по robots.txt в Вебмастере и тестер конкретных URL.
Четвёртая проверка — на всём сайте. Когда у вас 1000+ страниц, недостаточно проверить один URL. SEO Crawler обходит сайт целиком и сверяет каждый URL с robots.txt, показывая какие страницы доступны для бота, а какие — случайно закрыты. Подробнее — в статье «Проверка сайта на ошибки SEO».
Чек-лист готового robots.txt
| Пункт | Норма | Как проверить |
|---|---|---|
| Расположение | /robots.txt в корне | Открыть в браузере |
| Код ответа | 200 OK, не 404 и не 301 | Проверить HTTP-статус |
| Кодировка | UTF-8 без BOM | Открыть в текстовом редакторе, проверить в настройках |
| Синтаксис | Без ошибок | Валидатор SEO Crawler |
User-agent | Указан хотя бы один | Просмотр файла |
| Служебные разделы | Закрыты (корзина, админка, поиск) | Список URL + Disallow |
| Статика CSS/JS | Открыта | Проверка Allow: или отсутствия запрета |
Sitemap: | Абсолютный URL | Просмотр файла |
| Staging-строка | Отсутствует Disallow: / на продакшне | Просмотр файла |
Часто задаваемые вопросы
Обязателен ли файл robots.txt?
Нет, сайт без robots.txt индексируется. Но без файла все URL открыты для обхода, включая служебные — корзины, формы авторизации, черновики. Для любого SEO-проекта файл обязателен.
Где должен лежать robots.txt?
Только в корне сайта: https://example.com/robots.txt. Поддомены нуждаются в собственном файле — https://shop.example.com/robots.txt обслуживается отдельно. Файл robots.txt для одного поддомена не действует на другие.
robots.txt запрещает индексацию?
Нет. Он запрещает обход — запрос HTML-страницы у сервера. Страница может попасть в индекс по внешней ссылке, даже если бот не читал её содержимое. Для гарантированного удаления из выдачи используйте noindex в meta robots или HTTP-заголовке.
Почему Google игнорирует мой Disallow?
Три типичных причины. Ошибка в синтаксисе — например, пробел перед директивой. Правило относится не к Googlebot, а к *, но выше есть группа User-agent: Googlebot с другими правилами (специфичная группа перекрывает общую). Страница уже в индексе — Disallow не выводит из индекса, только останавливает переобход.
Нужен ли разный robots.txt для Google и Яндекса?
В большинстве случаев — нет, одни и те же правила работают для обоих. Разные группы нужны, если используете специфичные для Яндекса директивы Clean-param и Crawl-delay, или хотите разрешить обход части сайта одному поисковику и запретить другому.