Коротко. Рабочий robots.txt строится на трёх директивах: User-agent (для какого робота правило), Disallow (что закрыть) и Sitemap (где искать карту сайта). От индексации закрывают админку, корзину и оформление заказа, страницы входа, результаты внутреннего поиска, служебные параметры фильтров и сортировки, а также технические дубли — но не сам контент, который должен быть виден: он в robots.txt не упоминается вообще. Файл должен весить не больше 500 КБ (это официальный лимит Google на чтение файла) и лежать строго по адресу site.ru/robots.txt в корне домена — по любому другому адресу поисковик его просто не найдёт.
Из чего вообще состоит robots.txt
Файл — это набор текстовых правил, сгруппированных блоками. Каждый блок начинается со строки User-agent, которая указывает, к какому роботу относятся следующие за ней правила: * — для всех роботов сразу, Yandex — только для роботов Яндекса, Googlebot — только для Google. После User-agent идут строки Disallow с адресами, которые нужно закрыть от обхода, и при необходимости Allow — исключение внутри уже закрытого раздела. Директива Sitemap с полным адресом карты сайта может стоять в любом месте файла и не привязана к конкретному User-agent — она общая для всех. Важная деталь: если для конкретного робота (например, Yandex) не задан отдельный блок User-agent, он использует общие правила из блока User-agent: * — заводить отдельный блок под каждого робота нужно только тогда, когда правила для них должны различаться.
Директивы, которые реально работают в 2026 году
| Директива | Что делает | Кто поддерживает |
|---|---|---|
| User-agent | Указывает, для какого робота действует блок правил | Google, Яндекс, все основные роботы |
| Disallow | Закрывает раздел или страницу от сканирования | Google, Яндекс, все основные роботы |
| Allow | Разрешает исключение внутри закрытого директивой Disallow раздела | Google, Яндекс, все основные роботы |
| Sitemap | Указывает адрес файла sitemap.xml | Google, Яндекс, все основные роботы |
| Clean-param | Сообщает, какие GET-параметры не влияют на контент и их можно игнорировать при обходе | Только Яндекс |
| Crawl-delay | Задержка между запросами робота к серверу | Игнорируется Google, частично учитывается некоторыми другими роботами |
Отдельно стоит сказать про директиву noindex внутри robots.txt — раньше её неофициально понимал Google, но в 2019 году компания официально прекратила её поддержку: сейчас запрет индексации через robots.txt в Google не работает вообще, для этой задачи нужен мета-тег noindex на самой странице. Если в файле до сих пор стоит эта директива в расчёте на Google — она молча игнорируется, и страница может остаться в индексе вопреки ожиданиям.
Что закрывать от роботов — и зачем
Логика простая: закрывают то, что не должно попасть в выдачу и не несёт пользы читателю поиска, но при этом обязательно доступно для сканирования роботом. Смешивать эти два случая — частая ошибка, к ней ниже отдельный раздел.
- Административная панель и служебные разделы CMS. Личный кабинет, панель управления, страницы входа и восстановления пароля — не нужны в поиске и потенциально раскрывают структуру сайта.
- Корзина и процесс оформления заказа. Динамические, персональные для каждого пользователя страницы, ценности в поиске не несут.
- Результаты внутреннего поиска по сайту. Страницы вида
/search?q=...генерируются на лету под любой запрос пользователя и создают бесконечное число технических дублей. - Параметры фильтров, сортировки и UTM-меток. Одна и та же карточка товара с разными комбинациями параметров превращается в десятки технически разных URL с одинаковым содержимым — прямой путь к раздутому индексу дублей.
- Технические дубли и версии для печати. Страницы с параметром
?print=1и подобные — копии основного контента без дополнительной ценности.
Правило для остального простое: если раздел содержит уникальный контент, ради которого человек может прийти из поиска, — его не закрывают. Ошибка, которая случается на практике чаще, чем можно подумать, — закрыть в порыве «почистить индекс» целый раздел блога или каталога, хотя именно он и должен приносить трафик через SEO-продвижение.
Разница между Disallow и noindex — и почему их нельзя путать
Это главный источник ошибок в работе с robots.txt. Disallow запрещает роботу сканировать страницу — то есть заходить и скачивать её содержимое. Но если на закрытую страницу есть ссылки с других сайтов, поисковик может всё равно показать её адрес в выдаче — без сниппета, просто как ссылку, потому что сам факт существования страницы ему известен, а прочитать её содержимое и убедиться, что она не нужна в поиске, робот не может. Тег noindex работает иначе: он прямо запрещает включать страницу в индекс, но чтобы робот увидел этот тег, он должен сначала зайти на страницу и прочитать код — то есть страница должна быть открыта для сканирования. Отсюда правило, которое стоит запомнить: никогда не закрывайте одну и ту же страницу одновременно через Disallow в robots.txt и через noindex в коде — робот, которому запрещено заходить на страницу, физически не увидит тег noindex внутри неё, и указание не сработает.
Как формулировать правила без синтаксических ошибок
Путь в директивах указывается от корня домена и чувствителен к регистру — /Catalog/ и /catalog/ для робота разные адреса. Символ $ в конце пути означает «строго это окончание», без него правило захватывает и все вложенные адреса: Disallow: /cart закроет и /cart, и /cart/checkout, и случайно попавшуюся страницу /cart-info, если такая есть на сайте, — здесь и кроется частая ошибка, когда правило закрывает больше, чем задумывалось. Символ * работает как маска для любой последовательности символов, что удобно для закрытия параметров: Disallow: /*?sort= закроет любые адреса с этим параметром сортировки независимо от остального пути.
Готовый каркас файла для типового сайта
Ниже — не универсальный шаблон под копирование, а логика, по которой файл собирают под конкретный сайт: сначала общий блок для всех роботов с базовыми закрытиями, затем при необходимости отдельный блок под Яндекс с директивой Clean-param, если на сайте активно используются лишние GET-параметры, и в конце — обязательная строка Sitemap с полным адресом карты сайта. Для сайтов на популярных CMS (WordPress, Bitrix, Tilda) многое из типовых закрытий (админка, служебные скрипты) добавляется автоматически движком, но это стоит перепроверить руками — автоматика не всегда учитывает специфику конкретного проекта, например собственные разделы фильтров каталога. Если файл настраивают не с нуля, а на уже работающем сайте, любые изменения в нём стоит согласовывать с тем, кто ведёт его текущую техническую поддержку, — правило, которое выглядит безопасным изолированно, может неожиданно пересечься с другими техническими настройками сайта.
FAQ
Обязательно ли иметь robots.txt на сайте?
Формально нет — при отсутствии файла робот считает, что сканировать можно всё. Но на практике файл нужен почти всегда, чтобы явно закрыть служебные разделы и указать sitemap, а не полагаться на догадки робота.
Можно ли закрыть страницу от индексации только через robots.txt?
Не полностью — Disallow запрещает сканирование, но не гарантирует отсутствие адреса в выдаче, если на страницу ссылаются извне. Подробный разбор способов и когда какой применять — в материале о том, как закрыть сайт или страницы от индексации.
Работает ли Crawl-delay для Google?
Нет, Google официально не учитывает эту директиву в robots.txt — скорость обхода регулируется автоматически на основе того, как быстро отвечает сервер.
Что будет, если в файле есть ошибка синтаксиса?
Роботы обычно игнорируют некорректную строку, а не весь файл целиком, но результат непредсказуем и зависит от типа ошибки — поэтому файл всегда стоит проверять через инструменты панелей вебмастера перед публикацией.
Нужен ли отдельный robots.txt для мобильной версии сайта?
Если мобильная версия на том же домене (адаптивная вёрстка) — нет, файл общий. Если это отдельный поддомен вроде m.site.ru — для него нужен собственный robots.txt по тому же адресу в его корне.
Проверить, правильно ли настроен robots.txt на сайте
Бесплатный аудит покажет, что сейчас закрыто от роботов и не мешает ли это индексации важных страниц.
Готовый robots.txt для WordPress
Базовый набор правил: закрываем служебные каталоги, оставляем открытым ajax-обработчик и указываем карту сайта.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-includes/
Disallow: /?s=
Disallow: /*?replytocom
Allow: /wp-content/uploads/
Sitemap: https://example.ru/sitemap_index.xml