Нужно закрыть технический раздел, но оставить статьи и товары доступными поиску. В «Гуси-Лебеди» начинаем работу с robots.txt со списка конкретных адресов: что робот должен обходить, а что ему не нужно загружать. Такой список понятнее универсального файла, скопированного с чужого сайта.
Robots.txt содержит правила для поисковых роботов. Он не защищает личные документы и не гарантирует удаление URL из поиска. Здесь показываем, где размещать файл, как читать директивы и как проверить их границы. Все примеры используют учебный домен example.com.
Для чего нужен robots.txt: обход, индексирование и доступ

Робот обнаруживает URL, решает, можно ли его загрузить, получает содержимое и затем обрабатывает указания страницы. Это разные этапы. Если запретить загрузку, робот может не увидеть noindex, добавленный в HTML. При этом сам адрес может быть известен из ссылок.
| Задача | Подходящий механизм | Чего недостаточно |
|---|---|---|
| Ограничить обход технических URL | Продуманное правило robots.txt | Просто убрать ссылку из меню |
| Исключить общедоступную страницу из поиска | Доступный роботу noindex в HTML или HTTP-заголовке | Закрыть URL в robots.txt и ждать чтения noindex |
| Защитить личный документ | Авторизация и проверка прав на сервере | Disallow с адресом документа |
| Перенести страницу | Соответствующее перенаправление | Запретить роботу старый адрес до чтения редиректа |
| Указать предпочтительную версию дубля | Согласованная стратегия canonical, ссылок и параметров | Случайный набор запретов |
Яндекс прямо указывает, что ограниченные в robots.txt страницы могут оставаться в поиске, а для обработки noindex нужен доступ к странице. См. справку по использованию robots.txt. Это ключевой момент при разборе ситуации «закрыл, но URL всё ещё виден».
Как создать файл robots.txt и где его разместить

Обычный адрес файла - https://example.com/robots.txt. Важно именно содержимое публичного ответа, а не наличие файла в папке разработчика. CMS, плагин, reverse proxy или CDN могут формировать и кешировать другой ответ.
Проверьте нужные сочетания протокола, хоста и порта. Файл основного домена не следует считать общей настройкой всех поддоменов. У тестовой площадки, медиа-хранилища и мобильного поддомена могут быть собственные правила. Область действия и формат описаны в инструкции Google.
Ответ должен быть ожидаемым текстом, а не HTML-страницей входа, сообщением антибота или ошибкой шаблона с HTTP 200. Проверяйте код ответа, редиректы, кодировку и фактические строки. Ошибка загрузки robots.txt и отсутствие файла - разные состояния; обработка зависит от поисковика и HTTP-статуса.
Создайте обычный текстовый файл robots.txt в кодировке UTF-8 и убедитесь, что редактор не добавил второе расширение .txt. Опубликуйте его в корне нужного сайта. В CMS файл может формироваться виртуально: сначала выясните, какой источник отдаёт сервер, затем меняйте именно его. После сохранения откройте публичный адрес файла и сравните строки с подготовленной версией.
Как настроить User-agent, Disallow и Allow

