Robots.txt: 15 ошибок, которые скрыто убивают индексацию – полный разбор с диагностикой и исправлением
В практике SEO-аудита есть несколько моментов, когда у владельца сайта буквально отваливается челюсть. Один из них – когда открываешь Вебмастер, а там: «Страниц в поиске: 12». При том что сайту три года, там 800 товаров, блог на 60 статей, и всё это должно было давно проиндексироваться. Причина в 90% случаев – не фильтр, не санкции, не вирусы. Причина – одна строчка в robots.txt оставлена разработчиком год назад и забыта:
Disallow: /
Это не страшилка. Это то, с чем я сталкивался лично при анализе сайтов через DSSO-методологию. Файл robots.txt – самый маленький и одновременно самый опасный файл на сайте. Одна опечатка, один лишний слеш, одна забытая директива – и поисковик послушно перестаёт видеть контент, который вы создавали месяцами.
Парадокс: существует тысяча статей про «как создать правильный robots.txt». Но почти никто не пишет про то, как понять, что ваш текущий robots.txt сразу убивает трафик. Как диагностировать проблему до того, как она стала катастрофой. Как найти ошибку, которая работает как скрытый выключатель – вроде сайт жив, а поисковик его не видит. Эта статья – как раз об этом.
15 ошибок в robots.txt, которые мы находим при аудите сайтов
Здесь не будет абстрактных «советов». Каждая ошибка – реальная, найденная на боевых сайтах. С кодом: как неправильно, как правильно и что будет, если оставить ошибку.
Ошибка 1. Disallow: / – «ядерная кнопка», оставленная после разработки
Самая опасная и одновременно самая частая ошибка. Разработчик ставит Disallow: / на время создания сайта, чтобы поисковики не видели недострой. Сайт запускается – директиву забывают убрать. Итог: все страницы закрыты от индексации.
# ❌ Так нельзя – весь сайт закрыт User-agent: * Disallow: /
Если ваш сайт внезапно перестал индексироваться – откройте https://вашсайт.ru/robots.txt в браузере. Увидели Disallow: / и нет разрешающих Allow – убирайте немедленно.
# ✅ Открываем всё, закрываем только нужное User-agent: * Allow: / # Дальше – точечные запреты Disallow: /admin/ Disallow: /cart/
Ошибка 2. Закрытие JS и CSS от индексации
Десять лет назад SEO-специалисты советовали: «Закрывайте скрипты и стили в robots.txt, они не несут SEO-ценности». Сегодня это прямой вред. Googlebot рендерит страницы как браузер. Если он не может загрузить CSS и JS – он видит «голый» HTML и делает вывод: «сайт плохо отображается, низкий». Результат – занижение позиций.
# ❌ Вредный подход из 2015 года Disallow: /wp-content/plugins/ Disallow: /wp-content/themes/ Disallow: /js/ Disallow: /css/ # ✅ Правильно: закрываем только служебное Disallow: /wp-admin/ Disallow: /wp-content/plugins/ # только если там нет публичных файлов
Яндекс тоже рендерит – для определения мобильной пригодности и проверки микроразметки. Закрытый JS может скрыть важную Schema.org разметку от поисковика.
Ошибка 3. Блокировка картинок в /wp-content/uploads/
Ещё одно наследие «старого SEO»: закрывать папку с картинками, чтобы «экономить краулинговый бюджет». Но картинки – это трафик из Яндекс.Картинок и Google Images. Закрыли – потеряли целый канал.
# ❌ Теряем трафик из поиска по картинкам Disallow: /wp-content/uploads/ # ✅ Не закрываем публичные assets # Вместо этого – качественные alt-тексты и сжатие
Ошибка 4. Несколько директорий в одном Disallow
Каждая инструкция Disallow – это одна строка. Нельзя перечислить несколько путей через запятую или пробел. Робот просто не поймёт такое правило.
# ❌ Робот не поймёт Disallow: /admin/, /cart/, /checkout/ # ✅ Каждая директива – с новой строки Disallow: /admin/ Disallow: /cart/ Disallow: /checkout/
Ошибка 5. Противоречивые Allow и Disallow
Когда Allow и Disallow конфликтуют, побеждает более конкретное правило. Но если правила равноценны – поведение непредсказуемо. Яндекс и Google могут трактовать конфликт по-разному.
# ❌ Конфликт: весь каталог закрыт... Disallow: /catalog/ # ...но одну страницу разрешили Allow: /catalog/novinki/ # ✅ Лучше закрывать точечно Allow: /catalog/ Disallow: /catalog/filter/ Disallow: /catalog/search/
Ошибка 6. Закрытие sitemap.xml в robots.txt
Иногда в robots.txt по ошибке закрывают саму карту сайта:
# ❌ Парадокс: говорим «вот карта сайта» и тут же её закрываем Disallow: /sitemap.xml Sitemap: https://site.ru/sitemap.xml # ✅ Sitemap не должен быть в Disallow Sitemap: https://site.ru/sitemap.xml
Ошибка 7. Регистр символов – robots.txt чувствителен к регистру
Имя файла – строго robots.txt (строчные буквы). Robots.txt, ROBOTS.TXT, robot.txt – всё это не будет работать. Серверы на Linux различают регистр, и файл с именем Robots.txt просто не найдётся.
То же касается директив: User-agent и Disallow пишутся с большой буквы. С малого регистра user-agent и disallow могут не отработать.
# ❌ Неправильный регистр – не сработает user-agent: * disallow: /admin/ # ✅ Правильно User-agent: * Disallow: /admin/
Ошибка 8. Кириллица в директивах
Файл robots.txt – это английский язык. Названия папок на русском нужно кодировать в Punycode или в percent-encoding. Просто написать Disallow: /корзина/ – робот не поймёт.
# ❌ Кириллица – не поймёт ни Яндекс, ни Google Disallow: /корзина/ # ✅ Percent-encoding для кириллических URL Disallow: /%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0/
Ошибка 9. Отсутствие директивы Sitemap
Sitemap в robots.txt – это явный сигнал поисковику: «вот карта сайта, начни с неё». Без неё поисковик всё равно найдёт sitemap.xml в корне, но явное указание ускоряет индексацию. Особенно важно для новых сайтов.
# ✅ Всегда указывайте Sitemap – это ускоряет индексацию Sitemap: https://site.ru/sitemap.xml
Ошибка 10. Блокировка страниц пагинации
Популярный совет из «старого SEO»: закрыть страницы пагинации типа
/page/2/
или
/page/3/
от индексации во избежание дублей. Но если все товары или статьи доступны только через пагинацию, вы закрываете от поисковика большую часть контента. Правильный подход – не robots.txt, а канонические теги: на страницах пагинации ставить rel="canonical" на саму себя, а не на первую страницу.
Ошибка 11. Игнорирование параметров URL для интернет-магазинов
У интернет-магазина с фильтрами может генерироваться до сотен тысяч URL с параметрами, например:
?sort=price&color=red&size=xl
Каждый такой URL поисковик будет пытаться просканировать, расходуя краулинговый бюджет на мусорные дубли.
Директива Clean-param для Яндекса решает эту проблему:
# ✅ Убираем параметры сортировки и фильтров для Яндекса User-agent: Yandex Clean-param: sort&order&filter Disallow: /cart/ Disallow: /checkout/
Ошибка 12. Неправильный User-agent – указание конкретных роботов
Если вы прописали правила только для User-agent: Googlebot и не прописали общий User-agent: * – все остальные роботы (Яндекса, Bing, Majestic) будут считать, что им «можно всё». Правило хорошего тона: сначала общий блок для всех, потом – индивидуальные правила.
# ✅ Сначала общее правило для всех роботов User-agent: * Disallow: /admin/ Disallow: /cgi-bin/ # Затем – специфичные правила для Яндекса User-agent: Yandex Clean-param: sort Crawl-delay: 2
Ошибка 13. Размер файла больше 500 КБ
Google перестаёт читать robots.txt, если его размер превышает 500 килобайт. Это случается редко – но бывает, когда владельцы сайтов вписывают тысячи конкретных URL в Disallow. Если у вас такой случай – используйте маски: * и $а не перечисление.
Ошибка 14. Битый robots.txt: 404 или редирект
Если при запросе /robots.txt сервер отдаёт ошибку 404, поисковики считают, что «файла нет – значит, можно всё». Но есть нюанс: если вместо 404 сервер делает редирект на главную или другой robots.txt – поведение непредсказуемо. Файл должен отдавать код 200 и быть доступен напрямую.
Ошибка 15. Забытый robots.txt после смены CMS или переезда
Переехали с WordPress на Bitrix – старый robots.txt остался лежать и закрывает несуществующие теперь разделы. Или, что хуже, структура URL изменилась, а маски в старом файле теперь закрывают новые важные разделы. После любого переезда – проверка robots.txt должна быть первым пунктом чек-листа.
Как проверить robots.txt за 10 минут: пошаговый чек-лист
Диагностика не требует специальных знаний. Вот что нужно сделать прямо сейчас:
- Откройте ваш robots.txt в браузере:
https://вашсайт.ru/robots.txtи убедитесь, что он открывается (код 200) и не редиректит. - Проверьте наличие
Disallow: /без разрешающих Allow. Если нашли – это причина, почему сайта нет в индексе. - Сверьте имя файла: строго
robots.txt(строчные латинские буквы). - Зайдите в Яндекс.Вебмастер → Инструменты → Анализ robots.txt. Загрузите файл и проверьте: какие страницы закрыты, нет ли синтаксических ошибок. Сразу введите URL важной страницы – увидите, запрещена она или разрешена.
- Зайдите в Google Search Console → Настройки → Инструмент проверки robots.txt. Аналогичная проверка, но с фокусом на Googlebot.
- Убедитесь, что JS и CSS открыты. Введите в проверку путь к вашему файлу стилей – робот должен показать «Разрешено».
- Проверьте, не закрыта ли карта сайта –
sitemap.xmlне должен быть в Disallow. - Проверьте пагинацию: если у вас есть
/page/2/и они закрыты – это потенциальная потеря контента из индекса. - Сверьте размер файла: в идеале – до 100 КБ. Если больше 500 КБ – Google его проигнорирует.
- Проверьте директиву Crawl-delay для Яндекса: она должна быть адекватной (1-3 секунды). Слишком большое значение замедлит индексацию.
Яндекс и Google: где трактовки robots.txt расходятся
Есть несколько директив, которые Яндекс и Google понимают по-разному. Это нужно знать, чтобы файл работал для обоих поисковиков.
| Директива | Яндекс | |
|---|---|---|
| Crawl-delay | ✅ Поддерживает. Минимальный интервал между запросами робота в секундах. | ❌ Не поддерживает с 2019 года. Вместо этого – настройка скорости сканирования в GSC. |
| Clean-param | ✅ Поддерживает. Убирает параметры из URL при сканировании. | ❌ Не поддерживает. Используйте настройку параметров URL в GSC. |
| Host | ❌ Отменена Яндексом. Больше не используется. | ❌ Никогда не поддерживал. |
| Allow | ✅ Поддерживает. | ✅ Поддерживает, но трактует приоритет по-своему: побеждает более длинное правило. |
| Noindex в robots.txt | ❌ Не поддерживает. | ❌ Отменён в 2019. Для запрета индексации используйте meta-тег noindex. |
Практический вывод:
разносите специфичные для Яндекса директивы:
Crawl-delay и Clean-param
в отдельный блок:
User-agent: Yandex
Не надейтесь, что Google их поймёт – и наоборот.
Robots.txt для больших сайтов: стратегия, а не шаблон
Для интернет-магазина на 50000 товаров robots.txt – это не «закрыть админку». Это инструмент управления краулинговым бюджетом. Поисковик не может бесконечно сканировать ваш сайт. У каждого сайта есть лимит страниц, которые робот обойдёт за день. Если этот лимит тратится на мусорные URL с фильтрами – важные товарные страницы ждут индексации неделями.
Стратегия для e-commerce:
- Закрывайте параметры через Clean-param (для Яндекса) и настройки URL в GSC (для Google). Не пытайтесь закрыть все фильтры через Disallow – их тысячи, у вас кончится место в файле.
- Пагинацию не закрывайте. Используйте канонические теги: на странице 2, 3, N ставьте
rel="canonical"на саму себя. Это правильный способ сказать поисковику «это отдельная страница, индексируй её». - Закрывайте только то, что реально не нужно в индексе: страницы входа, корзины, личного кабинета, результаты внутреннего поиска, служебные скрипты.
- Следите за логами сервера. Если видите, что робот заходит на одни и те же мусорные URL – добавьте их в Disallow.
- Используйте маски, а не списки:
Disallow: /*?sort=вместо перечисления 300 конкретных URL.
Готовые шаблоны robots.txt с комментариями
WordPress
User-agent: * # Открываем всё по умолчанию Allow: / # Служебное – закрываем Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /wp-content/plugins/ Disallow: /cgi-bin/ # Поиск и фильтры Disallow: /search/ Disallow: /*?s= Disallow: /*?replytocom= # Карта сайта Sitemap: https://site.ru/sitemap.xml # Правила для Яндекса User-agent: Yandex Clean-param: utm_source&utm_medium&utm_campaign Crawl-delay: 2
1С-Битрикс (интернет-магазин)
User-agent: * Allow: / Disallow: /bitrix/ Disallow: /personal/ Disallow: /cart/ Disallow: /order/ Disallow: /auth/ Disallow: /search/ Disallow: /*?sort= Disallow: /*?order= Disallow: /*?set_filter= Sitemap: https://site.ru/sitemap.xml User-agent: Yandex Clean-param: sort&order&set_filter&PAGEN_1 Crawl-delay: 2
OpenCart (интернет-магазин)
User-agent: * Allow: / Disallow: /admin/ Disallow: /catalog/view/ Disallow: /system/ Disallow: /vendor/ Disallow: /image/cache/ Disallow: /*?route=account/ Disallow: /*?route=checkout/ Disallow: /*?route=product/search Disallow: /*?sort= Disallow: /*?order= Disallow: /*?limit= Sitemap: https://site.ru/sitemap.xml User-agent: Yandex Clean-param: sort&order&limit&filter Crawl-delay: 2
MODx Revolution
User-agent: * Allow: / Disallow: /manager/ Disallow: /connectors/ Disallow: /assets/components/ Disallow: /assets/cache/ Disallow: /search/ Disallow: /*?q= Sitemap: https://site.ru/sitemap.xml User-agent: Yandex Clean-param: q Crawl-delay: 2
Универсальный шаблон для небольшого сайта
User-agent: * Allow: / Disallow: /admin/ Disallow: /login/ Disallow: /cgi-bin/ Sitemap: https://site.ru/sitemap.xml
Часто задаваемые вопросы о robots.txt
Обязательно ли нужен файл robots.txt?
Нет, он не обязателен. Если файла нет, поисковые роботы сканируют всё, что найдут. Но для любого сайта сложнее одностраничника robots.txt настоятельно рекомендуется – он помогает управлять краулинговым бюджетом и защищать служебные разделы от попадания в индекс.
Можно ли закрыть страницу от индексации только через robots.txt?
Нет. Robots.txt запрещает сканирование страницы – но не индексацию. Если на закрытую страницу ведёт внешняя ссылка, поисковик может её проиндексировать (без содержимого). Для гарантированного исключения из индекса используйте мета-тег:
<meta name="robots" content="noindex">
или серверный заголовок, например, для Apache:
X-Robots-Tag: noindex
Что будет, если в robots.txt ошибка в синтаксисе?
Поисковик либо проигнорирует ошибочную строку и продолжит разбор остальных правил, либо – если ошибка критическая – проигнорирует весь файл и будет сканировать сайт без ограничений. Второй вариант опаснее: вы думаете, что служебные страницы закрыты, а на самом деле они открыты.
Нужно ли закрывать страницу входа (/wp-admin/, /login/) в robots.txt?
Желательно. Это не защитит от взлома, но уберёт страницу входа из поисковой выдачи. Представьте: кто-то гуглит ваш сайт и в выдаче видит «Вход в админпанель» – не лучший пользовательский опыт.
Как быстро изменения в robots.txt вступят в силу?
Поисковые роботы перечитывают robots.txt при каждом новом обходе сайта. Для небольших сайтов – в течение суток. Для крупных – может занять несколько дней. В Яндекс.Вебмастере можно запросить переобход после изменений. В Google Search Console – аналогично, через инструмент проверки robots.txt.
Влияет ли robots.txt напрямую на позиции в выдаче?
Нет, содержание robots.txt не является фактором ранжирования. Но косвенно влияет критически: неправильный robots.txt → страницы выпадают из индекса → позиции и трафик падают. Правильный robots.txt → краулинговый бюджет расходуется эффективно → важные страницы индексируются и ранжируются.
Проверьте ваш robots.txt прямо сейчас. Если найдёте хотя бы одну ошибку из пятнадцати перечисленных – исправьте её до следующего обхода поисковым роботом. Это займёт пять минут и может вернуть сайту трафик, который вы теряли, даже не подозревая об этом.
