seo-drift
SEO drift monitoring: capture baselines of SEO-critical elements, detect changes, and track regressions over time.
Skill by AgriciDaniel
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/agricidaniel-seo-drift
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: marketing, seo
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/seo-drift
What's inside
- Skill name
seo-drift- Description
- SEO drift monitoring: capture baselines of SEO-critical elements, detect changes, and track regressions over time. Git for SEO: baseline, diff, and track changes to your on-page SEO. Use when user says "SEO drift", "baseline", "track changes", "did anything break", "SEO regression", "compare SEO", "before and after", "monitor SEO changes", or "deployment check".
- License
- MIT
- Metadata
- author: AgriciDaniel · version: 2.5.0 · category: seo · original_author: Dan Colta (Pro Hub Challenge)
- Instructions
- 208 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- comparison-rules.md · references/
SKILL.md (first lines)
# SEO Drift Monitor (April 2026)
Git for your SEO. Capture baselines, detect regressions, track changes over time.
---
## Commands
| Command | Purpose |
|---------|---------|
| `/seo drift baseline <url>` | Capture current SEO state as a "known good" snapshot |
| `/seo drift compare <url>` | Compare current page state to stored baseline |
| `/seo drift history <url>` | Show change history and past comparisons |
---
## What It Captures
Every baseline records these SEO-critical elements:
| Element | Field | Source |
|---------|-------|--------|
| Title tag | `title` | `parse_html.py` |
| Meta description | `meta_description` | `parse_html.py` |
| Canonical URL | `canonical` | `parse_html.py` |
| Robots directives | `meta_robots` | `parse_html.py` |
| H1 headings | `h1` (array) | `parse_html.py` |
| H2 headings | `h2` (array) | `parse_html.py` |
| H3 headings | `h3` (array) | `parse_html.py` |
| JSON-LD schema | `schema` (array) | `parse_html.py` |
| Open Graph tags | `open_graph` (dict) | `parse_html.py` |
| Core Web Vitals | `cwv` (dict) | `pagespeed_check.py` |
| HTTP status code | `status_code` | `fetch_page.py` |
| HTML content hash | `html_hash` (SHA-256) | Computed |
| Schema content hash | `schema_hash` (SHA-256) | Computed |
---
## How Comparison Works
The comparison engine applies **17 rules across 3 severity levels**. Load
`references/comparison-rules.md` for the full rule set with thresholds,
recommended actions, and cross-skill references.
### Severity Levels
| Level | Meaning | Response Time |
|-------|---------|---------------|
| **CRITICAL** | SEO-breaking change, likely traffic loss | Immediate |
| **WARNING** | Potential impact, needs investigation | Within 1 week |
| **INFO** | Awareness only, may be intentional | Review at convenience |
---
## Storage
All data is stored locally in SQLite:
```
~/.cache/claude-seo/drift/baselines.db
```
### Tables
- **baselines**: Captured snapshots with all SEO elements
- **comparisons**: Diff results with triggered rules and severities
URL normalization ensures consistent matching: lowercase scheme/host, strip
default ports (80/443), sort query parameters, remove UTM parameters, strip
trailing slashes.
---
## Command: `baseline`
Captures the current state of a page and stores it.
**Steps:**
1. Validate URL (SSRF protection via `google_auth.validate_url()`)
2. Fetch page via `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run fetch_page.py <URL>`
3. Parse HTML via `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run parse_html.py <URL>`
4. Optionally fetch CWV via `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run pagespeed_check.py <URL>` (use `--skip-cwv` to skip)
5. Hash HTML body and schema content (SHA-256)
6. Store snapshot in SQLite
**Execution:**
```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_baseline.py <url>
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_baseline.py <url> --skip-cwv
```
**Output:** JSON with baseline ID, timestamp, URL, and summary of captured elements.
---
## Command: `compare`
Fetches the current page state and diffs it against the most recent baseline.
**Steps:**
1. Validate URL
2. Load most recent baseline from SQLite (or specific `--baseline-id`)
3. Fetch and parse current page state
4. Run all 17 comparison rules
5. Classify findings by severity
6. Store comparison result
7. Output JSON diff report
**Execution:**
```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_compare.py <url>
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_compare.py <url> --baseline-id 5
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run drift_compare.py <url> --skip-cwv
```
**Output:** JSON with all triggered rules, old/new values, severity, and actions.
After comparison, offer to generate an HTML report:
```bashFrom AgriciDaniel/claude-seo, MIT.
More from AgriciDaniel/claude-seo
- 0.869score
seo-content-brief
puneetindersingh
Generate competitive SEO content briefs with per-section word counts, competitor scoring, keyword placement guidance, and page-type templates.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-technical
AgriciDaniel
Audit technical SEO across crawlability, indexability, security, URLs, mobile, Core Web Vitals, rendering, structured data, and IndexNow.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-hreflang
AgriciDaniel
Hreflang and international SEO audit, validation, and generation.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-geo
AgriciDaniel
Audit and improve content for AI Overviews and answer engines, including citability, entity clarity, crawler access, brand signals, and passage structure.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-flow
AgriciDaniel
FLOW framework integration: evidence-led SEO using the Find → Leverage → Optimize → Win loop.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-dataforseo
AgriciDaniel
Live SEO data via DataForSEO MCP server: SERP analysis, keyword research (volume, difficulty, intent, trends), backlink profiles, on-page analysis, competitor…
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-sxo
AgriciDaniel
Diagnose search-experience and intent mismatches using SERP page types, user stories, and persona scoring.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo
AgriciDaniel
Comprehensive SEO analysis for any website or business type.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-agentic
AgriciDaniel
Audit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF…
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-google
AgriciDaniel
Google SEO APIs: Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3…
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.850score
seo-schema
AgriciDaniel
Detect, validate, or generate Schema.org JSON-LD for a supplied page or entity.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.850score
seo-ecommerce
AgriciDaniel
Analyze ecommerce SEO across product pages, product schema, Shopping visibility, marketplace signals, and keyword gaps.
SkillAFreshness: A★ 20.1KClaude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 20,063
- Forks
- 2,895
- Open issues
- 24
- Last commit (this folder)
- Oct 22, 2026 (4 days ago)
- Last release
- Oct 22, 2026 (4 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 2.5.0
- License
- MIT
- Repository
- github.com/AgriciDaniel/claude-seo
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from AgriciDaniel
- 0.853score
seo-technical
AgriciDaniel
Audit technical SEO across crawlability, indexability, security, URLs, mobile, Core Web Vitals, rendering, structured data, and IndexNow.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-hreflang
AgriciDaniel
Hreflang and international SEO audit, validation, and generation.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-agentic
AgriciDaniel
Audit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF…
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-sxo
AgriciDaniel
Diagnose search-experience and intent mismatches using SERP page types, user stories, and persona scoring.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo
AgriciDaniel
Comprehensive SEO analysis for any website or business type.
SkillAFreshness: A★ 20.1KClaude Code +9 - 0.853score
seo-google
AgriciDaniel
Google SEO APIs: Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3…
SkillAFreshness: A★ 20.1KClaude Code +9
Cite this page
seo-drift skill. Agent Mart. https://agentmart.dev/skills/agricidaniel-seo-drift (last updated 2026-10-24)