seo-drift
Compare two SEO snapshots (GSC / GSC AI Performance / rank tracker / AEO probe) and surface top movers per metric with auto-classification — growth / decline / reshuffle / stable / new / lost
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/indranilbanerjee/digital-marketing-pro/HEAD/commands/seo-drift.md -o ~/.claude/commands/seo-drift.mdseo-drift.md
# SEO Drift
> If you see unfamiliar placeholders or need to check which data sources are connected, see [CONNECTORS.md](../CONNECTORS.md).
Takes two snapshots of SEO performance data — separated by weeks, a Core Update, a content refresh, or an algorithm change — and produces a structured drift report. Works with classic GSC exports, the new GSC AI Performance Report (3 Jun 2026), rank-tracker exports, and `aeo-audit` probe results. Routes to `skills/seo-drift/SKILL.md`.
## Trigger
User runs `/digital-marketing-pro:seo-drift` or asks for:
- "Compare this month vs last month"
- "What changed since the Core Update?"
- "Track AI Mode citation drift"
- "Before/after for the content refresh"
- "Site migration impact audit"
## Inputs
1. **Baseline CSV** — older snapshot
2. **Current CSV** — newer snapshot
3. **Source type** — auto-detected via columns (GSC / GSC AI / rank tracker / AEO probe). Both snapshots must be from same source.
4. **Noise threshold** (optional) — default 5%, below which moves are classified `stable`. YMYL industries should use 10% to filter out Quality Rater Guidelines volatility.
## Process
1. Load brand context
2. Place baseline + current CSV exports into the dated output folder
3. Run `scripts/seo_drift.py` to compute per-row deltas + classifications
4. Validate the four quality gates (date_range_distinct / sample_size / metric_compatibility / no_lookup_collisions)
5. Narrative analysis of top 10 gainers (cause hypotheses → amplification candidates)
6. Triage matrix for top 10 losers (`is_yMYL × had_recent_change × Core_Update_window` → action)
7. If source is GSC AI Performance Report: cross-reference AI Mode citation losses with `/digital-marketing-pro:aeo-audit`
8. Classification distribution analysis (high reshuffle = AI Mode intent reweighting)
9. Write `PLAN.md` to `${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-drift/{date}/`
## Output
Numbered intermediate files under `${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-drift/{YYYY-MM-DD}/`:
- `00-input.md`, `01-baseline.csv`, `02-current.csv`
- `03-drift-run.json` (raw script output), `04-quality-scorecard.md`
- `05-biggest-gainers.md`, `05-biggest-losers.md`
- `06-ai-mode-shift.md` (only when source is GSC AI Performance Report)
- `07-classification-distribution.md`
- `PLAN.md` (the deliverable)
## After the drift
Branch by finding:
- **High decline (>40% of rows)**: "Likely Core Update or competitor catch-up. Run `/digital-marketing-pro:seo-audit` for diagnosis."
- **High reshuffle (>20% of rows)**: "Likely intent shift (AI Mode reweighting). Run `/digital-marketing-pro:aeo-geo` to align with new intent patterns."
- **High growth (>30% of rows)**: "Find amplification opportunities. Run `/digital-marketing-pro:content-engine` to brief follow-ups."
- **High new (>15% of rows)**: "New SERP coverage — track and validate intent fit."
For the full skill spec including classification rules, position-delta inversion, and Core Update timing guidance, see [skills/seo-drift/SKILL.md](../skills/seo-drift/SKILL.md).Invoke when the user needs to manage multiple client brands, view portfolio-level dashboards, generate client reports, manage SOPs, switch credential profiles, assign team tasks, configure regions, or generate executive summaries. Triggers on requests involving multi-client management, agency workflows, client onboarding, or portfolio oversight.
Invoke when the user needs help with marketing measurement, KPI definition, dashboard design, attribution modeling, performance analysis, anomaly detection, competitive benchmarking, or translating data into marketing decisions. Triggers on requests involving metrics, reporting, analytics setup, or data interpretation.
Invoke when marketing content needs quality control review — brand voice consistency checks, regulatory compliance verification (GDPR, CAN-SPAM, CCPA, HIPAA, FTC, industry-specific), accessibility auditing (WCAG 2.1), inclusive language review, or brand safety assessment. Automatically invoked as a final review step before any content is published or delivered.
Invoke when the user needs competitor analysis — content strategy teardowns, SEO gap analysis, paid ad analysis from ad libraries, social media benchmarking, AI visibility comparisons, pricing and positioning research, or market landscape mapping. Triggers on requests mentioning competitors, competitive gaps, market analysis, or benchmarking.
Use when the task requires ongoing competitive monitoring, competitor change detection, share of voice tracking, competitive alerts, ad monitoring, price monitoring, win/loss analysis, or competitive narrative mapping.
Invoke when the user needs any form of marketing content created or refined — blog posts, ad copy, email campaigns, social media posts, landing page copy, press releases, video scripts, product descriptions, or newsletter content. Triggers on requests to write, draft, rewrite, or improve marketing copy.
Invoke when the user needs to manage CRM operations — creating contacts, importing leads, updating deals, syncing campaign data, segmenting audiences, managing pipelines, or connecting marketing data to Salesforce, HubSpot, Zoho, or Pipedrive. Triggers on requests involving CRM data, lead management, pipeline updates, or sales-marketing alignment.
Invoke when the user needs help with conversion rate optimization — landing page audits, A/B test design, form optimization, pricing page strategy, checkout flow improvement, personalization, statistical significance calculations, page speed impact analysis, or mobile conversion optimization. Triggers on requests involving conversions, landing pages, A/B testing, or optimization experiments.