Логотип seo-prodvizhenie-biznesa.ru
+7 (921) 333-77-45

Как проверить robots.txt на сайте: пошагово и без сервисов

Как проверить robots.txt на сайте: пошагово и без сервисов
Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога seo-prodvizhenie-biznesa.ru о продвижении и доработке сайтов.

Проверить 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-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я 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 в файле реально уже ничего не значит? У нас она есть, подрядчик говорит не трогать.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх