Я сделал с ИИ сайт на 2000 страниц на четырёх языках. Из Google на него приходят два человека в день - QubStore

Я сделал с ИИ сайт на 2000 страниц на четырёх языках. Из Google на него приходят два человека в день

Содержание статьи

Летом я сделал энциклопедию по истории искусства, artatlas.site. 184 картины, 107 художников, музеи, статьи, и все это на русском, английском, испанском и французском. Две с лишним тысячи HTML‑файлов. Код и тексты почти целиком писал ИИ (Claude Code), а я ставил задачи, ругался и проверял. Ругался, честно говоря, чаще чем проверял.

Lighthouse ставит доступности сотню, JSON‑LD валидный везде, где он есть. Google приводит 1,9 человека в день. Я посчитал, да.

Дальше — как так вышло. Местами смешно, местами не очень, местами до сих пор не очень.

Июнь

Первые недели были как в рекламе. Пишу «сделай страницы для 49 новых картин», через час они есть. «Перетащи все картинки с Википедии к себе»: 250 файлов, 74 мегабайта, готово. Английская версия каждой страницы тоже была готова к вечеру. Я в какой‑то момент просто сидел и придумывал, что бы еще такое попросить.

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

Потом таких «снаружи все нормально» будет еще много. Очень много.

Как скрипт чинил то, что не было сломано

ИИ написал проверку hreflang (это ссылки между языковыми версиями одной страницы, кто не сталкивался). Правило внутри было такое: английский адрес = /en/ + русский адрес. Звучит разумно, я бы и сам так подумал. Проверка нашла «ошибки» и сама же их исправила, 312 штук.

Только английские адреса у меня устроены иначе, у многих в конце суффикс вроде -q1239950. Откуда он взялся, это отдельная история, сейчас не про нее. Все 312 ссылок до «исправления» были правильные, а после вели в никуда. Откатывали из бэкапа, 211 блоков. Почему 211, а не 312, я уже не вспомню, что‑то там совпало.

В другой раз бэкапы четырех главных страниц скопировались в одну папку, и русская главная оказалась перезаписана английским каталогом. Открываю сайт, а там по‑английски. Вернули ее, скачав с живого сайта. Звучит дико, но с тех пор живой сайт у нас официально считается бэкапом.

Человек на такой ошибке испортил бы одну страницу. Скрипт портит сразу триста, за секунду, и бодро докладывает, что все прошло успешно.

Свечи на шляпе

Для энциклопедии факты — это все. И писал их ИИ отлично, с деталями, с цифрами. В июле я попросил «не скучно», и он сделал не скучно. Даже слишком.

Потом мы это проверили. 964 факта, каждый отдельно. Ошибок нашлось двадцать, на восемнадцати картинах. Двадцать из девятисот — вроде немного. Неприятно было другое: ошибками оказались как раз самые яркие места, те, ради которых страницу и хочется дочитать.

  • В Мону Лизу якобы стреляли. Не стреляли. В 1956-м в нее бросили камень, и в том же году (другой человек, кстати) плеснули кислотой.

  • Микеланджело расписывал Сикстинскую капеллу лежа на спине. Нет, стоя на лесах и задрав голову. Он про это даже стихи написал, жаловался.

  • Ван Гог работал ночью со свечами, закрепленными на шляпе. Красиво, правда? Это миф, пошедший из книги 1922 года. Сам он писал брату про газовый свет.

  • «Мыслитель» Родена размером с ладонь. Ну нет.

Исправлять было отдельным удовольствием. Каждая такая выдумка сидела в пяти местах: карточка, разбор, FAQ, описание для поиска, подпись. И так на каждом из четырех языков. Одна ошибка — двадцать правок, и попробуй ни одну не пропусти.

Тогда я и придумал правило, по которому сайт живет до сих пор. Удивлять важнее, чем быть скучно точным. Но если история не подтверждается, так и пишем: легенда. Свечи на шляпе остались, мне их жалко было. Теперь с пометкой.

Realismoo

Языков в плане сначала было десять, вплоть до японского и корейского. Сейчас вспоминаю и не понимаю, о чем я думал. После французского я сказал стоп и ни разу об этом не пожалел.

Переводить хотел нормально, без DeepL «с вычиткой». 183 картины на испанский и французский ушли за 17 заходов, и к 5 августа на каждом языке было по 309 страниц. Я был очень доволен собой. Недолго.

Потому что дальше началось мое любимое.

В испанской версии эпохи переименовались дважды: Realism стал Realismo, а потом Realismoo. Во французской Modernisme превратился в Modernismee. 264 таких удвоения на 58 страницах, и предыдущая проверка их, конечно, не заметила.

Тег <body> перевели на испанский и французский: <cuerpo> и <corps>. Браузеры, надо отдать им должное, все равно что‑то показывали. Я, когда это увидел, минут пять просто смеялся.

Перевели и имена файлов картинок. На сайте появилась ссылка на isenheim-retablo.webp, которого, естественно, не существовало. Шесть битых картинок, шестьдесят ссылок на них.

И самое тихое. На 14 английских страницах в разметке потерялась одна буква, получилось </p><The location…. Браузер решал, что это какой‑то незнакомый тег, и просто не показывал предложение. Целое предложение, которого никто бы никогда не увидел. Вот это меня, если честно, напугало больше, чем Realismoo. Realismoo хотя бы видно.

Миллион слов

В середине августа я замахнулся на то, ради чего вообще стоило городить энциклопедию: подробные разборы. По 1200–1800 слов на каждую из 184 картин, на четырех языках. Около миллиона слов, если посчитать. Я посчитал уже потом, и хорошо, что потом. Писали агенты, по несколько штук параллельно.

