Мой сайт prodfeat.ai жил на React SPA. Vite 7, React 19, бандл собирается быстро, выглядит красиво. Одна проблема - поисковики видели пустую страницу, потому что весь рендеринг на клиенте. SEO-скор 6.5 из 10. Для контентного сайта с блогом - приговор.
Я в SEO вообще не разбираюсь. Ноль. Не знал, что такое E-E-A-T, пока агенты мне не написали, что у меня 4 из 10.
За 2 сессии в Claude Code - перевёл всё на Astro 5 SSG. 13 задач. SEO вырос до 8.7.
Как дошёл до миграции
React SPA рендерит контент на клиенте. Гугл видит пустой <div id="root">. Можно прикрутить SSR, но это отдельный сервер, конфигурация, деньги - выбрал Astro, потому что статика на Vercel бесплатна, а Next.js SSG потребовал бы переписывать роутинг с нуля. Astro генерирует готовый HTML на этапе сборки и поддерживает Content Layer API для блога из Markdown-файлов.
Но начал не с кода.
Разведка: OpenClaw + Claude Code
Сначала натравил своего бота OpenClaw на сайт. Попросил проанализировать всё, что видит, и сгенерировать отчёты. OpenClaw выдал список проблем - от отсутствия мета-тегов до языкового хаоса (английский UI, русский контент). Эти отчёты принёс в Claude Code.
Claude Code через Superpowers skills сгенерировал дизайн-документ: что мигрировать, в каком порядке, какие SEO-чекпоинты расставить. Получился план из 13 задач.
Но план - это ещё не экспертиза. Мне нужен был кто-то, кто реально разбирается в SEO.
10 SEO-агентов с GitHub
Нашёл ссылку на GitHub - набор из 10 специализированных SEO-агентов для Claude Code. Каждый - отдельный субагент со своей экспертизой: seo-structure-architect, seo-meta-optimizer, seo-content-auditor и ещё 7. Интегрировал в проект. Всё.

Попросил Claude Code разобраться в этих “спецах” самостоятельно и назначить на них полный аудит текущего сайта и уже проработанного плана. 4 агента стартовали параллельно. Один structure-architect сожрал 67.6k токенов и сделал 25 вызовов инструментов - разобрал сайт по косточкам.

Аудит:
- Technical SEO: 7/10
- Content Structure: 5/10
- E-E-A-T: 4/10

E-E-A-T 4 из 10 - нет AuthorBio, нет JSON-LD, нет structured data, внутренняя перелинковка отсутствует. Я бы сам никогда не додумался это проверять.

Что сделал
На основе аудита обновил дизайн-документ до v2 - уже с конкретными SEO-задачами от агентов.

Ключевые решения и почему именно такие:
- Astro 5 с Content Layer API - потому что Markdown-блог из коробки, без плагинов
- React Islands - чтобы не переписывать интерактивные компоненты с нуля
- 5 схем JSON-LD (Person, WebSite, ProfilePage, Article, BreadcrumbList) - это агенты нашли, я бы пропустил
- Языковая стратегия - один язык на страницу,
lang="ru"в корне - Admin panel с JWT auth - чтобы управлять контентом без редеплоя
Первые 2 задачи заняли полтора часа из четырёх. Конфигурация Astro, перенос роутинга, адаптация компонентов - три раза ловил ошибки гидратации React Islands, потому что Astro по-другому обрабатывает client:load директивы. Зато Content Layer API заработал с первого раза.
Результат
Полный SEO-чеклист после миграции - все пункты PASS.

Финальный аудит:
- Overall: 8.7/10 (было 6.5)
- Technical SEO: 8.5/10
- E-E-A-T: 9/10
- Meta Tags: 9/10
- Structured Data: 9/10
- Content Structure: 8/10


Рост на 34% с Claude Code. Без SEO-консультанта. Без ручного аудита.
Что понял
SEO-агенты с GitHub - фишка всей истории. Нашёл ссылку, скопировал файлы, запустил - и получил экспертизу, которой у меня нет и не было. Без них я бы просто перенёс SPA на Astro и остановился. JSON-LD, E-E-A-T, structured data - всё мимо.
Astro реально хорош для контентных сайтов. Content Layer API, островная архитектура, нулевой JS по умолчанию. React остался только там, где нужна интерактивность - admin panel и пара анимаций. Astro 6 уже в бета, так что стек останется актуальным.
Пока не уверен, как это скажется на реальном органическом трафике. Скоры красивые, но гуглу нужно время на переиндексацию. Посмотрю через месяц и расскажу.