
Seo Drift
Compare a stored SEO baseline against the live page and flag critical drift (schema, canonical, noindex) before rankings slip.
Overview
seo-drift is an agent skill most often used in Launch (also Grow, Operate) that compares baseline SEO signals to the current page and flags critical drift such as removed schema or added noindex.
Install
npx skills add https://github.com/agricidaniel/claude-seo --skill seo-driftWhat is this skill?
- 17 drift rules across 3 severity levels (CRITICAL, and additional tiers in the full skill)
- CRITICAL checks include schema/JSON-LD removal, canonical change or removal, and unintended noindex
- Each rule defines compare logic, thresholds, remediation actions, and cross-refs to related SEO commands
- Designed for baseline-vs-current audits that catch traffic-loss changes within days
- 17 rules across 3 severity levels
- CRITICAL tier includes schema removal, canonical change/removal, and noindex added
Adoption & trust: 1.2k installs on skills.sh; 8.5k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You shipped a CMS or template change and do not know whether canonicals, robots, or JSON-LD silently regressed since your last audit.
Who is it for?
Solo founders running content or SaaS marketing sites who store crawl snapshots and want agent-guided regressions after every release.
Skip if: Brand-new sites with no baseline yet, or teams that only need keyword research without technical HTML comparison.
When should I use this skill?
You have a stored SEO baseline and need to compare the current fetched page state for regressions before traffic drops.
What do I get? / Deliverables
You get severity-ranked drift findings with concrete restore-or-verify actions so indexation and rich results are not lost to accidental deploys.
- Severity-ranked drift report with rule IDs and recommended actions
- Cross-references to follow-up technical or schema audits on affected URLs
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Launch is when pages first earn indexation and rich results; drift detection belongs on the SEO shelf even though monitoring continues later. Technical and on-page SEO element comparison (canonical, robots, JSON-LD) is core SEO subphase work for solo sites and marketing pages.
Where it fits
Re-run drift after shipping a new landing template to ensure Organization schema did not disappear.
Compare last month's blog baseline before a bulk internal-link rewrite changes canonicals.
Weekly agent job flags CRITICAL noindex on a money page after a plugin update.
How it compares
Use alongside dedicated technical and schema audit skills rather than treating drift rules as a full replacement for first-time SEO setup.
Common Questions / FAQ
Who is seo-drift for?
Indie builders and small teams responsible for their own SEO who maintain baselines and need post-deploy comparison, not one-off keyword brainstorming.
When should I use seo-drift?
After Launch deploys to marketing pages, during Grow content refreshes, and in Operate monitoring when you suspect CMS or A/B tests altered head tags or structured data.
Is seo-drift safe to install?
The skill defines read/compare logic; any live fetches depend on your agent setup—confirm permissions and read the Security Audits panel on this page before use.
SKILL.md
READMESKILL.md - Seo Drift
# SEO Drift Comparison Rules 17 rules across 3 severity levels. Each rule compares a specific SEO element between the stored baseline and the current page state. --- ## CRITICAL (Immediate Action Required) These changes typically cause measurable traffic loss within days. ### Rule 1: Schema/JSON-LD Completely Removed - **Compare**: Baseline `schema` array has items, current is empty - **Threshold**: Any schema present before, none now - **Action**: Restore structured data immediately. Rich results will be lost within hours. - **Cross-ref**: `/seo schema <url>` ### Rule 2: Canonical URL Changed - **Compare**: Baseline `canonical` vs current `canonical` - **Threshold**: Different non-null values (after normalization) - **Action**: Verify the new canonical is intentional. Incorrect canonicals redirect ranking signals to wrong page. - **Cross-ref**: `/seo technical <url>` ### Rule 3: Canonical URL Removed - **Compare**: Baseline `canonical` was set, current is `null` - **Threshold**: Had value, now missing - **Action**: Restore canonical tag. Google will guess, often incorrectly for pages with query parameters. - **Cross-ref**: `/seo technical <url>` ### Rule 4: Noindex Directive Added - **Compare**: Baseline `meta_robots` did not contain "noindex", current does - **Threshold**: "noindex" substring now present (case-insensitive) - **Action**: If unintentional, remove immediately. Page will be dropped from index within days. - **Cross-ref**: `/seo technical <url>` ### Rule 5: H1 Tag Removed Entirely - **Compare**: Baseline `h1` had entries, current is empty - **Threshold**: One or more H1s before, zero now - **Action**: Restore H1 heading. Primary page topic signal for search engines. - **Cross-ref**: `/seo content <url>` ### Rule 6: H1 Text Changed Significantly - **Compare**: First H1 in baseline vs first H1 in current, SequenceMatcher ratio - **Threshold**: Similarity ratio < 0.5 (>50% different) - **Action**: Verify the H1 change aligns with target keyword strategy. - **Cross-ref**: `/seo content <url>` ### Rule 7: Title Tag Removed Entirely - **Compare**: Baseline `title` was set, current is `null` or empty - **Threshold**: Had value, now missing - **Action**: Restore title tag immediately. Google will auto-generate one, often poorly. - **Cross-ref**: `/seo page <url>` ### Rule 8: HTTP Status Code Changed to Error - **Compare**: Baseline `status_code` was 2xx, current is 4xx or 5xx - **Threshold**: Status code class changed from success to client/server error - **Action**: Investigate server error or missing page. Rankings will drop within days. - **Cross-ref**: `/seo technical <url>` --- ## WARNING (Investigate Within 1 Week) These changes may impact rankings or CTR but are sometimes intentional. ### Rule 9: Title Text Changed - **Compare**: Baseline `title` vs current `title` (trimmed) - **Threshold**: Strings differ (case-sensitive, whitespace-normalized) - **Action**: Verify new title includes target keywords. Monitor CTR in GSC over 2 weeks. - **Cross-ref**: `/seo page <url>` ### Rule 10: Meta Description Changed - **Compare**: Baseline `meta_description` vs current `meta_description` - **Threshold**: Strings differ (trimmed) - **Action**: Verify new description includes call-to-action and target keywords. Monitor CTR. - **Cross-ref**: `/seo page <url>` ### Rule 11: Core Web Vitals Metric Regressed >20% - **Compare**: Each CWV metric p75 value (LCP, INP, CLS) baseline vs current - **Threshold**: Current value is >20% worse than baseline (higher for LCP/INP, higher for CLS) - **Action**: Investigate performance regression. Check recent code changes or third-party scripts. - **Cross-ref**: `/seo technical <url>` ### Rule 12: CWV Performance Score Dropped 10+ Points - **Compare**: Lighthouse performance score baseline vs current - **Threshold**: Drop of 10 or more points (e.g., 85 to 74) - **Action**: Run full PageSpeed analysis to identify new bottlenecks. - **Cross-ref**: `/seo google psi <url>` ### Rul