Вот тут волшебство кончилось и началось производство. С авариями, как на любом нормальном производстве.

Четыре раза уперлись в месячный лимит расходов. Один раз на лимите разом легли все 14 агентов, и у четырех картин разбор успел попасть в разметку, но не на страницу. Пойди найди.

Один агент получил 12 файлов, раздал их «помощникам» и отчитался: готово, работают в фоне. Файлы никто не тронул. Вообще. Пришлось прямо прописывать в задании: никому ничего не передавать, делать самому. Как будто сотруднику объясняешь.

Закрывающий </div> в сетке страницы агенты теряли трижды. Каждый раз сразу после слова «проверил».

Потом сработал защитный фильтр, и писать в файлы стало нельзя вообще. Насколько я понял (а понял я не до конца), ему не понравилось то, что накопилось в контексте. В истории искусства хватает острых сюжетов, вроде суда из‑за журнальной пародии на «Американскую готику». Сессию пришлось бросить, а новой оставить подробную записку: что готово, что нет, где лежат три написанных, но не вставленных разбора. Такое завещание, в общем.

А 20 августа macOS сама вычистила временную папку. Вместе с очередью задач, скриптами и исходными данными. Сайт уцелел, конвейер собирали заново по записям. Это был, пожалуй, худший день.

21-го разборы были у всех 184 картин. Проверка качества: 58 нормальных, 63 с мелочами, 63 с серьезными проблемами и 11 фактических ошибок. Еще неделя.

«Проверь еще раз»

Эту фразу я написал, наверное, раз сто. Может, больше, не считал. И почти каждый раз находилось что‑то новое, это уже даже не раздражало, просто стало частью процесса.

Лучший эпизод был на одном из кругов самопроверки. ИИ нашел 232 файла с незакрытыми абзацами и добавил в них </p>. Следующим шагом обнаружил, что в 228 из них лишний тег поставил он сам. Сам заметил, сам откатил и сам записал себе правило: после любой массовой правки проверять весь сайт, никаких выборок. Выборки, кстати, занижали масштаб в два‑четыре раза. Это я тоже узнал не сразу.

Чисто стало только к третьему кругу.

Ноль из сорока

К концу августа сайт был вылизан. FAQ на 297 страницах, llms.txt для нейросетей, в robots.txt открыт доступ GPTBot и ClaudeBot. В общем, все, что советуют в статьях про оптимизацию под ИИ‑поиск, я сделал. Ну, почти все.

30 августа решили проверить, работает ли это. Взяли 40 реальных запросов, включая совсем узкие, на которые у меня есть готовый ответ: «кто написал „Крик“», «почему Ван Гог отрезал ухо». Мой сайт не нашелся ни разу. Ноль из сорока. Наверху везде Википедия и старые большие сайты про искусство, которые там лет пятнадцать сидят.

Было обидно, не буду врать.

В тот же день выяснилось еще кое‑что. В Cloudflare была включена штука под названием Managed robots.txt, и она сама дописывала в мой robots.txt запрет для GPTBot, ClaudeBot, Google‑Extended и CCBot. То есть я ботов звал, а Cloudflare за моей спиной их выгонял. Сколько это продолжалось — не знаю. Включал ли я это сам когда‑то, тоже не помню.

Там же нашлась разгадка надписи в Google «787 страниц обнаружено, но не просканировано». Кэш в Cloudflare стоял на два часа. Посетителей почти нет, кэш все время протухает, и робот почти всегда натыкается на медленный холодный сервер. Поменяли два часа на месяц, прогрели, ответ стал примерно 0,6 секунды вместо двух. Одна цифра в настройках. Одна.

Испанский

А этот поворот я устроил себе сам, тут ИИ ни при чем.

27 августа смотрю статистику по языкам: русский 124 клика, английский 43, испанский и французский по нулям. Решил, что они тянут сайт вниз, и закрыл их от индексации, 628 страниц. ИИ возражал, говорил, что «лишние языки топят SEO» — это миф. Я все равно закрыл. Психанул, наверное.

Открыл обратно 6 сентября. Через неделю страниц сайта в Яндексе стало на 52% больше, а испанский раздел вырос с нуля до 307 страниц и оказался самым большим. Заодно всплыло, что еще в начале августа в sitemap было пять испанских страниц и две французские. Из 309. Из трехсот девяти, Карл.

Так что дело было не в языках. Их просто никто не видел.

Что в итоге

Сейчас у меня 2033 HTML‑файла, 1263 страницы, которые я хочу видеть в поиске, и четыре языка. Яндекс знает около 1120 страниц и потихоньку растет. Google дает те самые 1,9 клика в день.

Больше всего пользы принесли три самые обычные статьи, написанные под реальные запросы из Вордстата. Одна из них сейчас дает больше кликов, чем любая другая страница сайта. Меньше всего — то, во что я вложил больше всего сил: разметка, FAQ, вся эта «оптимизация под нейросети». Обидно, но факт.

Если коротко про работу с ИИ. Делает он почти все и очень быстро, но не знает, когда ошибся. Поэтому его «готово» я теперь читаю как «наверное, готово» и иду смотреть файлы. Ошибается он не чаще меня, зато сразу на трехстах страницах. А решения (какие языки, что считать легендой, что выкинуть) все равно оставались на мне. Цены картинам он придумывать отказался, и правильно сделал. Языки скрывать отговаривал, и тоже был прав, о чем мне до сих пор немного неловко.

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

Если зайдете на сайт, откройте любой разбор. На них ушло больше всего сил, и за них мне не стыдно. За остальное тоже почти не стыдно.

Ссылка на основную публикацию