Build a phased SEO roadmap for a domain — quarter-by-quarter, tied to the site's competitive position, content gaps, technical debt, and AI Search readiness. Synthesises the outputs of multiple skills (`seo-technical-audit`, `seo-content-audit`, `seo-keyword-cluster`, `seo-competitor-gap-analysis`, `seo-ai-search-share-of-voice`) into one site-level plan with sequencing, owners, and success metrics. Distinct from `seo-keyword-cluster` (keyword architecture for one topic), `seo-content-brief` (one article), and `seo-keyword-niche` (longtail content tier). Use when the user asks for an "SEO plan", "SEO strategy", "SEO roadmap", "90-day plan", "quarterly SEO plan", "site SEO strategy", or "where do we focus next".
npx skills add https://github.com/seranking/seo-skills --skill seo-plan
> Example output: examples/seo-plan-wix-com-20260514/PLAN.md
Produce a phased SEO roadmap for a domain. Output is a single PLAN.md plus per-phase deliverable folders, each phase scoped to a quarter (or a 90-day sprint), each with explicit goals, work items, owners, and metrics. The plan is grounded in the site's actual competitive position — not a generic checklist.
This is the "what should we work on next quarter" skill. It does not replace specialist skills — it composes them, then sequences their outputs.
seo-firecrawl available for site mapping and head metadata (optional but recommended).us), business type (saas / ecommerce / local / publisher / agency / b2b — auto-detected from the domain if not supplied), planning horizon (default 90 days, options: 30 / 90 / 180 / 365).python3 scripts/google_auth.py --check --json. If tier >= 0, the downstream specialist skills (technical-audit, page, content-audit, drift) will enrich their outputs with real Google field data — and seo-plan ingests those richer outputs in step 4. The plan itself doesn't dispatch seo-google directly; it prints a one-line notice so the user knows the option is on the table: > Google APIs detected (tier {n}, available: {comma-list}). Downstream specialist
> skills (seo-technical-audit, seo-page, seo-content-audit, seo-drift) will enrich
> their outputs with real CrUX / GSC / GA4 / URL Inspection data automatically.
> Google APIs not configured. To enrich downstream phases with real CWV / GSC /
> GA4 / indexation data, run `bash extensions/google/install.sh`. Plan continues
> with SE Ranking data only.
seo-plan doesn't run seo-google itself (transferring friction to a single command is theirs' anti-pattern we critiqued in EVAL_RESULT_v2.md); it surfaces the option so the user can opt in or out before specialist skills run. See skills/seo-google/references/cross-skill-integration.md § "seo-plan" for the full rationale.DATA_getDomainOverviewWorldwide, plus a Firecrawl scrape of the homepage if availablesaas, ecommerce, local, publisher, agency, b2b-services, marketplace. If ambiguous, ask the user once.DATA_getDomainOverviewWorldwide, DATA_getDomainOverviewHistory, DATA_getDomainAuthority, DATA_getBacklinksSummaryDATA_getDomainCompetitorsseo-technical-audit-*seo-content-audit-*seo-competitor-gap-analysis-*seo-ai-search-share-of-voice-*seo-backlinks-profile-*TECH-AUDIT.md, VERDICT.md rollup, GAPS.md, REPORT.md, PROFILE.md respectively).seo-technical-audit → varies by page count for a fresh audit; ~6 Firecrawl credits for the modern-signals step. Cite "varies; check page count" if no recent audit cached.seo-content-audit → ~10–15 SE Ranking credits + 1 Firecrawl credit per audited URL (default cap 50; for the seo-plan top-10-pages scope, expect ~10–15 SE Ranking + ~10 Firecrawl).seo-competitor-gap-analysis → ~30–80 credits for 10 seeds.seo-ai-search-share-of-voice → ~10–20 credits (leaderboard + ~20 prompts × N domains).seo-backlinks-profile → ~25–40 SE Ranking credits. To produce a defensible plan, seo-plan needs outputs from N specialists not yet
run for {domain}:
- seo-technical-audit (~{N} credits)
- seo-content-audit (~{N} credits)
- seo-competitor-gap-analysis (~{N} credits)
- seo-ai-search-share-of-voice (~{N} credits)
- seo-backlinks-profile (~{N} credits)
Total estimated cost: ~{N} credits.
Run them now in this session? (y/N — default N preserves the existing v2.6 behavior of asking the user to run them manually first)
y: dispatch each missing specialist in this order, ingesting each primary deliverable as it completes:seo-technical-audit, seo-competitor-gap-analysis, seo-ai-search-share-of-voice, seo-backlinks-profile.seo-content-audit — its top-10-pages scope depends on knowing the top traffic pages from seo-competitor-gap-analysis / DATA_getDomainKeywords, so it must run after the gap-analysis batch completes.DATA_getCreditBalance preflight and surfaces cost before proceeding (their existing behaviour — seo-plan does not bypass it). If any specialist aborts on a credit-balance check, surface that abort to the user and let them decide whether to top up or skip.N (or anything else — default N): fall through to the existing v2.6 behaviour — the plan opens with Phase 0: Discovery, and running each missing specialist becomes the first sprint's work. This preserves the user's control over credit spend in environments where the specialists should be scheduled or batched separately.seo-technical-audit severity-weighted issue count.seo-local skill yet — flag this as a manual sub-step or external).seo-agency-landing-page).seo-page verdicts.seo-keyword-cluster (1 pillar + 3–7 spokes), schema fixes from seo-schema, comparison page from seo-competitor-pages if competitive frame supports it.seo-geo on top pages, backlink-gap outreach starter from seo-backlink-gap, second drift comparison via seo-drift compare, retro + adjust.seo-content-brief, seo-schema, seo-page, etc.noindex on /blog templates" depends on "run seo-technical-audit."10. Synthesise PLAN.md
Folder seo-plan-{domain-slug}-{YYYYMMDD}/:
seo-plan-{domain-slug}-{YYYYMMDD}/
├── PLAN.md (synthesis — primary deliverable; inlines 01-baseline, 02-competitive-frame, 07-dependencies, 08-metrics as sections)
├── 04-phase-1-foundations.md (load-bearing — owners share single phase files in standups)
├── 05-phase-2-build.md (load-bearing — owners share single phase files)
├── 06-phase-3-compound.md (load-bearing — owners share single phase files)
└── evidence/
├── 01-baseline.md (where you are now — raw data inlined into PLAN.md)
├── 02-competitive-frame.md (who you're actually competing with — raw data inlined into PLAN.md)
├── 03-pillar-scores.md (technical / content / topical / AI Search — scoring math)
├── 07-dependencies-and-critical-path.md (dependency map — inlined as PLAN.md section)
└── 08-metrics.md (metric tables — inlined as PLAN.md section)
Top-level: PLAN.md + the three phase files (04/05/06). Owners share single phase files in standups, so phase files stay top-level rather than collapsing into PLAN.md. The verbatim-duplicate sections (baseline, competitive frame, dependencies, metrics) are inlined into PLAN.md but the raw step files are preserved in evidence/ along with the pillar-scoring math.
PLAN.md follows this shape:
# SEO Plan: {domain}
> Plan dated {YYYY-MM-DD} · Horizon: {n} days · Business type: {type} · Country: {country}
## Where you are
- Organic keywords: {n} (trend: {↑↓→ over 12mo})
- Organic traffic estimate: {n}/mo
- Domain authority: {n}
- Referring domains: {n}
- Pillar scores: Technical {n}/100 · Content {n}/100 · Topical {n}/100 · AI Search {n}/100
## Lead theme
{The lowest pillar from step 5, plus a one-line "why this is the constraint."}
## Top 5 competitors
| Domain | DA | Organic kw | Top cluster they own |
|---|---|---|---|
| {comp} | {n} | {n} | {cluster} |
## Phase 1 — Foundations (weeks 1–4)
**Goal:** {1-line outcome, e.g. "remove technical debt blocking content investment"}
| # | Work item | Skill / source | Owner | Effort | Phase-end metric |
|---|---|---|---|---|---|
| 1.1 | {item} | `seo-technical-audit` follow-up | {role} | {S/M/L} | {metric} |
| 1.2 | ... | | | | |
**Phase exit criteria:** {what must be true to declare Phase 1 done}
## Phase 2 — Build (weeks 5–8)
{same shape}
## Phase 3 — Compound + measure (weeks 9–12)
{same shape}
## Critical path
{Ordered list of work items that block subsequent phases. Anything not on this list is moveable.}
## Metrics
| Metric | Type | Current | Phase 1 target | Phase 2 target | Phase 3 target |
|---|---|---|---|---|---|
| Organic traffic | Lagging | {n} | {n} | {n} | {n} |
| Pages with E-E-A-T ≥ 70 | Leading | {n} | {n} | {n} | {n} |
| Technical issue count | Leading | {n} | {n} | {n} | {n} |
| AI Search citation count | Leading | {n} | {n} | {n} | {n} |
| Referring domains | Leading | {n} | {n} | {n} | {n} |
## Constraints / caveats
{User-supplied constraints, plus anything the data flags — e.g., "DA gap to top competitor is 25 points; expect 6+ months for keyword parity."}
## Recommended next step
Run Phase 1 work items. After week 4, run `seo-drift compare` against the baseline captured today, then adjust Phase 2 scope.
N. If the user just hits Enter (or answers anything other than an explicit y), seo-plan falls through to the v2.6 Phase-0 behaviour and lists the missing specialists as the first sprint's work. This preserves user control over credit spend — important when the user is on a tight SE Ranking budget or wants to schedule specialists separately.y path) is the convenience option. When the user wants a finished plan in one session and is comfortable with the displayed credit estimate, the y path runs the missing specialists in the optimal parallel-then-sequential order described in step 4d, ingests their outputs, and proceeds straight into pillar scoring (step 5). No silent re-execution: every dispatch is gated by the single confirmation in step 4c.DATA_getCreditBalance at its first step and surfaces cost before consuming credits — seo-plan does not bypass that gate. If a specialist aborts on its preflight (insufficient credits, user declines its inner cost prompt), seo-plan surfaces the abort and lets the user choose to top up, skip that specialist (and let it remain a Phase-0 work item), or cancel the rest of the dispatch.<title>, schema @type, and top-nav anchors are usually enough. Ask the user only when truly ambiguous.local, flag that we don't have a seo-local skill yet and recommend manual GBP audit as a Phase 0 item. Don't pretend coverage we don't have.seo-drift compare against the original baseline as input. Drift output rewrites the "Where you are" section; everything downstream updates from there.seo-technical-audit, seo-content-audit, seo-competitor-gap-analysis, seo-ai-search-share-of-voice, seo-backlinks-profile — produce inputs.seo-drift baseline — captures the snapshot the plan measures progress against.seo-keyword-cluster — when Phase 2 calls for a content tier.seo-content-brief — for each spoke article in Phase 2.seo-schema — for structured-data work items.seo-competitor-pages — when comparison content is on the plan.seo-drift compare — at end of phase to measure progress.seo-page — for individual URL keep/refresh/consolidate/kill calls in Phase 1.A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.
Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store
NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.
Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.
Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.
Take seranking/seo-plan from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.