ru/en
Menu
05 дек 2025, 12:00

Robots.txt, который не ломает индексацию: как создать, настроить и проверить

Ольга Дягилева

1) Что такое robots.txt и когда он нужен

Определение и роль

Robots.txt — это текстовый файл в корне сайта (https://example.com/robots.txt), который сообщает веб‑роботам, какие разделы разрешено или запрещено сканировать. Это «протокол вежливости», а не барьер безопасности.

Цитата:

Robots.txt не предназначен для удаления URL из поиска. Он ограничивает обход, а не индексацию.
— Google Search Central

Что robots.txt может, а что — нет

  • Может:
    • Направлять бота: какие пути закрыть от обхода (Disallow) и какие разрешить (Allow).
    • Указать карту сайта (Sitemap).
    • Подсказать частоту обхода некоторым ботам (Crawl-delay).
  • Не может:
    • Гарантированно удалить уже известные URL из индекса (для этого используются noindex/HTTP‑коды/удаление в веб‑мастере).
    • Скрыть конфиденциальные разделы (используйте авторизацию/белые списки IP).

Возможности robots.txt

Когда robots.txt обязателен, а когда — факультативен

  • Обязателен: сайты со служебными разделами (поиск/корзина/кабинет), каталоги с параметрами, SPA с API‑эндпоинтами, мультиязычные/мультидоменные проекты, крупные сайты (краулинговый бюджет).
  • Факультативен: крошечные лендинги без служебных разделов (но лучше иметь даже минимальный файл).

— — —

2) Синтаксис и приоритеты: как поисковики читают правила

Базовые элементы REP (Robots Exclusion Protocol)

Файл состоит из «групп» правил. Каждая группа начинается строками User-agent, после чего идут Allow/Disallow для этого агента.

Пример минимального файла:

text

User-agent: *

Disallow:

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

Пустой Disallow означает «разрешено всё».

Приоритет правил: что победит, Allow или Disallow

  • Матч по User-agent: бот выбирает самую конкретную группу (например, Googlebot предпочтет блок для Googlebot, а не общий для *).
  • Матч по путям: используется «наиболее специфичное правило» (самая длинная совпавшая строка). Если два правила одинаковой длины — преимущество у Allow (для Google). В других поисковиках поведение может отличаться — тестируйте.
  • Порядок строк в группе вторичен; важнее длина совпавшего паттерна.

Вайлдкарды и якоря

Поддерживаются простые маски, это не регулярные выражения.

  • «*» — соответствует любым символам (в т.ч. слэшу).
  • «$» — конец URL.
    Примеры:

text

