Код, интерфейсы и трафик без воды
lawebbox

Почему ИИ-сайт на 2000 страниц не привлекает трафик из Google

На Хабре автор летом скормил Claude Code задачу собрать энциклопедию искусств: 184 картины, 107 художников, четыре языка, 2000 HTML-файлов.

Максим Воронцов, Хардкорный бэкендер и девопс · обновлено 05 октября 2026 г.

Почему ИИ-сайт на 2000 страниц не привлекает трафик из Google

Lighthouse по доступности сотня, JSON-LD валидный. Google приводит 1,9 человека в день. История не про ИИ, а про то, что бывает, когда прод — побочный эффект промпта.

Классика: права на файл и бэкапы, которых нет

Через пару недель после запуска на сайте сломался весь JavaScript. Файл site.js залился с правами 600, сервер отдавал 403. Снаружи всё прилично: вёрстка на месте, картинки на месте, тексты на месте. Ни одна интерактивная штука не реагировала. Сколько это длилось, автор не знает и знать не хочет.

Вопрос к пайплайну. chmod 600 на ассет, который должен отдаваться веб-сервером, не должен пройти ни в одной CI/CD-цепочке. Банальная проверка stat или линтер манифеста пайплайна поймала бы это до того, как файл уехал на прод. Костыль, который автор предпочёл не ставить, — ну, теперь есть мотивация.

Где-то между этими событиями бэкапы четырёх главных страниц скопировались в одну папку, и русская главная перезаписалась английским каталогом. Восстановили, скачав с живого сайта. С тех пор живой сайт официально считается бэкапом. Не делайте так. Бэкап — это отдельное хранилище, отдельный cron, отдельный retention, и желательно offsite. Если ваш единственный бэкап — это прод, у вас нет бэкапа.

Когда автотест чинит то, что не сломано

Дальше — hreflang, связи между языковыми версиями страниц. ИИ написал проверку по правилу «английский адрес = /en/ + русский адрес». Звучит логично. Проверка нашла 312 «ошибок» и сама же их «исправила». Только у автора в URL зашит суффикс вида -q1239950, которого модель не знала. Все 312 ссылок до правки вели куда надо, после — в никуда.

Из 312 ссылок откатили 211 блоков. Куда делись остальные — история умалчивает. Человек на такой ошибке испортил бы одну страницу. Скрипт портит триста за секунду и бодро рапортует, что всё прошло успешно. Автотест, у которого есть кнопка «применить к проду», рано или поздно её нажмёт. В прод такие штуки не выпускают.

Почему 1,9

Lighthouse сотня, JSON-LD валидный, четыре языка, 2000 страниц. Google приводит двух человек в день. Причин две, обе про качество.

hreflang. Если поисковик не уверен, какую языковую версию показывать, он просто не показывает страницу. 312 поломанных hreflang — прямой сигнал Google, что международной структуре сайта он не доверяет.

Контент. Из 964 проверенных фактов нашлось 20 ошибок на 18 картинах. В Мону Лизу якобы стреляли. Микеланджело якобы расписывал Сикстинскую капеллу лёжа на спине. Ван Гог якобы работал ночью со свечами, закреплёнными на шляпе. Принцип автора сайта простой: «удивлять важнее, чем быть скучно точным». Поисковик такие страницы ранжирует примерно так же, как пользователи к ним относятся после третьей выдумки.

Если ваш сайт собран похожим образом — 2000 страниц на шаблоне, тонна автогенерированного контента, связи между версиями на совести модели — есть повод пройтись руками. Повод один: автотесты, которые сами чинят то, что сами же сломали, в прод не выпускают.