Skip to content
Back to skills

Seo Monitoring

ASecurity

Мониторинг (Phase 9): ежедневный pulse (GSC + Я.Вебмастер) в единую схему snapshot.json; GA4/PSI/Метрика Stats (`ga4-fetch`/`psi-fetch`/`metrika-fetch`) — отдельными командами в тот же snapshot через `snapshot-build.py --merge`; Метрика Logs cohorts (`cohorts`) — отдельный офлайн-отчёт вне snapshot. Ни одно из них не часть pulse. Потерянные ключи, AI-visibility (GEO), конкурентный бенчмарк. Используй когда просят «сними позиции», «что с трафиком», «обнови мониторинг» — отдельно или как стадию...

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsgoapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add turvodnik/seo-cycle --skill seo-monitoring --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Seo Monitoring?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Seo Monitoring
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/turvodnik-seo-monitoring/badge)](https://www.skillsdirectory.com/skills/turvodnik-seo-monitoring)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: seo-monitoring
description: Мониторинг (Phase 9): ежедневный pulse (GSC + Я.Вебмастер) в единую схему snapshot.json; GA4/PSI/Метрика Stats (`ga4-fetch`/`psi-fetch`/`metrika-fetch`) — отдельными командами в тот же snapshot через `snapshot-build.py --merge`; Метрика Logs cohorts (`cohorts`) — отдельный офлайн-отчёт вне snapshot. Ни одно из них не часть pulse. Потерянные ключи, AI-visibility (GEO), конкурентный бенчмарк. Используй когда просят «сними позиции», «что с трафиком», «обнови мониторинг» — отдельно или как стадию цикла.
---

# Monitoring — снапшоты позиций и поведения

Модуль seo-cycle v2 · **Фазы: 9** · запуск **отдельно** или **стадией конвейера**.

## Контракт модуля

- **Входы:** API-токены источников (Keychain через ai-secret), машинный реестр проектов (`~/.seo-cycle/projects-registry.yaml` по умолчанию) для `pulse --global`
- **Конвейер:** `_state.json` цикла (`scripts/cycle-state.py`) — предыдущая фаза `done`; **standalone:** state нет → `seo-cycle cycle init --topic "<тема>"`, работай по этому файлу, state обнови на выходе.
- **Выходы:** `seo/monitoring/webmaster-snapshot-<дата>.json` (пишет `pulse`; каталог — `monitoring.path` в `seo-cycle.yaml`, дефолт `seo/monitoring`; оттуда же читают `doctor`/`status`) + markdown-отчёт; `seo.db` через `db-sync`
- **Gate:** freshness: снапшоту < 3 дней (warn) / < 7 дней (error) — проверяется в `doctor`
- **Делегаты:** `delegate.google_data` (`claude-seo:seo-google`), `delegate.yandex_specialist`
- **Общие правила:** `../_shared/policy-intake.md` (политики/бюджеты проекта — прочитать до платных действий), `../_shared/scorecard.md` (самооценка после задачи), `../_shared/rag-usage.md` (переиспользуй накопленное).

---

## Phase 9 — Monitoring

**Цель:** регулярные снапшоты позиций / трафика / поведения.

**Делегировать:**
- `delegate.google_data` (`claude-seo:seo-google`) — GSC + GA4 + CrUX (если включено)
- `delegate.yandex_specialist` — Я.Вебмастер + Метрика (если включено)

**Cadence (единая, v2):** позиции собираются **ежедневно** — `seo-cycle pulse` (или `pulse --global` daily-джобом): fetch (GSC + Я.Вебмастер, только эти два источника — `scripts/pulse.py`) → snapshot → db-sync → position-progress + алерты. GA4, PSI (CWV) и Метрика Stats (посещения/behavior по URL) в `pulse` не входят — это отдельные команды (`seo-cycle run script ga4-fetch`, `seo-cycle run script psi-fetch`, `seo-cycle run script metrika-fetch`), совместимые с `snapshot-build.py --source ga4|psi|metrika --merge` (пишут в тот же `snapshot.json`, но отдельным шагом и по своему расписанию). Только Метрика Logs cohorts (`seo-cycle cohorts`, когортный анализ по TSV из `metrika-logs-fetch.py` — другой API той же Метрики) в snapshot вообще не пишет — это самостоятельный офлайн-отчёт. **Раз в 2 недели** поверх ежедневных снапшотов строится человеческий отчёт по `templates/monitoring-report.template.md`. Свежесть снапшота проверяет `seo-cycle doctor` (warn ≥3 дн., fail ≥7 дн.). Важно: Вебмастер-выгрузка — это `query_sample` (обычно топ-500 запросов, `sitewide: false`); все производные цифры (forecast, KPI, триггеры) наследуют этот потолок.

**Граница выборки (T-096).** Срез — это топ-N запросов **по показам** (`monitoring.sample.size`, дефолт 500), а не сайт: у gsse.ru 500 из ~2400 запросов ловят ~13 % кликов. Поэтому каждый отчёт (`pulse`, `position-progress`, `kpi-contract`, `seo-forecast`) печатает строку «выборка N из M запросов сайта» (M — из сводки источника; GSC и старые снапшоты его не отдают → «M неизвестно»), дельты топ-3/10/30 и алерт `top10_drop` считаются **только по пересечению** двух срезов, а запрос, выпавший из топ-N, помечается «выбыл из выборки», а не «потеря». Сырая разница составов печатается отдельно и подписана. Факты KPI (`monthly_organic_clicks`, `keywords_in_top10`) — «по выборке топ-N»; полная выгрузка сайта по умолчанию не делается (отдельное решение).

**Локальный мониторинг (если локальный бизнес):** раз в месяц снимать прогресс vs конкуренты на обеих картах — скорость отзывов (`review-velocity.py`), новые категории/рубрики, частота постов, прирост фото. Промпты — `prompts/local/`. Отставание → задача в Phase 10.

**Потерянные ключи:** сравнить текущий снапшот с прошлым — `scripts/lost-keywords.py --old <prev> --new <cur>` (выпавшие/просевшие ключи → refresh + перелинковка).

**AI-visibility (GEO):** свод присутствия в Яндекс Нейро / Google AI Overviews / ChatGPT / Perplexity — промпт `prompts/ai-visibility.md` (+ плагины `seo-geo`/`seo-seranking`).

**Медианный бенчмарк по конкурентам:** `scripts/competitor-benchmark.py` — где мы ниже медианы топ-N (ключи/бэклинки/отзывы/посты/фото) → приоритеты в roadmap (ICE).

**Реклама + соцсети:** разведка платной выдачи и соцактивности конкурентов + генерация объявлений/постов (Директ/VK/TG/Дзен) — промпт `prompts/ad-and-social.md`.

**Pipeline (observability hub):**

```
delegate(claude-seo:seo-google) → GSC/GA4 JSON ┐
delegate(yandex-seo-specialist) → Webmaster/   ├→ snapshot-build.py --source X
  Metrika данные                               │   (нормализация в единую schema)
psi-fetch.py URL → PSI JSON                    ┘                  ↓
                                                    seo/monitoring/YYYY-MM-DD-snapshot.json (--output)
```

**Единая schema `snapshot.json`:** см. `scripts/snapshot-build.py --help`. Поля: `queries[]`, `pages[]`, `cwv{}`, `behavior{}`, `sources[]`. Скрипт умеет мердж нескольких источников в один snapshot через `--merge`.

**Что собирать:**
- Топ-100 запросов: impressions, clicks, CTR, position, дельты
- Топ-страниц: то же + behavior (bounce, time, conversions)
- CWV per URL (PSI) с статусом good/needs_improvement/poor
- Изменения vs прошлый снапшот
- Сезонные сравнения (если есть данные за прошлый период)

**Выход:** `seo/monitoring/YYYY-MM-DD-snapshot.json` (в `snapshot-build.py` каталог задавай `--output` явно — `doctor`/`status` ищут снапшоты только в `monitoring.path`) + `*.md` отчёт по шаблону.

Files in this skill

  • SKILL.md8.2 KB
  • prompts/ad-and-social.md3.6 KB
  • prompts/ai-visibility.md3.3 KB
  • prompts/serp-news.md3.3 KB
  • templates/monitoring-report.template.md4.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.