Disallow: /*?sort=

Disallow: /*.pdf$

Allow: /assets/*.css$

Ограничения и нюансы

  • Размер: Google обрабатывает первые ~500 КБ файла. Критичные правила ставьте выше.
  • Регистр: путь чувствителен к регистру (/Catalog ≠ /catalog).
  • Хост/схема: robots.txt действует для конкретного хоста и схемы. Для http и https, а также поддоменов — отдельные файлы.
  • Комментарии начинаются с «#».
  • Кодировка: используйте UTF‑8.

Таблица: основные директивы и поддержка

Директива Для чего Поддержка Google Поддержка Яндекс Примечания
User-agent Указать группу правил для бота Да Да Можно несколько агентов в группе
Disallow Запрет обхода пути Да Да Пустая строка = всё разрешено
Allow Разрешить частично внутри Disallow Да Да Нужен для статики (CSS/JS)
Sitemap Указать карту сайта Да Да Можно несколько ссылок
Crawl-delay Задержка между запросами Нет Да Также поддерживает Bing; на Google не действует
Host Предпочтительный хост Нет Да Лучше решать 301+canonical
Clean-param Игнорировать параметры Нет Да Продвинутая настройка дублей

— — —

3) Robots.txt vs meta robots vs X‑Robots‑Tag

Сравнение инструментов контроля индексации

Инструмент Где задаётся Что делает Когда использовать
robots.txt /robots.txt Управляет обходом (crawl) Закрыть служебные разделы, шумные параметры, внутренний поиск
Meta robots В <head> HTML index/noindex, follow/nofollow, сниппеты Убрать страницу из индекса при доступном обходе
X‑Robots‑Tag HTTP‑заголовок noindex для не‑HTML (PDF, изображения) Деиндексация файлов, управление превью

Ключевой принцип:

  • Чтобы страница гарантированно исчезла из индекса, робот должен увидеть noindex. Если вы закрыли страницу Disallow, робот не сможет прочитать её meta robots — и URL останется в индексе как «URL только по ссылкам».
  • Для Google «noindex в robots.txt» не работает. В Яндексе существуют дополнительные директивы, но best practice — использовать meta/x‑robots.

Цитата:

Если вам нужно удалить URL из поиска, не блокируйте его в robots.txt. Разрешите обход и используйте noindex или 404/410.
— Google Search Central

Типовые сценарии

  • Параметрические страницы без ценности: не блокируйте сами страницы — ставьте rel=canonical на чистый URL и по ситуации meta robots: noindex. В robots.txt закрывайте только внутренний поиск и бесконечные параметры.
  • Разделы /admin, /cart, /checkout: блокируйте Disallow.
  • PDF/изображения, которые не должны индексироваться: X‑Robots‑Tag: noindex в заголовках ответа.
  • Стейджинг/препрод: не полагайтесь на Disallow: /. Используйте basic auth/whitelist IP + noindex, чтобы случайно индекс не «просочился».

— — —

4) Как создать и разместить robots.txt

Где должен лежать файл и как его отдавать

  • Путь: строго /robots.txt в корне хоста (https://example.com/robots.txt).
  • HTTP: отдавайте 200 OK, без редиректов. 404/410 трактуется как «ограничений нет». 5xx/403 может привести к временному «закрытию всего» до восстановления.
  • Кеш: поисковики кешируют robots.txt (обычно до 24 часов). Правки вступают в силу не моментально.

Где должен лежать файл и как его отдавать

Проверка:

text

curl -I https://example.com/robots.txt

HTTP/2 200

content-type: text/plain; charset=utf-8

content-length: 512

Минимальный шаблон (разрешено всё + карта сайта)

text

User-agent: *

Disallow:

 

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

Типовые шаблоны по задачам

  1. eCommerce (закрываем служебное, оставляем статику)

text

User-agent: *

Disallow: /admin/

Disallow: /cart/

Disallow: /checkout/

Disallow: /compare/

Disallow: /wishlist/

Disallow: /search/

Disallow: /*?sessionid=

Disallow: /*&page=

Allow: /assets/*.css$

Allow: /assets/*.js$

Allow: /uploads/

 

Sitemap: https://example.com/sitemaps/sitemap-index.xml

  1. Блог/медиа

text

User-agent: *

Disallow: /wp-admin/

Allow: /wp-admin/admin-ajax.php

Disallow: /?s=

Disallow: /search/

Allow: /wp-content/uploads/

Sitemap: https://example.com/sitemap_index.xml

  1. SPA/фронтенд на JS

text

User-agent: *

Disallow: /api/

Disallow: /internal/

Allow: /assets/*.css$

Allow: /assets/*.js$

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

Важно: ссылки в приложении должны быть настоящими <a href=»…»>, а не onclick.

  1. Мультиязык/поддомены
    Для каждого поддомена/хоста — свой файл:
  • https://en.example.com/robots.txt
  • https://de.example.com/robots.txt

Серверные нюансы (Nginx/Apache)

Nginx: разные файлы для стейджинга и прода

nginx

# Production

server {

server_name example.com www.example.com;

location = /robots.txt {

root /var/www/prod/public;

add_header Content-Type text/plain;

}

}

 

# Staging: блок + basic auth

server {

server_name staging.example.com;

auth_basic «Restricted»;

auth_basic_user_file /etc/nginx/.htpasswd;

 

location = /robots.txt {

return 200 «User-agent: *\nDisallow: /\n»;

}

}

— — —

5) Паттерны правил: от параметров до медиа и конкретных ботов

Закрытие служебных и тонкая настройка

  • Внутренний поиск: Disallow: /search/ и Disallow: /?s=
  • Сессии и сортировки: Disallow: /*?session= и Disallow: /?*sort=
  • Пагинация? Обычно НЕ закрывайте, если хотите, чтобы глубина каталога индексировалась. Управляйте индексацией через self‑canonical на каждую страницу пагинации.

Примеры:

text

# Параметры сортировки и трекинга

Disallow: /*?*sort=

Disallow: /*?*utm_

Disallow: /*?*ref=

 

# Дубли с хвостами

Disallow: /*&view=*

Disallow: /*?page=0

Медиа, статика, документы

  • Не блокируйте CSS/JS, необходимые для отрисовки. Это важно для корректной оценки страниц в мобильном индексе.
  • Чтобы скрыть PDF/изображения из поиска — используйте X‑Robots‑Tag: noindex в ответе сервера.

Nginx для PDF:

nginx

location ~* \.pdf$ {

add_header X-Robots-Tag «noindex, noarchive»;

}

Работа с конкретными ботами

  • Googlebot, Googlebot-Image, Googlebot-News — настраивайте точечно, если нужно.
  • Bingbot, Yandex — поддерживают Crawl-delay.

Пример:

text

User-agent: Googlebot-Image

Disallow: /private-images/

 

User-agent: Bingbot

Crawl-delay: 2

 

User-agent: Yandex

Crawl-delay: 1

Clean-param: sort&page /catalog/

Примечания:

  • Crawl-delay Google не поддерживает (регулируйте в Search Console/внутренним rate‑limit).
  • Clean-param — директива Яндекса для борьбы с дублями по параметрам. Используйте осторожно, приоритетнее — canonical и корректная архитектура URL.

Блокировать ли изображения/видео в /uploads?

Лучше — нет. Блокировка мешает полноценному рендерингу и может ухудшить понимание страниц. Если есть приват, вынесите его в закрытый раздел с авторизацией.

Таблица: «Что хотим» → «Как делаем»

Цель Что использовать Пример
Спрятать служебные разделы Disallow Disallow: /admin/
Убрать параметрические дубли Canonical + (опц.) Clean-param rel=canonical на чистый URL
Убрать URL из индекса Meta robots/X‑Robots‑Tag <meta name=»robots» content=»noindex»>
Убрать PDF из поиска X‑Robots‑Tag add_header X-Robots-Tag «noindex»;
Снизить нагрузку бота Crawl-delay (не Google) Crawl-delay: 1 (Яндекс)
Указать карты Sitemap Sitemap: https://example.com/sitemap.xml

— — —

6) Публикация, тестирование и мониторинг

Публикация и «объявление» роботу

  • Разместите файл по адресу /robots.txt, без редиректов.
  • Добавьте ссылки на Sitemap: (можно несколько).
  • Дублируйте ссылку на карту сайта в robots.txt и добавьте карту в веб‑мастерах.

Как тестировать

  • Проверяйте статус файла:
    • curl -I https://example.com/robots.txt (200 OK?)
    • Веб‑мастера: статус чтения robots.txt (у Яндекса — отчёт, у Google — косвенно через URL Inspection).
  • Проверка URL: URL Inspection (Google) и «Проверка URL» у Яндекса показывают, заблокирован ли URL robots.txt.
  • Краулеры (Screaming Frog/Sitebulb): конфигурация «Obey robots.txt» → отчёт по блокам.
  • Логи сервера: заходы ботов на robots.txt (Googlebot обращается минимум раз в сутки).

Что мониторить регулярно

Метрика Инструмент Целевое состояние
HTTP‑статус robots.txt Мониторинг/алёрты Всегда 200 OK
Доступность sitemap GSC/веб‑мастера/краулер «Успешно», без 3xx/4xx/5xx
«Заблокировано robots.txt» GSC → Индексация Нет критичных «денежных» URL
Render‑результат URL Inspection → Снимок CSS/JS доступны
Частота обновления Логи 1×/сутки или чаще (крупные сайты)

Цитата:

Любая авария с robots.txt — риск на весь сайт. Держите файл статическим, под мониторингом, в репозитории и за флагом «только чтение» на проде.

Кэширование и задержки

  • Боты кешируют robots.txt (≈24 ч). При критичных правках можно временно продублировать запреты на уровне сервера (например, 403 для специфичных путей) и затем откатить.

— — —

7) Ошибки, которые дороже любой скидки

Топ‑ошибки и как исправлять

Ошибка Симптом Исправление
Disallow: / (забыли снять после стейджинга) Резкий спад обхода/индексации Срочно вернуть доступ, добавить мониторинг и pre‑deploy чек
Блокировка CSS/JS Страницы «не видит» как мобильные, сниппеты странные Allow для папок со статикой
Надежда «Disallow деиндексирует» URL остаются как «известные» Разрешить обход + noindex или 404/410
Неконсистентный хост/схема Дубликаты http/https, www/non‑www 301 + canonical + единый URL в sitemap/robots
Редиректы/5xx на robots.txt Боты «ждут», сайт «закрыт» Отдавайте статический 200 OK
Перебор с Disallow по параметрам Блок глубины каталога Управляйте дублями canonical’ом, оставьте пагинацию index
Сто параметров Clean-param Случайные выбросы страниц из индекса Актуализируйте список, не заменяйте им архитектуру

Анти‑паттерны

  • «Закроем фильтры в robots — и всё» — нет, вы лишь затрудняете обход, но не решаете дубль контента.
  • «Стейджинг прикроем robots и хватит» — нет, поисковики всё равно могут зайти. Только авторизация.
  • «Сделаем общий robots для всех поддоменов» — так нельзя. Нужен отдельный для каждого хоста.

— — —

8) Кейсы, чек‑лист и 90‑дневный план

Кейсы (цифры иллюстративные, подходы — реальные)

Кейс 1. eCommerce: «закрыли фильтры — закрыли продажи»

Контекст: крупный каталог, рост «мусорных» параметров. Команда закрыла всё, что содержало «?» в robots.txt.
Последствия: глубина категорий перестала краулиться; доля новых товаров, появляющихся в индексе, упала; SEO‑трафик с «хвоста» −22%.
Решение:

  • Вернули пагинацию в индекс (self‑canonical на каждую страницу).
  • Оставили Disallow только для внутренних параметров (sort, session, utm).
  • На «умные» фильтры сделали SEO‑лендинги + уникальные интро.
    Итог (8 недель): +31% кликов по фасетам, восстановление глубины индекса.

Кейс 2. Авария robots на стейджинге

Контекст: dev‑команда деплоит robots.txt с Disallow: / на прод.
Результат: через сутки в GSC всплеск «заблокировано robots.txt», трафик просел на 18% за 3 дня.
Решение:

  • Немедленный откат, алёртинг на статус robots.txt, защита ветки файла от записи.
  • Pre‑deploy чек‑лист в CI: проверка содержания robots.txt и доступности sitemap.
    Итог: восстановление видимости за 1–2 недели, урок выучен.

Кейс 3. Медиа: ускорение обхода обновлений

Контекст: журнал обновляет гайды; бот лениво переобходит.
Решение:

  • Чистый robots (не блокируем разделы с гайдами), lastmod в sitemap честный.
  • Убрали «псевдо‑обновления» из lastmod.
    Результат: время до переобхода обновлённых гайдов — с 5–7 дней до 24–48 часов, видимость +12%.

90‑дневный план внедрения

Недели Блок Что делаем Результат
1–2 Аудит Инвентаризация служебных путей, параметров, SPA‑эндпоинтов Бэклог правил
3–4 Проект Проект robots.txt по типам страниц, шаблоны Allow/Disallow, Sitemap Черновик и ревью
5–6 Генерация/деплой Публикация файла, проверка 200 OK, добавление Sitemap, алёрты Запуск
7–8 Отладка Проверки URL (Inspection), краул по robots, логи Фикс краул‑ошибок
9–10 Уточнение Точная настройка параметров (Disallow/Canonical/Clean-param), CSS/JS allow Стабильность рендера
11–12 Автоматизация CI‑проверки, мониторинг статуса, алерты Защита от аварий
13 Ретроспектива Сверка KPI (индексация, клики), правки Контур оптимизации

Чек‑лист перед релизом robots.txt

  • Структура файла
    • Группы User-agent → Allow/Disallow оформлены корректно
    • Критичные Allow/Disallow наверху (лимит 500 КБ)
  • Правила
    • Не блокируете CSS/JS, нужные для рендера
    • Пагинация не закрыта, если нужна индексация глубины
    • Закрыт внутренний поиск, корзина, кабинет, /admin
    • Параметры: закрыты только служебные (sort, session, utm)
  • Доп. директивы
    • Sitemap: все актуальные карты перечислены
    • Crawl-delay: только для Яндекса/Бинга при необходимости
    • Host/Clean-param (если используете Яндекс) — проверены
  • Инфраструктура
    • /robots.txt отдаёт 200 OK, без редиректов
    • Файл хранится в репозитории, защищён от случайного изменения
    • Настроены алёрты на статус/содержимое файлов (hash‑мониторинг)
  • Верификация
    • URL Inspection/веб‑мастер: нет критичных «заблокировано robots.txt»
    • Краулеры: obey robots — ошибок нет
    • Логи: боты регулярно читают robots.txt и обходят важные разделы

— — —

Заключение

Файл robots.txt — инструмент управления обходом, а не волшебная кнопка «убрать из поиска». Его сила — в дисциплине: чисто закрываем служебные разделы, не мешаем рендерингу (CSS/JS), осознанно работаем с параметрами и вслух говорим роботу, где лежит «истина» (Sitemap). Для деиндексации используем noindex/HTTP‑коды, а не Disallow.

Ключевые правила:

  • Проектируйте правила под архитектуру, а не наоборот.
  • Не блокируйте то, что должно рендериться (CSS/JS) и индексироваться (пагинация).
  • В проде robots.txt — статичный, под мониторингом, с алёртами.
  • Любые правки — через чек‑лист и ревью: «одна строка» может стоить недели трафика.

Популярные статьи автора

Наш Telegram-канал

Telegram
Присоединяйтесь к нашему Telegram-каналу. Теперь вы можете читать последние новости из мира интернет-маркетинга прямо в мессенджере
Подписаться

Бесплатный аудит

Никита Шваков
Никита Шваков
Основатель I-SEO
Заполните форму или напишите в удобный мессенджер
Я соглашаюсь с политикой конфиденциальности и даю согласие на обработку персональных данных