Назад к списку

Claude Code для SEO: автоматизированный анализ сайта через Google Search Console и Analytics

aiclaudeseoproductivity
Claude Code для SEO: автоматизированный анализ сайта через Google Search Console и Analytics

У любого сайта, который вы хоть немного пытаетесь продвигать и оптимизировать, рано или поздно появляется ритуал: раз в неделю открыть Google Search Console, посмотреть позиции, перейти в Google Analytics, свериться по трафику, записать цифры куда-нибудь в табличку, сравнить с прошлой неделей и подумать, что бы такого сделать. Если делать это руками — это полчаса кликов по дашбордам и переключений между вкладками. Если не делать — довольно быстро теряешь ощущение, что вообще происходит с сайтом.

Я долго жил с ручным вариантом, потом сдался и собрал slash-команду /seo-refresh для Claude Code. Теперь весь ритуал — это одна строчка в чате. Claude сам ходит в GSC и GA, сам обновляет лог метрик, сам показывает сравнение с прошлым замером и сам подсвечивает, куда смотреть в первую очередь.

Покажу, как это устроено, зачем оно мне и почему это команда, а не skill.

Что вообще происходит при запуске

Я пишу в чате /seo-refresh. Claude:

  1. Тянет данные из Google Search Console за последние 3 месяца — общие показы, клики, среднюю позицию, позиции по ключевым запросам и по каждой статье блога.
  2. Тянет данные из Google Analytics за последние 28 дней — уникальных пользователей и разбивку по источникам (Google, Facebook, Direct, Instagram).
  3. Открывает файл marketing/metrics-log.md, добавляет новую строку в каждую из трёх таблиц.
  4. Показывает мне короткое сравнение: что выросло, что упало, какие позиции сдвинулись больше чем на 5 строк, какие источники просели.

Весь процесс занимает секунд 30. И главное — у меня всегда есть исторический лог, по которому можно посмотреть динамику за любой период, а не только «как дела сегодня».

Почему это команда, а не skill

В Claude Code есть две штуки, которые внешне похожи: skills и slash-команды. Я уже писал про skills как про «шпаргалку, которая подгружается в контекст, когда нужно». Команда работает иначе. Команда — это именованный промпт, который вы запускаете явно. Никакой магии с авто-активацией: вы набираете /seo-refresh — команда запускается, не набираете — не запускается.

Для моего случая это идеально. Я не хочу, чтобы Claude когда-нибудь сам решил пойти в Search Console «просто уточнить». Я хочу нажать кнопку «собери мне отчёт», получить отчёт и закрыть вкладку. Явный запуск — явный результат.

Плюс команда живёт внутри проекта (.claude/commands/seo-refresh.md), а не в системных скиллах. Она привязана к конкретному сайту, знает его Search Console ID, GA property_id, список статей, за которыми я слежу, и список запросов, которые мне важны. Другой сайт — другая команда с другими ID. Никакого смешивания.

Откуда Claude берёт данные

Вся магия держится на двух MCP-серверах:

  • gsc MCP — даёт доступ к Google Search Console API. Через него Claude делает запрос search_analytics с нужным сайтом, окном дат и группировкой по страницам или запросам.
  • analytics-mcp — даёт доступ к Google Analytics Data API. Через него Claude забирает уникальных пользователей в разбивке по sessionSource.

Один раз настроил оба сервера — и дальше Claude умеет с ними работать из любой сессии. Настройка простая: claude mcp add для каждого сервера, OAuth-авторизация в браузере, готово. Это, кстати, отдельная приятная часть истории — раньше для подобной автоматизации пришлось бы писать скрипт на Python, возиться с service account, JSON-ключами, квотами. Здесь вы просто один раз даёте Claude доступ и он ведёт себя как обычный человек с открытой консолью GSC.

Как выглядит файл команды

Сама команда — это Markdown-файл с YAML-заголовком, лежащий в .claude/commands/seo-refresh.md:

--- description: Pull fresh SEO & traffic metrics from GSC + GA and update metrics-log.md --- # SEO Metrics Refresh Pull fresh data from Google Search Console and Google Analytics, then update `marketing/metrics-log.md` with a new row. ## Data Sources & IDs - **Google Search Console**: site = `sc-domain:hior.ru` - **Google Analytics**: property_id = `520460441` - **Metrics file**: `marketing/metrics-log.md` ## Step 1: Pull GSC data (3-month window) Use `mcp__gsc__search_analytics` with `siteUrl: "sc-domain:hior.ru"`. Start date = 3 months ago, end date = today. Run these 3 queries in parallel: 1. Overall totals (no dimensions) — impressions, clicks, avg position 2. By page (dimensions: page) — indexed page count and article positions 3. By query (dimensions: query, rowLimit: 20) — top query positions ...

Дальше идут такие же детальные шаги 2, 3 и 4 — пулл данных из GA, обновление лог-файла, вывод сравнения. Ничего умного: чистый рецепт, по которому Claude идёт сверху вниз. Чем конкретнее описаны шаги, тем меньше шансов, что он отвлечётся на «а давай-ка я ещё вот что посмотрю».

Ключевой приём — сказать Claude запустить три GSC-запроса параллельно, а не последовательно. Это экономит секунд 10, но из мелочей вроде этой и складывается ощущение «быстро».

Что получается на выходе

После отработки команды в metrics-log.md появляется новая строка в каждой из трёх таблиц. Первая — общий трафик и индексация:

| Date | Indexed | GSC Impr | GSC Clicks | Avg Pos | GA Users | Google | FB | Direct | | 2026-04-10 | 27 | 12937 | 187 | 8.1 | 217 | 115 | 2 | 96 | | 2026-04-11 | 27 | 13217 | 192 | 8.1 | 221 | 114 | 2 | 101 |

Вторая — позиции по статьям блога в формате позиция (N показов). Третья — позиции по ключевым запросам. Плюс в чате Claude выводит человеческое саммари: «Показы +280, клики +5, позиции стабильны, трафик с Google чуть просел, зато Direct +5 — надо посмотреть, откуда». То есть не просто обновляет файл, а ещё и думает вслух над цифрами.

Бонус: цепочка в контент

Самое интересное начинается, когда команда отработала. Лог метрик — это уже контекст внутри сессии. Можно сразу написать: «посмотри, какие запросы с высокими показами, но средней позицией 10-15, и предложи, как обновить соответствующие страницы, чтобы подтянуть позиции». Claude пройдётся по данным, которые только что собрал, откроет нужные страницы в репозитории, посмотрит на метатеги и предложит правки.

И вот это уже перестаёт быть «отчёт по SEO» и становится «подумали над SEO, поправили, задеплоили». Вся цепочка — в одной сессии, без переключения между браузером, редактором и терминалом.

Когда стоит делать такую команду

Правило примерно такое: если вы замечаете, что раз за разом просите Claude об одной и той же задаче с одними и теми же деталями (какие ID, какие файлы, какие конкретно запросы), — это кандидат на команду. Если задача разная каждый раз, а общее только направление — это скорее skill.

Для SEO это идеальный кейс, потому что все параметры стабильны: сайт один, property_id один, список запросов меняется раз в полгода, файл логов всегда тот же. Одна команда покрывает всё.

Итого

/seo-refresh — это не сложная автоматизация, а просто записанный рецепт из десяти шагов, который раньше я проделывал кликами по дашбордам. Вся инфраструктура уже есть: MCP-серверы GSC и GA решают самую противную часть — авторизацию и API, а slash-команды в Claude Code решают вторую часть — явный запуск и повторяемость.

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

© 2026 Ivan Bezdenezhnykh. Все права защищены.