Robots.txt для SEO: полная инструкция с примерами и типовыми ошибками

Robots.txt — текстовый файл, который говорит поисковым роботам, что можно и что нельзя сканировать на сайте. Ошибки в robots.txt могут закрыть от индексации половину сайта или наоборот — открыть служебные разделы. В этой статье — полное руководство по настройке robots.txt для SEO от SEO Мастера.
Коротко
- Robots.txt лежит в корне сайта: /robots.txt
- Главные директивы: User-agent, Disallow, Allow, Sitemap, Clean-param.
- Ошибки robots.txt — одна из самых частых причин падения трафика.
- Всегда проверяйте в Яндекс.Вебмастере → «Инструменты» → «Анализ robots.txt».
Синтаксис robots.txt
Базовая структура:
User-agent: [имя робота]
Disallow: [запрещённый путь]
Allow: [разрешённый путь внутри запрещённого]
Sitemap: [URL sitemap.xml]
Clean-param: [параметр] [путь]
Главные директивы
User-agent
Указывает, для какого робота правила. Примеры:
User-agent: *— для всех роботовUser-agent: Yandex— для всех роботов ЯндексаUser-agent: YandexBot— для основного робота ЯндексаUser-agent: Googlebot— для Google
Disallow
Запрещает сканировать путь:
Disallow: /— закрывает весь сайтDisallow: /admin/— только папку adminDisallow: /*.pdf$— все PDF-файлыDisallow: /*?sort=— URL с параметром sort
Allow
Разрешает путь внутри запрещённой зоны:
Disallow: /images/Allow: /images/public/
Sitemap
Указывает URL карты сайта. Может быть несколько:
Sitemap: https://site.ru/sitemap.xmlSitemap: https://site.ru/sitemap_products.xml
Clean-param (Яндекс)
Указывает параметры URL, которые не меняют содержимое (UTM, sort, id_session):
Clean-param: utm_source&utm_medium /Clean-param: sort /catalog/
Правильный robots.txt для основных CMS
WordPress
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/cache/
Disallow: /search/
Disallow: /?s=
Disallow: /*?replytocom
Allow: /wp-admin/admin-ajax.php
Allow: /wp-content/uploads/
Sitemap: https://site.ru/sitemap.xml
1C-Битрикс
User-agent: *
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /search/
Disallow: /*?login=yes
Disallow: /*?register=yes
Disallow: /*?forgot_password=yes
Disallow: /*?change_password=yes
Disallow: /*?logout=yes
Disallow: /*&print=
Disallow: /*?action=
Clean-param: utm_source&utm_medium&utm_campaign /
Sitemap: https://site.ru/sitemap.xml
MODX
User-agent: *
Disallow: /manager/
Disallow: /assets/components/
Disallow: /core/
Disallow: /connectors/
Disallow: /index.php
Disallow: *?
Sitemap: https://site.ru/sitemap.xml
Типичные ошибки robots.txt
- Disallow: / в продакшене. Закрывает весь сайт. Часто случается после переноса с тестового домена.
- Закрыты CSS/JS/картинки. Яндекс не может правильно оценить страницу. Рендеринг не работает.
- Отсутствие Sitemap. Робот не знает о приоритетных страницах.
- Закрыты категории интернет-магазина. Обычно случайно через блокировку параметров.
- Неправильный синтаксис. Лишние пробелы, неправильный порядок директив.
- Смешение Allow и Disallow. Робот может не понять, что разрешено, а что нет.
Проверка и валидация
- Яндекс.Вебмастер → Инструменты → Анализ robots.txt
- Вставляем robots.txt или URL
- Вбиваем проверяемый URL — видим, разрешён он или запрещён
- Можно проверить несколько URL одновременно
Специальные случаи
Мультиязычный сайт
Если у вас /en/, /de/ версии — убедитесь, что они открыты:
User-agent: *
Allow: /en/
Allow: /de/
Sitemap: https://site.ru/sitemap_ru.xml
Sitemap: https://site.ru/sitemap_en.xml
Поддомены
Каждый поддомен имеет свой robots.txt. m.site.ru/robots.txt — отдельный файл.
Картинки
Не закрывайте /images/ или /uploads/ — теряете Яндекс.Картинки:
User-agent: YandexImages
Allow: /uploads/
Частые вопросы
Формально — нет. Отсутствие = всё разрешено. Но лучше его иметь с базовой структурой.
Теоретически нет, но если на неё есть внешние ссылки — может попасть в индекс без контента. Для гарантированного запрета — meta robots noindex.
Обычно 1-2 дня. Для больших изменений — до недели.
Да, через User-agent: Yandex и User-agent: Googlebot.
Через meta robots noindex — да. Через robots.txt — нет (не сможете отследить цель в Метрике).
Robots.txt и краул-бюджет
Для больших сайтов (50k+ страниц) robots.txt — инструмент оптимизации краул-бюджета:
- Закрываем ненужные фильтры и пагинацию
- Закрываем дубли (сортировки, виды отображения)
- Очищаем UTM и реферальные параметры через Clean-param
- Приоритизируем важные разделы через Allow
Правильно настроенный robots.txt может ускорить индексацию важных страниц в 2-3 раза.
Безопасность через robots.txt — нельзя
Robots.txt — это правила вежливости для роботов. Не защита от злоумышленников:
- Файл публично доступен — /robots.txt виден всем
- Нельзя закрывать конфиденциальные разделы — они станут известны
- Для реальной защиты — пароли, авторизация, .htaccess
Regex и специальные символы
В robots.txt есть ограниченная поддержка регулярных выражений:
*— любая последовательность символов$— конец URL- Пример:
Disallow: /*.pdf$— все PDF-файлы
Отладка robots.txt
Если страница не индексируется, а должна:
- Проверить через валидатор Яндекс.Вебмастер
- Проверить на сайте (кеш браузера может показывать старую версию)
- Посмотреть в логах сервера, обращался ли YandexBot к странице
- Сравнить с эталонным robots.txt для вашей CMS
- Проверить meta robots (на уровне страницы)
Обновление robots.txt
При существенных изменениях robots.txt:
- Бэкап старой версии
- Внедрение новой
- Проверка через валидатор Вебмастера
- Мониторинг индекса в течение 2-4 недель
- Откат при проблемах
Практические примеры исправления
Реальные кейсы ошибок robots.txt и их решения:
Кейс 1: Сайт пропал из выдачи после редизайна
После переноса с тестового домена забыли обновить robots.txt. Disallow: / заблокировало всё. Решение: замена на боевой robots.txt + запрос переобхода в Вебмастере. Восстановление — 2 недели.
Кейс 2: Магазин потерял 40% трафика
Добавили Disallow: /*?sort= для закрытия сортировок. Но параметры пересеклись с фильтрами. Решение: заменили на Clean-param: sort /catalog/. Трафик вернулся за 3 недели.
Кейс 3: Яндекс не индексирует картинки
Disallow: /images/ закрыл папку с картинками. Они пропали из Яндекс.Картинок. Решение: Allow: /images/products/ для товарных картинок. Индексация восстановилась.
Интеграция robots.txt с разработкой
Правильная практика для разработчиков:
- robots.txt под контролем системы версий (Git)
- Разные файлы для dev/stage/production
- Проверка robots.txt при каждом деплое
- Автоматическая генерация Sitemap-директивы
- Документация изменений в CHANGELOG
- Мониторинг изменений через Яндекс.Вебмастер API
Многодоменные сайты
Если у вас несколько доменов (основной, мобильный, региональные):
- Каждый домен — свой robots.txt
- Sitemap указывается отдельно для каждого
- Общие поддомены могут иметь одинаковые правила
- Cross-domain canonical для дублей
Robots.txt и конкуренты
Изучение robots.txt конкурентов — полезная SEO-разведка. Можно узнать:
- Какие разделы они не индексируют
- Какие параметры у них лишние
- Как они группируют sitemap
- Есть ли у них скрытая структура URL
- Какие инструменты они используют (по путям к служебным разделам)
Мониторинг robots.txt
Изменения robots.txt критичны — нужен автоматический мониторинг:
- Git-hook при изменении файла — уведомление в Slack
- Проверка валидности после каждого деплоя
- Алерт при изменении размера (если вдруг очистился)
- Сверка с эталоном раз в день через cron
- Бэкапы последних 10 версий
Robots.txt для разработчиков
Типичный dev-environment должен быть полностью закрыт:
User-agent: *
Disallow: /
Если dev случайно открыт — Яндекс может проиндексировать тестовый контент и создать дубли основного сайта.
Расширенные техники работы с robots.txt
Продвинутые приёмы для опытных SEO-специалистов:
- Разные правила для разных User-agent — Googlebot может видеть больше, чем Яндекс, если так нужно
- Crawl-delay — контроль частоты сканирования (для серверов под нагрузкой)
- Host-директива — указание главного зеркала (устарело, но иногда работает)
- Noarchive / Nosnippet через meta robots в сочетании с robots.txt
Тестирование robots.txt перед публикацией
- Локальная проверка через валидатор Вебмастера
- Проверка на staging-окружении
- A/B тестирование на небольшой части сайта
- Мониторинг логов сервера — как ведут себя роботы
- Только после этого — на production
Эволюция robots.txt
Стандарт robots.txt существует с 1994 года, но продолжает развиваться:
- RFC 9309 (2022) — формальная стандартизация
- Расширенные директивы Яндекса (Clean-param, Crawl-delay)
- Интеграция с Sitemap-директивой
- Поддержка регулярных выражений
- Разные правила для разных User-agent
Что НЕ стоит делать с robots.txt
- Закрывать CSS/JS — Яндекс не сможет отрендерить страницу
- Закрывать картинки — пропадут из Яндекс.Картинок
- Использовать для безопасности — файл публичен
- Блокировать ВСЕ user-agent (кроме dev-среды)
- Забывать про Sitemap: директиву
Практическое применение — разбор реального robots.txt
Типичный плохой robots.txt интернет-магазина:
User-agent: *
Disallow: /
Результат: сайт выпал из выдачи, клиент потерял 80% трафика.
Правильный вариант для того же магазина:
User-agent: *
Disallow: /bitrix/
Disallow: /personal/
Disallow: /search/
Disallow: /*?action=
Allow: /bitrix/images/
Clean-param: utm_source&utm_medium&utm_campaign&sort /
Sitemap: https://site.ru/sitemap.xml
Результат: все товарные страницы индексируются, дубли параметров не загружают индекс, ссылка на sitemap ускоряет работу робота.
Настроим robots.txt правильно
Аудит текущего файла, анализ заблокированных URL, исправление ошибок. Типичный результат — +15-40% страниц в индексе за 1-2 месяца.
- Пакет «Старт» от 55 000 ₽/мес
- Пакет «Стандарт» 75 000 ₽/мес
- Пакет «Премиум» 95 000 ₽/мес
- Бесплатный аудит и прогноз
- Договор с гарантией результата
- Отчёты каждую неделю
Комментарии (17)
Геннадий
Классическая ошибка, на которой сам обжёгся: строчка Disallow: / уехала на прод и закрыла весь сайт от индексации. Хорошо, что заметил через два дня по падению в Вебмастере.
AdminSEO Мастер
Геннадий, знакомая беда — такое чаще всего утекает с тестового стенда. Возьмите за правило проверять robots.txt сразу после каждого деплоя и настройте оповещение в Яндекс Вебмастере о резком выпадении страниц. Это спасает от потери недель трафика.
Инна_М
Подскажите, в чём разница между Disallow в robots и мета-тегом noindex? Всегда путаюсь, что и когда применять.
AdminSEO Мастер
Инна, Disallow запрещает роботу заходить на страницу, но она всё равно может попасть в индекс без сниппета, если на неё есть ссылки. Мета noindex разрешает зайти и прочитать, но запрещает добавлять в поиск. Чтобы точно убрать из индекса — используйте noindex, а не Disallow.
pavel_online
Директиву Host уже сто лет как отменили, а до сих пор вижу её в robots у половины сайтов. Пора чистить рудименты.
Тамара
Спасибо за примеры под разные CMS, скопировала базовый шаблон почти без правок.
Виктор Л.
Использую Clean-param для отсечения меток и сортировок в интернет-магазине. Дубли ушли, краулинговый бюджет вздохнул свободнее.
Алиса_К
А зачем в robots вообще указывать Sitemap, если карту можно добавить в Вебмастере вручную?
AdminSEO Мастер
Алиса, директива Sitemap в robots.txt нужна, чтобы её нашли все поисковики, включая те, где вы карту вручную не добавляли. Это подстраховка и хороший тон. Плюс некоторые сторонние краулеры ориентируются именно на robots.
Егор
Не соглашусь с советом закрывать /wp-admin/ и прочую служебку — Google сам рекомендует не резать доступ к ресурсам, иначе он не отрендерит страницу корректно.
AdminSEO Мастер
Егор, тут нюанс: закрывать саму админку смысл есть, а вот CSS и JS блокировать действительно нельзя, иначе робот увидит поломанную вёрстку. В современном robots служебные скрипты и стили держим открытыми — вы правы по сути.
Милана
Полезно, что напомнили про регистрозависимость путей. У меня Disallow: /Catalog не сработал, потому что реальный путь был со строчной буквы.
roman_k
Проверяю каждый robots через инструмент анализа в Яндекс Вебмастере перед заливкой. Показывает, какие URL под запретом, экономит нервы.
Станислав
Robots.txt — это не про безопасность. Видел, как люди 'прячут' туда админку и папку с бэкапами, а по факту наоборот показывают их всем любопытным.
Жанна_П
Вопрос: если у меня поддомены, robots на основном домене на них распространяется?
AdminSEO Мастер
Жанна, нет — для каждого поддомена нужен свой отдельный robots.txt в его корне. Файл на основном домене регулирует только его. Это частая причина, почему поддомен неожиданно оказывается закрыт или, наоборот, открыт полностью.
Аркадий
Спасибо, статья снимает кучу вопросов от джунов. Отправил ссылку всей команде контента.
Вероника_С
Заметила, что пустой robots.txt или его отсутствие — не трагедия, сайт всё равно индексируется. Но лучше иметь хотя бы базовый с картой.
leonid_seo
Держите лайфхак: разные User-agent для Yandex и Googlebot иногда нужны, но не увлекайтесь. Чаще всего хватает секции для всех со звёздочкой.
Кирилл
У клиента robots отдавал 500-ю ошибку из-за кривого генератора в CMS. Робот при недоступном robots может временно вообще не ходить по сайту, так что следите за кодом ответа.
Ната_Ростов
А crawl-delay ещё кто-то использует? Или сервера уже везде тянут нагрузку без него?
Фёдор
Добавлю: после правок robots не ждите мгновенного эффекта, поисковик кэширует файл и перечитывает его не сразу. У меня изменения подхватились дня через три.