ИИ заблокировал ваш сайт: Топ-5 фатальных ошибок в robots.txt при vibe-кодинге
Это руководство применимо к Next.js App Router (
app/robots.ts), Astro (public/robots.txt) и другим SSG, где ИИ-помощники динамически создают или внедряют мета-файлы.
Эпоха «vibe-кодинга» с использованием ИИ-ассистентов вроде Cursor или GitHub Copilot позволяет развертывать фичи за считанные минуты. Но у этой скорости есть скрытая цена: бесшумные ошибки конфигурации, которые не вызывают проблем в консоли, но разрушают бизнес-логику в продакшене. Одной из самых катастрофических является генерация некорректного robots.txt. Разработчик запускает приложение, проверяет UI, видит успешный билд — и только через две недели замечает, что трафик упал до нуля, потому что Google был заблокирован.
Разберем топ-5 способов, которыми ИИ может «стереть» вашу видимость из поиска, и как это остановить.
Копирование кода из Staging в Production
Critical - SEO Crawl Block
Когда вы просите ИИ «создать robots.txt для проекта на Next.js», модель часто выдает наиболее распространенный паттерн из своих обучающих данных. Часто это шаблон, используемый для скрытия тестовых (staging) окружений от поисковых систем.
Bad AI Code:
User-agent: *
Disallow: /
Если вы слепо примете это автодополнение, вы фактически запретите всем поисковым ботам индексировать ваш домен. ИИ не знает, разворачиваете ли вы проект локально или в глобальном кластере; он просто выдает то, что выглядит «соответствующим контексту». Для ИИ ограничивающий шаблон выглядит так же естественно, как и стандартный.
Fixed Code:
User-agent: *
Allow: /
WebValid Alignment: WebValid сканирует сгенерированный файл и проверяет наличие глобальных запрещающих правил, подсвечивая эту ошибку еще до того, как изменения попадут в продакшен.
Случайная блокировка Googlebot
High - Traffic Collapse - OWASP WSTG-INFO-003
Популярный сценарий использования ИИ сегодня — защита от «жадных» ботов. Разработчики просят Cursor: «Обнови мой robots.txt, чтобы заблокировать OpenAI, Anthropic и других агрессивных скреперов».
ИИ с энтузиазмом выполняет просьбу, но, пытаясь быть максимально полезным, часто галлюцинирует строки User-Agent или путает области видимости.
Bad AI Code:
User-agent: GPTBot
Disallow: /
User-agent: *
Disallow: /bot-traffic
Disallow: /*
В примере выше ИИ добавил глобальную блокировку (Disallow: /*) при попытке поймать отдельных ботов. В синтаксисе robots.txt Disallow: /* эквивалентно Disallow: / — оба правила полностью блокируют сайт для любого агента, подходящего под User-agent: *, включая Googlebot.
Если вы хотите узнать больше о том, как ИИ галлюцинирует критические операции, ознакомьтесь с нашим руководством по DOM-галлюцинациям.
WebValid Alignment: WebValid выполняет программную проверку синтаксиса, отделяя правила для конкретных ботов от общих масок (wildcards) и гарантируя, что широкие запреты не затрагивают основных поисковых роботов.
Галлюцинации регулярных выражений
Medium - Ignored Directives - OWASP WSTG-INFO-003
Если вы попросите ИИ заблокировать URL с динамическими параметрами (например, ?sort=price), он почти всегда предложит использовать стандартную логику разработчика: регулярные выражения (RegEx).
Bad AI Code:
User-agent: *
Disallow: /products/?[a-z]*=
Проблема заключается в том, что стандарт robots.txt (и Google Search Central) не поддерживает полноценные регулярные выражения. Поддерживаются только два простых символа: звездочка (*) для замены любого количества символов и знак доллара ($) для обозначения конца строки.
Поскольку боты Google не парсят конструкцию [a-z], они будут воспринимать это как часть обычной текстовой строки. Ваши динамические URL будут проиндексированы, что приведет к перерасходу краулингового бюджета и созданию дублей контента.
Fixed Code:
User-agent: *
Disallow: /products/*?*sort=
Здесь * перед ? соответствует любому пути до знака вопроса, а * после sort= соответствует любому значению параметра. Google воспринимает ? как литерал, что позволяет точно блокировать Query-параметры.
Запустите автоматический аудит конфигурации вашего сайта с WebValid прямо сейчас.
Игнорирование приоритета длины пути
High - Information Leakage - OWASP WSTG-INFO-003
Когда ИИ пытается скомбинировать сложные правила Allow и Disallow, он неизбежно группирует их либо в случайном порядке, либо по алфавиту.
Согласно правилам Google, приоритет имеет самый длинный (наиболее специфичный) путь. Но что произойдет, если ИИ создаст короткое правило блокировки и более длинное разрешающее правило?
Bad AI Code:
User-agent: Googlebot
Disallow: /admin/
Allow: /admin/dashboard/public-view/
Google отдаст приоритет правилу Allow для всего, что находится внутри /public-view/, потому что эта строка длиннее. ИИ редко считает количество символов при генерации текста. Это часто приводит к непреднамеренным утечкам информации (OWASP WSTG-INFO-003), когда защищенные пути начинают индексироваться из-за локального правила Allow, перекрывающего общий запрет.
Подробнее о том, как небольшие структурные ошибки превращаются в крупные утечки, читайте в нашем материале про уязвимости Open Wire.
WebValid Alignment: WebValid автоматически анализирует иерархию правил. Он вычисляет приоритет длины строки точно так же, как это делает Googlebot, выдавая предупреждение при опасных конфликтах директив.
Потеря директивы Sitemap
Medium - Delayed Indexation
Файл robots — это не только щит, но и карта. Директива Sitemap: https://domain.com/sitemap.xml сообщает краулерам, где именно искать ваш самый важный контент.
Так как мы обычно просим ИИ о «блокировке» чего-либо («Заблокируй этот путь», «Останови ИИ-ботов»), модель гиперфокусируется на матрице User-agent и полностью «забывает» о строке Sitemap. В результате Google не получает прямых ссылок на ваш новый динамический контент. Это не угроза безопасности, но критически замедляет индексацию современных приложений.
Факт-чекинг: ИИ-галлюцинации в Robots.txt
Происходит ли это на самом деле или это только теория?
Доказательства:
- Файлы
app/robots.tsв проектах на Next.js, гдеDisallow: /по ошибке попадает в мастер-ветку, часто встречаются в публичных репозиториях. - Форумы Google Search Console и сообщества на Reddit полны тем «Трафик упал до нуля за одну ночь», где разработчики признаются, что копировали конфиги из ChatGPT без проверки масок.
- Google Search Central официально подтверждает, что сложный синтаксис (помимо
*и$) игнорируется, доказывая несостоятельность стандартной логики ИИ в этом формате.
Мнение: На практике большинство фатальных SEO-ошибок возникают из-за того, что разработчики доверяют формату robots.txt только потому, что он «выглядит как текст». Но для поисковика это строгий контракт исполнения, а ИИ относится к нему как к черновику сообщения.
Автоматизировано с WebValid
Вот как WebValid системно ловит то, что галлюцинирует ИИ:
| Проблема | Возможности WebValid |
|---|---|
| Глобальные запреты | Проверяет текст на наличие случайных Disallow: / |
| Поддержка синтаксиса | Проверяет использование недопустимых регулярных выражений |
| Приоритет масок | Вычисляет конфликты правил по логике длины пути |
| Обнаружение Sitemap | Проверяет наличие и доступность директивы Sitemap: |
| Сканирование контента | Оценивает содержимое билда без исполнения скриптов |
WebValid проверяет синтаксис и соответствие правилам Google, предотвращая крах краулингового бюджета. Однако он не может знать вашу бизнес-логику — например, он не поймет, должна ли папка
/dashboardбыть публичной, если вы сами не настроите права доступа на сервере.
Ваш чек-лист для Robots.txt
Не позволяйте ИИ лишить вас трафика. При генерации мета-файлов следуйте этому алгоритму:
- Проверяйте вывод
robots.tsилиrobots.txtс помощью независимых инструментов аудита сразу после генерации. - Тестируйте Production-билд. Убедитесь, что файл доступен по финальному адресу без конфликтующих заголовков.
- Пишите промпты лучше: используйте структурированные Markdown-промпты с параметрами
Expected(Ожидаемо) иActual(Фактически) при постановке задач ИИ.
Ваш ИИ-помощник умеет писать хороший код — он просто не знает, в какой момент ошибся. Дайте ему отчет об ошибках от WebValid, и он исправит всё сам.
Начните аудит вашего сайта бесплатно