
Проверить robots.txt на сайте можно за десять минут, без единого платного сервиса и без программиста — нужен браузер и бесплатный инструмент в панели вебмастера. Проверять стоит регулярно: файл переписывают плагины, его затирают при переносе на другой хостинг, а на сайте, доставшемся от прошлого подрядчика, там нередко лежит строчка, закрывающая от робота половину разделов. Ниже — где файл лежит, что означает каждая строка, какой инструмент показывает разбор глазами робота и какие семь ошибок встречаются чаще всего.
Если файл достался по наследству и трогать его страшно, посмотрите хотя бы содержимое: закрытый раздел каталога виден невооружённым глазом. За комплексной техникой есть продвижение сайта с технической поддержкой, но проверку файла стоит уметь делать самому — это базовая гигиена.
Где лежит файл и как его открыть
Файл всегда лежит в корне сайта и всегда доступен по одному и тому же адресу: добавьте к адресу своего сайта /robots.txt. Никуда заходить и ничего устанавливать не нужно — откройте адрес в браузере.
https://вашсайт.ру/robots.txt
Что вы можете увидеть и что это значит:
Открылся текст с директивами. Нормальная ситуация, переходите к разбору строк.
Открылась пустая страница. Файл есть, но он пустой. Технически это означает «всё разрешено», и сам по себе такой файл не вредит — но в нём не указана карта сайта, и служебные адреса открыты.
Ошибка 404. Файла нет. По требованиям Яндекса при обращении к robots.txt сервер должен возвращать код 200 OK; если файл не отвечает требованиям, сайт считается открытым для индексирования. То есть 404 — не катастрофа, но карту сайта роботу вы так не сообщите.
Ошибка 500 или бесконечная загрузка. Вот это плохо. Робот не может получить внятный ответ и обход сайта идёт непредсказуемо. Чинить нужно в первую очередь.
Открылся не текст, а страница сайта с дизайном. Значит, физического файла нет, а движок отдаёт на этот адрес обычную страницу. Робот получит HTML вместо правил и просто их не увидит.
Отдельно проверьте все версии адреса: с www и без, по http и по https. Бывает, что на www отдаётся один файл, а без www — другой, потому что когда-то на сервере лежали две копии сайта. Робот при этом видит два разных набора правил.
Разбор файла построчно
Файл читается сверху вниз и делится на секции. Секция начинается с обязательной директивы User-agent — она указывает, к каким роботам относятся следующие за ней правила. Дальше идут Disallow (запрет обхода раздела или страницы), Allow (исключение из запрета), Sitemap (адрес карты сайта) и Clean-param (параметры адреса, которые роботу нужно игнорировать).
Вот минимальный корректный файл для обычного сайта:
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /?s=
Allow: /wp-admin/admin-ajax.php
Sitemap: https://вашсайт.ру/sitemap.xml
Звёздочка в User-agent: * означает «для всех роботов». Можно написать отдельную секцию User-agent: Yandex — тогда робот Яндекса будет читать только её и полностью проигнорирует общую. Это важная деталь: если у вас есть секция для Yandex, всё, что написано под звёздочкой, для него не существует, и правила придётся дублировать.
Регистр в названиях директив роли не играет, а вот в путях играет: /Catalog/ и /catalog/ для робота разные адреса. Кириллица в файле запрещена: доменные имена записываются в Punycode, а пути — в URL-кодировке. Максимальный размер файла — 500 КБ.
| Строка в файле | Что она делает | Когда это ошибка |
|---|---|---|
User-agent: * |
Правила ниже относятся ко всем роботам | Ошибкой не бывает, но перестаёт действовать для Яндекса, если ниже есть секция User-agent: Yandex |
Disallow: / |
Запрет обхода всего сайта | Почти всегда: так закрывают сайт на время разработки и забывают открыть |
Disallow: (пусто) |
Ничего не запрещает, равносильно разрешению | Не ошибка, но часто следствие опечатки — хотели закрыть раздел и стёрли путь |
Allow: / |
Явное разрешение обхода | Строка бессмысленна, если выше нет запретов |
Disallow: /wp-content/ |
Запрет всей папки с темой, плагинами и загрузками | Почти всегда: закрывает стили, скрипты и картинки |
Disallow: *.css |
Запрет обхода таблиц стилей | Всегда: робот использует стили, чтобы видеть страницу как браузер |
Disallow: /catalog/ |
Запрет обхода каталога | Если каталог продающий — критическая ошибка |
Disallow: *? |
Запрет всех адресов с параметрами | Часто: под запрет попадают пагинация, фильтры и поиск, которые нужны |
Sitemap: /sitemap.xml |
Указание на карту сайта относительным путём | Всегда: адрес карты пишется полностью, с протоколом и доменом |
| Строки Sitemap нет вообще | Роботу неоткуда узнать адрес карты из файла | Не фатально, если карта добавлена в панели вебмастера, но лучше указать |
Clean-param: utm_source&utm_medium |
Робот игнорирует эти параметры и склеивает адреса | Ошибка, если в правиле больше 500 символов — оно не сработает |
Host: вашсайт.ру |
Устаревшая директива главного зеркала | Не работает: главное зеркало задаётся постраничным 301-редиректом |
Инструмент анализа robots.txt в Вебмастере
Глазами файл читать полезно, но робот читает его по своим правилам, и результат иногда расходится с ожиданиями. Для этого в Яндекс Вебмастере есть бесплатный инструмент анализа robots.txt.
Работает он так. Если сайт добавлен и подтверждён в панели, содержимое файла подтягивается автоматически — остаётся нажать кнопку проверки. Если сайт в панель не добавлен, инструмент доступен и так: на странице анализа указываете адрес проверяемого сайта. Инструмент разбирает секции, предназначенные для робота Яндекса, — то есть User-agent: Yandex и User-agent: * — и проверяет директивы по правилам использования robots.txt.
Что вы получаете на выходе. Первое — список распознанных правил: видно, какие строки робот вообще прочитал, а какие пропустил как непонятные. Второе — предупреждения. Они сообщают либо об отклонении от правил, которое инструмент может исправить сам, либо указывают на возможную проблему из-за опечатки или неточности в написании правила. Третье, и самое ценное для практики, — проверка конкретных адресов: вставляете список страниц и видите по каждой, разрешена она или запрещена, и какой именно строкой файла запрещена.
Этот третий пункт закрывает главный практический вопрос — «а не закрыл ли я случайно нужную страницу». Просто по глазам это почти невозможно определить, если в файле полтора десятка правил со звёздочками.
Clean-param: то, чего нет у других поисковиков
Директива Clean-param — особенность Яндекса. Она говорит роботу: вот эти параметры в адресе не влияют на содержимое, игнорируй их и считай такие адреса одной страницей.
Синтаксис из справки по Clean-param выглядит так: сначала перечисляются параметры через знак &, затем через пробел — префикс пути, к которому правило применяется. Префикс необязателен; если его не указать, правило действует на весь сайт.
Clean-param: utm_source&utm_medium&utm_campaign
Clean-param: sort&order /catalog/
Два ограничения из справки, которые надо знать. Первое: длина одного правила — не более 500 символов, длинный список параметров придётся разбить на несколько строк. Второе: директива межсекционная, то есть её можно указать в любом месте файла, независимо от секций User-agent.
И главное, ради чего её вообще применяют: справка рекомендует Clean-param вместо Disallow для адресов с незначащими параметрами, потому что эта директива позволяет передавать основному адресу или сайту некоторые накопленные показатели. Закрыв те же адреса через Disallow, вы эти показатели просто потеряете. Подробное сравнение с соседними инструментами есть в разборе Clean-param, canonical и 301.
Семь ошибок, которые встречаются чаще всего
Сайт закрыт целиком. Строка Disallow: / под общей секцией. Обычно это забытый запрет со времён разработки. Последствия тянутся месяцами — в блоге есть отдельный разбор того, как одна строчка в robots.txt убирает сайт из Яндекса на полгода.
Закрыта папка со всем содержимым темы. Классика — Disallow: /wp-content/. Под запрет попадают файлы стилей, скрипты и папка с загруженными изображениями. Робот перестаёт видеть страницу такой, какой её видит посетитель, а картинки исчезают из поиска по изображениям.
Закрыты стили и скрипты отдельными масками. Строки вида Disallow: *.css и Disallow: *.js кочуют из старых шаблонных файлов. Яндекс сообщал, что робот использует эти файлы при обходе, чтобы получать больше данных о странице, и просил владельцев открыть их.
Нет строки Sitemap. Не фатально, но это самый простой способ сообщить адрес карты всем роботам сразу, и он бесплатный.
Разные файлы на www и без www. Следствие того, что на сервере живут две копии сайта или два виртуальных хоста. Робот видит два набора правил и применяет их к разным адресам.
Файл отдаёт 500. Сервер не может отдать файл — обычно из-за ошибки в конфигурации или перегрузки. Симптом лечится не в robots.txt, а на хостинге.
Секция для Yandex ниже общей, и в ней забыты правила. Самая коварная ошибка. Человек дописывает User-agent: Yandex с одной строкой Clean-param, и робот Яндекса начинает читать только эту секцию — все запреты из общей перестают для него действовать.
Проверка за десять минут: порядок действий
Перед любой правкой файла сохраните его текущую копию — просто скопируйте содержимое в текстовый документ на компьютере. Откатиться потом будет вопросом одной минуты.
| Шаг | Что сделать | Что должно получиться |
|---|---|---|
| 1 | Открыть адрес /robots.txt в браузере | Открывается простой текст, а не страница сайта и не ошибка |
| 2 | Открыть тот же адрес с www и без www, по http и https | Во всех вариантах одно и то же содержимое |
| 3 | Найти в тексте строку Disallow с одиночным слешем | Такой строки нет ни в одной секции |
| 4 | Проверить, нет ли запретов на css, js и папку с загрузками | Стили, скрипты и картинки открыты |
| 5 | Найти строку Sitemap и открыть указанный в ней адрес | Карта открывается, адрес написан полностью с протоколом |
| 6 | Проверить, есть ли отдельная секция User-agent: Yandex | Если есть — в ней продублированы все нужные запреты |
| 7 | Прогнать файл через инструмент анализа robots.txt | Нет предупреждений, все строки распознаны |
| 8 | Вставить в инструмент 10–15 важных адресов сайта | Все они помечены как разрешённые |
| 9 | Вставить туда же адреса, которые должны быть закрыты | Они помечены как запрещённые, с указанием строки |
| 10 | Посмотреть раздел индексирования в панели вебмастера | Нет массовых исключений со статусом запрета в robots.txt |
Последний пункт — контрольный. Даже безупречный на вид файл может оказаться вредным, и увидеть это можно только по фактическому состоянию индекса. Как читать эти отчёты, разобрано в материале про три отчёта Вебмастера.
Особенность WordPress: файла может не быть физически
На WordPress есть неочевидный момент. Если физического файла robots.txt в корне сайта нет, движок отдаёт виртуальный — собирает его на лету при каждом обращении. Стандартное содержимое короткое: запрет на служебную папку админки, разрешение на один её скрипт и строка с адресом встроенной карты сайта.
Как только вы создаёте настоящий файл robots.txt и кладёте его в корень, виртуальный перестаёт работать целиком. Всё, что в нём было, включая строку с картой сайта, нужно прописать в физическом файле руками — иначе вы молча потеряете указание на карту.
Отсюда практический вывод при проверке: если вы правите файл через плагин, а изменения не появляются, почти наверняка в корне лежит физический файл, который перебивает всё, что делает плагин. Зайдите на хостинг файловым менеджером и посмотрите. Рабочий вариант содержимого для этого движка разобран отдельно — robots.txt для WordPress.
Когда проверки файла недостаточно
Файл robots.txt управляет обходом. Он не управляет тем, что показывается в поиске, и не чинит проблемы, лежащие в другой плоскости. Вот ситуации, где чистый robots.txt ничего не решит.
Страница закрыта в файле, но висит в выдаче. Справка Яндекса прямо предупреждает: если страница запрещена в robots.txt, но на неё ведут ссылки с других сайтов, она может попасть в результаты поиска. Запрет обхода и запрет показа — разные инструменты, второй делается метатегом на самой странице.
Дубли не уходят после закрытия. Если адреса уже в индексе, Disallow не выкинет их оттуда — он только запретит роботу туда ходить, а значит, робот и не увидит ваших новых указаний.
Сайт на конструкторе. Многие платформы не дают редактировать этот файл вообще либо дают ограниченный набор переключателей. Проверять там нечего, остаётся работать с тем, что даёт панель.
В файле всё идеально, а страницы всё равно не индексируются. Тогда причина в другом: медленный ответ сервера, отсутствие внутренних ссылок, метатег в коде, канонический адрес на другую страницу. Если непонятно, с чего начинать, есть бесплатный аудит сайта — по его результатам видно, в файле проблема или нет.
Частые вопросы
Как часто проверять robots.txt
Раз в квартал на спокойном сайте и обязательно после четырёх событий: обновления движка, установки или удаления плагина оптимизации, переноса на другой хостинг, любых работ подрядчика с сервером. Именно в эти моменты файл чаще всего меняется без вашего ведома.
Можно ли обойтись без файла совсем
Формально да: при отсутствии файла сайт считается открытым для индексирования. Но тогда вы теряете единственное место, где можно указать адрес карты сайта для всех роботов сразу, и не можете запретить обход служебных разделов.
Инструмент показывает страницу как разрешённую, а в индексе её нет
Значит, дело не в этом файле. Проверьте метатег robots в коде страницы, канонический адрес, код ответа сервера и наличие хотя бы одной внутренней ссылки на страницу. Разрешение в robots.txt означает только то, что роботу можно зайти, а не то, что он обязан показать страницу в поиске.
Нужна ли отдельная секция для робота Яндекса
В большинстве случаев нет, общей секции со звёздочкой достаточно. Отдельная секция нужна, только если вы задаёте для Яндекса правила, отличные от общих. И тогда помните: робот читает только свою секцию, поэтому все запреты в ней придётся продублировать.
Коротко
Файл открывается по адресу вашсайт.ру/robots.txt в любом браузере. Проверьте все четыре версии адреса — с www и без, по http и https. Сервер должен отдавать простой текст с кодом 200, а не страницу сайта и не ошибку.
Опаснее всего четыре вещи: Disallow: / под общей секцией, закрытая папка с темой и загрузками, запреты на файлы стилей и скриптов и отдельная секция для Яндекса, в которой забыли продублировать общие запреты.
Инструмент анализа robots.txt в Вебмастере разбирает файл по правилам Яндекса, показывает предупреждения об опечатках и — самое полезное — проверяет конкретные адреса: разрешён каждый или запрещён и какой строкой. Прогоняйте через него и нужные страницы, и те, что должны быть закрыты.
Clean-param — директива именно Яндекса. Она межсекционная, лимит на длину одного правила 500 символов, и справка рекомендует её вместо Disallow для адресов с незначащими параметрами, потому что так основному адресу передаются накопленные показатели.
На WordPress файл может существовать только виртуально. Создали физический — виртуальный перестал работать, и строку с картой сайта нужно прописать заново. Перед любой правкой сохраните копию текущего содержимого.
Правильный robots.txt не приводит посетителей — он лишь убирает препятствия на их пути. Реклама даёт трафик ровно до последнего оплаченного клика; позиции в поиске остаются активом сайта и продолжают работать, когда кабинет выключен. Разумная стратегия — держать оба канала и постепенно наращивать долю бесплатного, чтобы не зависеть от одного аукциона. Если после проверки файла непонятно, почему страницы всё ещё не в поиске, разберём это на консультации по продвижению — с конкретным списком действий на выходе.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Комментарии
Максим
Открыл свой robots.txt — а там страница сайта с шапкой и меню, как обычная. Плагин при этом показывает, что файл настроен и в нём десяток правил. Куда смотреть?
Анатолий Кузнецов автор
Смотреть на хостинг, в корневую папку сайта. Ситуация типичная: где-то в настройках движка или темы создана обычная страница с ярлыком robots.txt, и движок отдаёт её вместо файла. Второй вариант — правило в .htaccess, которое перехватывает этот адрес. Проверьте оба места. Плагин при этом честно хранит свои правила у себя в базе, просто до робота они не доезжают: он получает HTML-код страницы и не находит в нём ни одной директивы. Пока не почините, считайте, что файла у вас нет вообще.
Лариса
Спасибо, таблица со строками очень наглядная. У нас в файле нашлась строчка Disallow: *? — это тот случай, когда под запрет попадает лишнее?
Анатолий Кузнецов автор
Почти наверняка да. Эта строка запрещает обход любого адреса со знаком вопроса, то есть вообще всех страниц с параметрами. Под неё попадают пагинация, если она сделана через параметр, фильтры каталога, сортировки и внутренний поиск. Проверяется за минуту: возьмите десяток реальных адресов с параметрами со своего сайта и прогоните через инструмент анализа — он покажет, какой именно строкой каждый из них запрещён. Если среди запрещённых окажутся нужные разделы, строку надо заменить точечными правилами, а параметры-мусор закрыть через Clean-param.
Евгений П.
Не вижу смысла в этой проверке вообще. Поисковик давно научился сам разбираться, что ему нужно, а что нет. Все эти файлы — наследие двухтысячных, сейчас они почти ни на что не влияют.
Анатолий Кузнецов автор
Влияние действительно сместилось: раньше файлом пытались управлять выдачей, сейчас он управляет только обходом. Но обход — это не мелочь. Строчка с одиночным слешем закрывает сайт полностью, и никакой ум поисковика этого не обойдёт: робот просто не придёт. Такие файлы я нахожу на сайтах регулярно, и не у новичков, а у компаний с подрядчиком и бюджетом. Проверка стоит десять минут раз в квартал. Даже если в девяти случаях из десяти вы ничего не найдёте, десятый окупает все предыдущие.
Зоя
А правда, что если в файле есть секция для Яндекса, то общая секция для него вообще не работает?
Илья
Зоя, правда, сам обжёгся. Добавил секцию с одной строкой Clean-param и через месяц обнаружил в индексе всё, что было закрыто в общей. Пришлось переписывать файл и дублировать все запреты.
Ксения
Подскажите, у нас на www и без www реально разное содержимое файла. Как правильно привести к одному, чтобы ничего не сломать?
Анатолий Кузнецов автор
Приводить к одному файлу не нужно — нужно сделать так, чтобы у сайта осталась одна рабочая версия адреса. Решите, какая из них основная, и настройте с неосновной постраничный 301-редирект на основную. Тогда обращение к robots.txt на второстепенной версии тоже уедет редиректом, и вопрос двух файлов снимется сам. Перед правкой обязательно сохраните копию .htaccess или попросите хостинг сделать снимок конфигурации. И проверьте потом коды ответа: должен быть ровно один переход, а не цепочка из двух-трёх.
Антон
Уточню по инструменту: он проверяет не только загруженный из сайта файл, но и текст, вставленный вручную. Удобно проверять правки до того, как выкладывать их на боевой сайт.
Ирина
У меня файл отдаёт 404. Хостинг говорит, что это нормально и ничего делать не нужно. Кто прав?
Григорий
Ирина, формально хостинг не врёт — при отсутствии файла сайт считается открытым, робот обходит всё подряд. Но адрес карты сайта вы так роботу не сообщите, и запреты дописывать будет некуда. Файл из четырёх строк делается за минуту, проще сделать, чем спорить. Я сам вчера проверил свой по чеклисту и нашёл Disallow на папку с загрузками: картинок в поиске не было никогда, а я думал, так и должно быть.
Даниил
Вопрос про Clean-param. У нас параметров много, список в одну строку точно не влезет в 500 символов. Разбивать на несколько строк Clean-param — это нормально или надо как-то иначе?
Анатолий Кузнецов автор
Нормально, разбивайте. Ограничение в 500 символов действует на длину одного правила, а количество самих правил не ограничено. Удобнее всего группировать по смыслу: отдельная строка под метки рекламных кампаний, отдельная — под сортировки каталога с префиксом пути, отдельная — под служебные параметры сессий. Заодно файл останется читаемым, и через год вы поймёте, зачем каждая строка. И помните про межсекционность: эти строки можно ставить в любом месте файла, они не привязаны к секции User-agent.
Валентин
Добавлю практику: после правки файла стоит отправить на переобход сам адрес robots.txt. Иначе робот может ещё неделю работать по старой версии, и вы будете думать, что правка не сработала.
Людмила
Скажите, а строка Host в файле реально уже ничего не значит? У нас она есть, подрядчик говорит не трогать.