
Файл robots.txt — четыре килобайта текста, которые способны выключить сайт из поиска целиком. Я видел это не раз: разработчик выкатывает обновление с тестового сервера, где стоял запрет обхода, и через неделю владелец бизнеса не понимает, куда делся трафик. При этом сам файл устроен просто, а большая часть ошибок в нём происходит от неверного представления о том, что он вообще делает. Разберём по порядку: синтаксис, что закрывать, чего закрывать нельзя, и чем запрет обхода принципиально отличается от запрета индексации.
Что robots.txt делает и чего он не делает
robots.txt лежит в корне домена и содержит рекомендации для поисковых роботов о том, какие адреса не нужно обходить. Ключевое слово — обходить. Файл управляет доступом краулера к странице, а не присутствием страницы в выдаче.
Разница не теоретическая. Если на закрытую в robots.txt страницу ведут внешние ссылки, поисковик может добавить её в индекс, зная только адрес и текст ссылок. Получится страница в выдаче без описания, с заглушкой вместо сниппета — то есть ровно то, чего вы пытались избежать, но ещё и в некрасивом виде.
Второй важный момент: файл распространяется только на свой домен и протокол. У каждого поддомена свой robots.txt, и запрет на основном сайте на них не действует.
Синтаксис директив
Файл состоит из блоков. Блок начинается с указания робота и содержит правила для него. Пустая строка разделяет блоки, всё после решётки — комментарий.
| Директива | Назначение | Пример значения |
|---|---|---|
User-agent |
Кому адресован блок правил | *, Yandex, Googlebot |
Disallow |
Запрет обхода адресов по маске | /admin/ |
Allow |
Исключение из запрета | /admin/public/ |
Sitemap |
Абсолютный адрес карты сайта | полный адрес с протоколом |
Clean-param |
Незначащие параметры (только Яндекс) | utm_source&sort /catalog/ |
Правила работы с масками: * заменяет любую последовательность символов, $ обозначает конец адреса. Запись Disallow: /search закроет и /search, и /search-results/, и /searchengine.html — потому что совпадение идёт по началу строки. Если нужен именно раздел, пишите со слешем: Disallow: /search/. Если нужна ровно одна страница — используйте $.
Пустое значение Disallow: означает «не запрещено ничего». Строка Disallow: / закрывает весь сайт. Разница между ними — один символ, и цена ошибки максимальная.
При конфликте правил применяется более длинное и конкретное, а не то, что стоит выше. То есть Allow: /catalog/shoes/ перекроет Disallow: /catalog/ для обуви. Опираться на порядок строк не нужно — опирайтесь на длину маски.
Ещё одна тонкость: робот выбирает ровно один блок — самый подходящий для себя — и остальные игнорирует. Это регулярно ломает логику: люди пишут общие правила в блок User-agent: *, затем добавляют блок для конкретного поисковика с одной строкой, и этот поисковик начинает жить по одной строке, забыв про все общие правила.
Отсюда практический вывод: если вы создаёте отдельный блок для робота, дублируйте в нём все нужные правила целиком. Или, что проще и надёжнее, обходитесь одним универсальным блоком, пока не появилась реальная причина их разделять.
Что закрывать имеет смысл
| Категория | Примеры | Зачем |
|---|---|---|
| Служебные разделы | Панель управления, системные каталоги | Не нужны в поиске, тратят бюджет обхода |
| Личные кабинеты | Профиль, история заказов | Персональные данные, бесконечная генерация |
| Процесс покупки | Корзина, оформление, сравнение | Страницы бесполезны вне сессии пользователя |
| Внутренний поиск | Страницы результатов поиска по сайту | Плодят бесконечные низкокачественные адреса |
| Технические файлы | Скрипты обработки форм, экспорт | Не являются страницами |
| Мусорные параметры | Метки рекламных кампаний, сессии | Создают дубли основной страницы |
Хороший ориентир: закрывайте то, что не может быть точкой входа из поиска в принципе. Если страница теоретически может кому-то пригодиться как результат выдачи — не закрывайте её, а решайте вопрос иначе.
Чего закрывать нельзя
- Стили и скрипты оформления. Робот рендерит страницу так же, как браузер. Закрыв каталоги с оформлением, вы показываете ему разломанную вёрстку, и оценка мобильной пригодности летит следом.
- Изображения товаров и статей. Они дают трафик из поиска по картинкам и участвуют в оценке страницы.
- Страницы с каноникалом или noindex. Чтобы увидеть эти указания, робот должен прочитать страницу. Запрет обхода делает их невидимыми, и указания не сработают.
- Страницы пагинации целиком. Через них робот доходит до карточек. Закрыв пагинацию, вы отрезаете часть каталога от обхода.
- Разделы, на которые ведут внешние ссылки. Закрытие не убирает их из выдачи, а лишает нормального сниппета.
- Карту сайта. Звучит абсурдно, но встречается: маска
Disallow: /*.xmlзакрывает и её.
Clean-param и Sitemap
Директива Clean-param — специфика Яндекса и хороший инструмент против дублей по параметрам. Она сообщает, что определённые параметры не меняют содержимое страницы, поэтому адреса с ними и без них — одна и та же страница. Робот сводит их к чистому адресу и не тратит обход на копии.
Синтаксис: перечень параметров через амперсанд, затем через пробел префикс адресов, к которым правило применяется. Второй аргумент необязателен — без него правило действует на весь сайт. Это принципиально удобнее, чем Disallow с маской параметра: при запрете обхода вес ссылок на такие адреса теряется, а при склейке через Clean-param он передаётся основной странице.
Sitemap указывается абсолютным адресом и не привязан к блокам роботов: её достаточно написать один раз в любом месте файла. Карт может быть несколько, если у вас индексный файл или разделение по типам контента.
robots.txt против noindex: когда что применять
| Задача | Правильный инструмент | Почему |
|---|---|---|
| Убрать страницу из выдачи | Метатег noindex, страница открыта для обхода | Робот должен прочитать указание |
| Сэкономить бюджет обхода | Disallow в robots.txt | Робот не тратит запросы на эти адреса |
| Склеить дубли по параметрам | Clean-param или каноникал | Сохраняется накопленный вес |
| Закрыть конфиденциальный раздел | Авторизация на сервере | robots.txt публичен и ничего не защищает |
| Убрать страницу навсегда | Удаление с кодом 404 или 410 | Однозначный сигнал поисковику |
Частая ошибочная связка: страницу закрывают в robots.txt и одновременно вешают noindex, надеясь на надёжность. Работает наоборот — робот не обходит страницу, не видит noindex, и страница может остаться в выдаче. Если нужно убрать из индекса, сначала откройте обход, дождитесь выпадения, и только потом при желании закрывайте.
Типичные ошибки
- Файл с тестового сервера в продакшене. Строка
Disallow: /уезжает вместе с релизом. Проверка robots.txt должна быть обязательным пунктом после каждого выката. - Кириллица в адресах без кодирования. Адреса в файле пишутся в процентном кодировании, домен в директиве Sitemap — в punycode.
- Неверное расположение. Файл читается только по адресу
/robots.txtв корне домена. Ни в подкаталоге, ни под другим именем он не работает. - Отдаётся не текст. Файл должен отдаваться с кодом 200 и типом обычного текста. Если сервер возвращает HTML-страницу с ошибкой, поведение робота непредсказуемо.
- Слишком длинные и сложные маски. Чем изощрённее регулярное выражение, тем выше шанс закрыть лишнее. Простые правила надёжнее.
- Забытые правила. Раздел давно переименован, а запрет остался и теперь закрывает что-то другое.
Как проверить файл
Проверка состоит из трёх частей, и пропускать ни одну нельзя.
Синтаксис. В панелях вебмастеров обоих основных поисковиков есть инструмент анализа robots.txt: он подсвечивает нераспознанные директивы и опечатки.
Поведение на конкретных адресах. Возьмите список: главная, раздел каталога, карточка товара, страница статьи, файл стилей, изображение, страница фильтра, корзина. Прогоните каждый адрес через инструмент проверки и убедитесь, что результат совпадает с задуманным. Это занимает десять минут и снимает большинство рисков.
Результат в индексе. Через две-три недели после изменений посмотрите в панели вебмастера раздел исключённых страниц. Если там появились нужные страницы со статусом запрета в robots.txt — правило задело лишнее.
Этот же порядок я включаю в любой аудит сайта: сначала синтаксис, потом поведение на выборке адресов, потом фактический результат в индексе.
Чего делать не стоит
- Копировать чужой robots.txt. Структура адресов у каждого сайта своя, и чужие маски закроют у вас не то.
- Прятать в файле конфиденциальные пути. Файл открыт для всех, и вы просто публикуете карту служебных разделов.
- Закрывать разделы, которые «пока не готовы». Лучше не публиковать их вовсе или закрыть авторизацией.
- Править файл напрямую на боевом сайте без резервной копии предыдущей версии.
- Использовать директивы, которые перестали поддерживаться. Управление частотой обхода и указание главного зеркала давно решаются другими средствами.
- Считать, что запрет обхода мгновенно убирает страницы из выдачи. Процесс занимает недели.
Частые вопросы
Нужен ли robots.txt небольшому сайту? Формально можно обойтись без него — отсутствие файла означает, что обход разрешён везде. Но лучше иметь хотя бы минимальный вариант со ссылкой на карту сайта: это помогает роботу быстрее найти все страницы.
Как быстро поисковик увидит изменения? Файл перечитывается регулярно, обычно в пределах суток. А вот последствия — выпадение или возврат страниц — проявляются в течение недель, потому что зависят от расписания обхода.
Можно ли закрыть сайт от всех, кроме поисковиков? robots.txt соблюдают только добросовестные роботы. Парсеры и сомнительные краулеры его игнорируют. Реальные ограничения ставятся на уровне сервера, а не текстового файла.
Что делать с UTM-метками? Для Яндекса корректнее Clean-param, для остальных — каноникал на чистый адрес. Массовый запрет через Disallow с маской параметра работает грубее и теряет ссылочный вес.
Кто должен отвечать за этот файл? Правила формулирует SEO-специалист, вносит изменения тот, кто отвечает за сервер. Если вы разбираетесь сами, начните с обучения SEO на своём же сайте — robots.txt хорошая тренировочная задача, но перед выкатом изменения лучше показать специалисту.
Чеклист
- Файл доступен по адресу в корне домена и отдаёт код 200 в виде обычного текста.
- Отдельный robots.txt существует для каждого поддомена, включая тестовые.
- Строки
Disallow: /на боевом сайте нет. - Служебные разделы, корзина, личный кабинет и внутренний поиск закрыты.
- Стили, скрипты и изображения открыты для обхода.
- Страницы с каноникалом и noindex не заблокированы.
- Пагинация и разделы каталога доступны роботу.
- Директива Sitemap указывает на актуальный абсолютный адрес.
- Для Яндекса настроен Clean-param по мусорным параметрам.
- Каждое правило прогнано через инструмент проверки на выборке реальных адресов.
- Проверка файла включена в регламент после каждого релиза.
robots.txt не продвигает сайт — он всего лишь распределяет внимание робота. Но именно поэтому ошибка в нём обходится дороже, чем неудачный заголовок или слабый текст: неправильная строка не ухудшает результат, а обнуляет его.
Если нужно продвижение сайтов от Анатолия Кузнецова — помогу вывести сайт в топ Яндекса и удержать позиции.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Забрала правила: не закрывать CSS и JS, указывать Sitemap, использовать Clean-param для параметров, для надёжного исключения — noindex, а не robots, и всегда проверять в валидаторе. Спасибо за конкретику.
Именно в Вебмастере: отчёт по страницам, исключённым из-за robots, плюс инструмент проверки конкретного URL — доступен он роботу или закрыт. Так видно и лишние запреты, и случайно закрытое нужное.
А как понять, что robots настроен правильно, кроме валидатора? Смотреть в Вебмастере, какие страницы исключены из-за запрета в robots? Или есть ещё способы проверить?
Милана, в Вебмастере есть отчёт по страницам, исключённым из-за запрета в robots, плюс инструмент проверки конкретного URL — доступен он роботу или закрыт. Так видно и лишние запреты, и случайно закрытое нужное. Плюс валидатор robots. Этих инструментов достаточно, чтобы убедиться, что файл настроен верно.
Совет: держите robots минималистичным и осмысленным. Закрывайте только служебное — админку, корзину, внутренний поиск, технические дубли. Не превращайте файл в свалку правил, в которой сами потом не разберётесь.
Спасибо, robots всегда казался мелочью, а тут оказывается — один символ и полсайта из индекса. Пойду проверю свой в Вебмастере и уберу лишние Disallow, накопившиеся за годы.
А боты нейросетей и AI-краулеры — их пускать или блокировать в robots? Сейчас это отдельная дилемма: и в AI-выдаче хочется быть, и контент отдавать не всем.
Проверяю robots после каждого переезда и обновления CMS. Однажды после смены хостинга подтянулся дефолтный robots, закрывавший весь сайт. Хорошо, заметили по падению индексации через Вебмастер.
Отдельная секция User-agent: Yandex имеет смысл, если для Яндекса и Google нужны разные правила. Но чаще хватает общей секции. Не усложняйте без необходимости, чем проще robots, тем меньше шансов ошибиться.
У нас в robots были правила ещё от старого движка, закрывавшие нужные разделы. Никто годами не смотрел. Почистили — часть страниц вернулась в индекс. Проверьте свой файл, вдруг там наследие.
Clean-param — мощная штука именно для Яндекса, отсекает параметры вроде utm и сессий, экономит краулинговый бюджет. Канониклы и Clean-param не взаимоисключают, а дополняют друг друга. Я использую оба.
А директива Clean-param для Яндекса реально помогает с дублями от utm и фильтров? Или проще канониклами разруливать? Запуталась, когда что применять.
Ксения, Clean-param — мощная штука именно для Яндекса, отсекает параметры вроде utm и сессий и экономит краулинговый бюджет. Она не взаимоисключает с канониклами, а дополняет: канониклы разруливают дубли для индекса, Clean-param — для обхода. Я использую оба, каждый на своём месте.
Обязательно указывайте директиву Sitemap в robots — путь к карте сайта. Мелочь, а помогает роботу быстрее находить страницы. Многие забывают эту строку, а она бесплатно ускоряет индексацию.
Частая ошибка — закрыть в robots папку со скриптами и стилями. Тогда робот не может отрендерить страницу и оценивает её как кривую. CSS и JS закрывать нельзя, это бьёт по ранжированию.
Ключевой нюанс: robots запрещает обход, но не гарантирует отсутствие в индексе. Если на страницу есть ссылки, она может попасть в поиск даже под Disallow. Для надёжного исключения — meta noindex, а не только robots.
А что вообще нужно закрывать в robots? Админку, корзину, поиск по сайту? И правда ли, что закрывать через robots от индексации ненадёжно и лучше noindex?
Алина, закрывайте служебное: админку, корзину, внутренний поиск, технические дубли с параметрами. И да, robots запрещает обход, но не гарантирует отсутствие в индексе — если на страницу есть ссылки, она может попасть в поиск. Для надёжного исключения используйте meta noindex, а не только robots.
robots.txt — файл, где легко наломать дров одной строкой. Видел, как случайный Disallow: / закрывал весь сайт от индексации и трафик обнулялся. Первое правило: после любой правки проверять файл в валидаторе Вебмастера.