- html5css.dev
- SEO
- SEO продвижение
- Техническая оптимизация
- Ошибки в robots.txt
Ошибки в robots.txt
Главное недоразумение вокруг robots.txt: он управляет обходом, а не индексом. Из этого следуют почти все ошибки — разбираем их и правильный минимум для сайта.
Host и Crawl-delay.
Обе больше не поддерживаются: главное зеркало определяется редиректами
и canonical, а скорость обхода — настройками в панелях
вебмастеров и реальной скоростью ответа сервера.
Что robots.txt делает и чего не делает
| Делает | Не делает |
|---|---|
| Запрещает загружать указанные адреса | Не убирает страницу из индекса |
| Экономит бюджет обхода | Не защищает содержимое — файл публичен |
| Указывает путь к sitemap | Не влияет на ранжирование напрямую |
| Разграничивает правила по user-agent | Не гарантирует соблюдения недобросовестными ботами |
noindex, робот должен
её загрузить и прочитать мета-тег. Если адрес закрыт в
robots.txt, робот этого не сделает — и страница может
остаться в выдаче с пометкой, что описание недоступно.
Правильный порядок для скрытия страницы
- Поставить
<meta name="robots" content="noindex">или заголовокX-Robots-Tag: noindex. - Оставить адрес открытым в
robots.txt. - Дождаться, пока страница пропадёт из индекса — обычно недели.
- Только после этого, если нужно экономить бюджет обхода, закрыть адрес директивой
Disallow.
Типичные ошибки
| Ошибка | Последствие |
|---|---|
Disallow: / на боевом сайте | Сайт выпадает из выдачи. Обычно едет с тестового сервера при релизе |
Закрыты /css/, /js/, изображения | Робот видит неотрисованную страницу |
Disallow вместо noindex | Страница остаётся в индексе без описания |
| Файл отдаёт 404 или 5xx | Часть роботов трактует как ошибку; при 5xx обход может приостановиться |
| Файл не в корне | Не учитывается: только /robots.txt |
| Директивы для несуществующих ботов | Мёртвый код, вводит в заблуждение |
Забыт Sitemap | Упущенная возможность подсказать карту сайта |
Правила для * раньше конкретного бота | Конкретный бот читает только свой блок и игнорирует общий |
Как читаются правила
Робот выбирает один блок — наиболее подходящий для своего user-agent — и применяет только его. Остальные блоки игнорируются целиком.
User-agent: Googlebot
Disallow: /search/
User-agent: *
Disallow: /search/
Disallow: /cart/
В этом примере Googlebot прочитает только первый блок и не закроет
/cart/. Общие правила нужно повторять в каждом блоке.
Приоритет Allow и Disallow
Disallow: /catalog/
Allow: /catalog/smesiteli/
Побеждает более длинное правило, поэтому /catalog/smesiteli/
останется открытым, а остальной каталог — закрытым. Порядок строк значения
не имеет.
Спецсимволы
| Символ | Значение | Пример |
|---|---|---|
* | Любая последовательность | Disallow: /*?sort= |
$ | Конец адреса | Disallow: /*.pdf$ |
# | Комментарий | # служебные разделы |
Рабочий минимум
User-agent: *
Allow: /
# служебное, что не должно тратить бюджет обхода
Disallow: /search/
Disallow: /*?q=
Disallow: /cart/
Disallow: /checkout/
Disallow: /*?sort=
Disallow: /*?utm_
# ресурсы для отрисовки — открыты
Allow: /assets/
Allow: /*.css$
Allow: /*.js$
Sitemap: https://site.ru/sitemap.xml
Всё, что действительно требует скрытия (личные кабинеты, админка, тестовые контуры), закрывается авторизацией, а не строкой в публичном файле.
Проверка
- Открыть
https://site.ru/robots.txtв браузере — код 200, кодировка UTF-8, обычный текст. - Search Console → Настройки → robots.txt: какой файл видит Google и когда обращался.
- Яндекс.Вебмастер → Инструменты → Анализ robots.txt: проверка конкретных адресов.
- Search Console → Проверка URL: не заблокированы ли ресурсы для отрисовки.
- После каждого релиза — убедиться, что
Disallow: /не приехал с тестового сервера.
# быстрая проверка после деплоя
curl -s https://site.ru/robots.txt | grep -E '^Disallow: /$' && echo 'ВНИМАНИЕ: сайт закрыт целиком'
Итог
robots.txt управляет обходом, а не индексом. Держите его минимальным, никогда
не закрывайте CSS и JS, не используйте его вместо noindex, повторяйте
общие правила в каждом блоке user-agent и проверяйте файл после каждого релиза.
Дальше — ошибки в sitemap.xml.
Частые вопросы
Убирает ли robots.txt страницу из индекса?
Нет. Директива Disallow запрещает загружать страницу, но адрес может остаться в индексе — например, если на него ведут внешние ссылки. Для исключения из выдачи нужен noindex, а он требует, чтобы страница была доступна роботу.
Можно ли закрывать CSS и JS?
Нельзя. Без них робот не отрисует страницу и увидит «поехавший» макет. Это прямо ухудшает оценку удобства и может повлиять на индексацию содержимого.
Какая директива важнее: Allow или Disallow?
Побеждает более длинное (конкретное) правило, а не порядок в файле. При равной длине приоритет у Allow. Это позволяет закрыть каталог целиком и открыть внутри него нужное.
Нужен ли robots.txt небольшому сайту?
Файл должен существовать и отдавать 200 — иначе часть роботов сочтёт это ошибкой. Но содержимое может быть минимальным: открыть всё и указать sitemap.