User-agent выбирает группу правил для робота. Disallow ограничивает подходящие пути, Allow разрешает исключения. Пути чувствительны к регистру. Комментарий начинается с #. Держите каждое правило на отдельной строке и не превращайте файл в трудно проверяемую коллекцию исторических записей.
Учебный фрагмент закрывает технический раздел /internal/, но разрешает публичное руководство внутри него:
User-agent: *
Disallow: /internal/
Allow: /internal/public-guide/
Sitemap: https://example.com/sitemap.xml
Проверьте ожидаемую матрицу: /internal/report/ закрыт; /internal/public-guide/start/ открыт; /services/audit/ не затронут. Название internal условное: в реальном проекте сначала убедитесь, что в этом разделе нет важных страниц и ресурсов.
Более конкретное правило может перекрывать общее. Это не модель «последняя строка побеждает». В описании обработки Google отдельно разобраны выбор группы и приоритет совпавших путей. Для другого робота проверяйте его реализацию, особенно при нестандартных директивах.
Предположим, в общей группе закрыт /internal/, а ниже создана отдельная группа Googlebot только с запретом /drafts/. Нельзя считать, что она автоматически наследует все ограничения из User-agent: *. Для Google специфичная группа и общая группа не объединяются.
# Учебный пример неожиданного результата
User-agent: *
Disallow: /internal/
User-agent: Googlebot
Disallow: /drafts/
В таком примере Googlebot получает свою группу, где /internal/ не запрещён. Если нужны оба ограничения, включите оба в предназначенную ему группу. Но сначала спросите, зачем отдельная группа вообще нужна: часто одна общая группа проще и надёжнее.
Храните рядом с файлом список ожидаемых результатов по роботам. Один и тот же URL нужно проверить как минимум для тех поисковиков, на которые рассчитан проект. Синтаксически правильный файл может реализовывать неверную логику.
Правило /catalog и правило /catalog/ имеют разную область. Первое может затронуть /catalogue/ и /catalog-old/, потому что путь начинается с указанной последовательности. Второе ориентировано на раздел со слэшем. Ошибку легко не заметить, проверив только одну страницу.
В поддерживаемых правилах * обозначает произвольную последовательность, а $ - конец адреса. Поэтому запрет /*.pdf$ и запрет /*.pdf дают разные результаты для URL с параметрами. Эти конструкции не равны полноценным регулярным выражениям: не переносите в файл синтаксис из языка программирования.
| Учебное правило | Контрольный URL | Ожидаемая проверка |
|---|---|---|
| Disallow: /catalog/ | /catalog/item/ | Совпадает |
| Disallow: /catalog/ | /catalogue/ | Не совпадает |
| Disallow: /*.pdf$ | /files/brief.pdf | Совпадает |
| Disallow: /*.pdf$ | /files/brief.pdf?ref=mail | Не совпадает с концом .pdf |
Это примеры для понимания, а не рекомендация закрывать PDF. Документ может быть важной посадочной. Общие принципы протокола и ограничения описаны в RFC 9309; практическую совместимость сверяйте с документацией целевого робота.
Как работать с параметрами, Sitemap и ресурсами страницы

Учебный каталог использует ?brand=acme для выбора бренда и ?ref=partner для отметки источника. Первый параметр меняет содержание, второй - нет. Общее правило против всех URL с параметрами может закрыть полезные категории вместе с дублями.
В Яндексе Clean-param позволяет указать параметры, не влияющие на содержание. Например, для нашего условного каталога можно отдельно рассмотреть ref. Но исключать brand в таком примере нельзя: после его удаления пользователь получает другой набор товаров.
# Только если ref действительно не меняет содержание
Clean-param: ref /catalog/
До публикации сравните пары URL с параметром и без него: заголовок, основной контент, товары, цену, язык и регион. Сверьте настройки GET-параметров в Вебмастере, если они используются. Подробности - в справке Clean-param. Это расширение Яндекса; не считайте его общим решением для всех поисковиков.
Шаблон «закрыть всё служебное» может случайно запретить CSS, JavaScript и изображения, необходимые для понимания страницы. Название каталога assets или includes само по себе не говорит, что ресурсы бесполезны роботу.
При работе с CMS проверьте фактические пути. Публичные изображения могут храниться рядом с административными файлами, а обработчик динамического блока - находиться в техническом каталоге. Копирование чужого robots.txt без проверки архитектуры опасно именно такими совпадениями.
Не размещайте конфиденциальные адреса в надежде, что запрет их скроет. Сам robots.txt общедоступен. Безопасность обеспечивается проверкой прав, а управление обходом - отдельной задачей.
Директива Sitemap сообщает полный адрес карты сайта. Она не отменяет Disallow и не гарантирует включение URL в поиск. В примере выше карта находится по https://example.com/sitemap.xml; на своём сайте указывайте фактический адрес доступного файла с актуальными страницами.
Как проверить robots.txt и отдельные URL

Создайте контрольный набор: главная, услуга, статья, категория, товар, картинка, CSS, JavaScript, технический URL, параметризованный дубль и исключение Allow. Для каждого запишите ожидаемое решение и робота.
Аудит правил индексации сайта должен проверять примеры разрешённых и запрещённых адресов, включая ресурсы страницы. Одна строка robots.txt может затронуть больше разделов, чем предполагал автор.
Проверьте не только адреса, которые должны закрыться, но и соседние, которые должны остаться доступными. Для запрета /search/ добавьте /research/ и /search-guide/; для исключения /internal/public-guide/ - соседний закрытый документ. Так проверяется граница правила.
- Сохранить предыдущую версию и цель изменения.
- Проверить правила доступным валидатором для нужного робота.
- Опубликовать минимальное изменение.
- Прочитать публичный /robots.txt заново и сравнить содержимое.
- Проверить контрольные URL и отсутствие случайных запретов важных ресурсов.
- После обновления данных робота проверить диагностику и обход.
Не выдавайте мгновенное открытие файла в браузере за подтверждение, что все роботы уже применили изменения. У них есть собственное кеширование и расписание обращений. Сохранённый результат проверки должен содержать дату, URL, робота и ожидаемое поведение.
Для Яндекса откройте «Инструменты» → «Анализ robots.txt» в Вебмастере. Изучите результаты обработки правил и вкладку ошибок. В блоке «Доступ к страницам» добавьте контрольные URL и запустите проверку. Если проверяете подготовленные правки, сравните этот текст с публичным файлом после публикации: правка в поле анализатора сама по себе не изменяет сервер. Порядок описан в справке анализатора Яндекса.
Что делать при ошибках и как принимать изменения

Раздел исчезает после релиза. Проверьте публичные правила, noindex и заголовки, выбранный canonical, статусы и редиректы. Не меняйте robots.txt наугад: причина может находиться в другом слое.
Если правила генерирует CMS или окружение, передайте исправление в техническое обслуживание сайта вместе с проверкой после релиза. Иначе следующий деплой может восстановить старый запрет.
Закрытый URL всё ещё виден. Определите задачу удаления из поиска, обеспечьте возможность прочитать нужное указание и проверьте фактическую обработку. Для срочного скрытия могут существовать отдельные инструменты поисковика, но они не заменяют постоянное корректное состояние страницы.
Изменение файла не видно. Проверьте кеш CDN, виртуальную генерацию CMS и правильный хост. Возможно, редактируется физический файл, который сервер вообще не отдаёт.
Робот продолжает обращаться. Убедитесь, что это нужный робот, а не клиент с похожим User-Agent. Правила добровольного протокола не являются сетевой блокировкой. Не делайте вывод об игнорировании по одной строке журнала без времени и контекста.
Разделяйте правила обхода и проверку индексирования. При переносе используйте план миграции сайта, а список актуальных адресов сверяйте через проверку Sitemap.
Надёжный robots.txt - небольшой понятный набор правил с проверенными границами. Критерий качества - доступность нужных страниц и ожидаемое поведение на контрольных URL, а не количество директив.
Мы передаём не только файл, но и цель изменения, проверенные адреса, ожидаемые ответы для нужных роботов и предыдущую версию. Если меняются шаблоны или структура, повторите эту проверку: сохранённые правила должны соответствовать текущему сайту. Сверьте их также с выбранными каноническими адресами, чтобы настройки не противоречили друг другу.
