AI Фактор

Сайт за два дні з Claude Code: що спрацювало

Досвід 05.11.2026

Автор блогу на HackerNoon за два дні переніс сайт з Astro на Next.js 16. За цей час він переписав 228 постів під дані пошукових запитів, жоден URL не зламався, 543 тести проходять. Вийшло близько 100 комітів і 11 злитих PR. Цифру 32 784 рядки він сам називає слабкою метрикою: у неї входять контент, тести й код, який він видалив наступного дня.

Його головний висновок: писати код стало майже безкоштовно, а вирішувати, який код має існувати, так само дорого, як і раніше. Вузьке місце тепер у тому, скільки diff ви встигаєте переглянути. Тому він зливав зміни невеликими шматками, а субагентам давав лише задачі, що не чіпають одні й ті самі файли.

Що це означає для бізнесу: Якщо ведете проєкт у Claude Code, запишіть заборони («не ламати жодного URL») в інструкції, які агент читає на старті сесії. Зловили агента на порушенні — допишіть тест, а не лише виправте помилку.

Як агент ламає те, про що ви не сказали

На початку перебудови новому дизайну не були потрібні сторінки пагінації блогу й кілька прихованих сторінок проєктів. Агент зробив логічний для дизайну крок: пагінацію перенаправив, а приховані проєкти почали віддавати 404. Але обидва набори сторінок індексовані на живому сайті, тож для SEO це втрата. Виправлення пішло окремим комітом Keep every URL main serves. Відтоді діяло постійне правило: після кожної зміни маршрутизації звіряти старий sitemap із новими маршрутами.

Агент оптимізував під найчистішу структуру, а потрібна була структура, яка зберігає вже робоче. Про другу мету він не знав, доки її не записали. Заборони в цьому проєкті були переважно негативні: не ламати жодного URL, не змінювати перенос заголовків на головній і в заголовках сторінок, не вживати певних фраз у title та метаданих.

Тести як контракт: що саме покривати

  • тест метаданих падає, якщо title чи description порушує узгоджені правила;
  • тести structured data падають, якщо JSON-LD змінює форму;
  • тест sitemap падає, якщо зник маршрут;
  • окремо покриті llms.txt, сторінки тегів, proxy, markdown negotiation.

Жоден із цих тестів не складний. Кожен перетворює правило, яке інакше довелося б пам'ятати, на червоний білд. Головне, що автор зробив би інакше: писати тест збереження URL першого дня. Скрипт, що порівнює старий sitemap із новими маршрутами, одразу зловив би історію з пагінацією.

Аудити й видалення: де рішення лишається за людиною

Значна частина роботи йшла циклом: агент перевіряє сайт за чеклистом (тексти, метадані, сторінки проєктів), людина читає знахідки, вирішує, які з них справжні, виправляє і запускає аудит знову. Якщо приймати весь список, агентові віддано вже судження, а не набір тексту.

Приклад судження, якого агент не дасть. На сайті був публічний JSON API з OpenAPI-специфікацією, за кілька годин до того версіонований під /api/v1 з deprecation-заголовками на старих шляхах. Його видалили повністю. Сайт є портфоліо, API не давав цінності ні для SEO, ні для AI-пошуку, зате генерував близько 500 зайвих статичних сторінок. Агентів, які хочуть читати сайт, і так обслуговують llms.txt і content negotiation для Markdown. Кількість статичних сторінок зменшилася з 1093 до 596. Абзац про призначення сайту на початку файла інструкцій, за оцінкою автора, заощадив би день роботи.

Те саме з ключовими словами. Дослідження через DataForSEO зайняло 313 викликів API і коштувало $4,37. Вузькі порівняння на кшталт «cursor vs claude code» мають низьку складність, а загальні запити типу «cursor» не варті зусиль. Багато постів були на правильну тему, але з поганим заголовком. Фразу приблизно з 720 пошуками на місяць свідомо не використали ніде на сайті, бо не сподобалось, як вона звучить.

Що перевірити перед злиттям

  • Тести перевіряють поведінку, а не просто світяться зеленим.
  • Кожен раніше індексований URL повертає 200 з реальним вмістом.
  • Зміна зменшила поверхню, яку треба підтримувати, а не збільшила.
  • Кожне рішення в diff можна пояснити. Якщо ні, diff не переглянули, а лише схвалили.
  • Сторінку подивилася людина: білд і тести показують лише, що код узгоджений сам із собою.
  • Паралельні субагенти не чіпали тих самих файлів. Переписати текст сторінки й полагодити логіку sitemap можна розділити, а layout і helper метаданих одночасно не можна.
Раніше в теміЯк Claude Code губить роботу: три пастки
Читати в ТелеграміПрактика ШІ в бізнесі — щодня, без хайпу

Продукти: Курс