Skip to content
Marketing
Skill

/seo-plan

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`,

From plugin
seo-skills
19232 skills1 MCP

Claude Code

$ npx -y skills add seranking/seo-skills --skill seo-plan --agent claude-code

SKILL.md

seo-plan.SKILL.md
name: seo-plan
description: 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".

> Example output: [examples/seo-plan-wix-com-20260514/PLAN.md](../../examples/seo-plan-wix-com-20260514/PLAN.md)

SEO Plan

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.

Prerequisites

  • SE Ranking MCP server connected.
  • `seo-firecrawl` available for site mapping and head metadata (optional but recommended).
  • User provides:
  • Target domain.
  • Optionally: target country (default `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).
  • Optionally: known constraints (engineering capacity, content budget, no JS-render changes allowed, etc.).

Process

0. **Google data availability check (advisory, not blocking)**

  • Run `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.
  • If creds are missing, the plan continues with SE Ranking-only data and prints:
   > 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.
  • This is the **lightest possible auto-spawn** — `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.

1. **Detect business type** `DATA_getDomainOverviewWorldwide`, plus a Firecrawl `scrape` of the homepage if available

  • Inspect title, H1, JSON-LD types, primary nav patterns.
  • Classify as one of: `saas`, `ecommerce`, `local`, `publisher`, `agency`, `b2b-services`, `marketplace`. If ambiguous, ask the user once.
  • Business type drives template selection (see step 6).

2. **Domain baseline** `DATA_getDomainOverviewWorldwide`, `DATA_getDomainOverviewHistory`, `DATA_getDomainAuthority`, `DATA_getBacklinksSummary`

  • Capture: organic keywords, organic traffic estimate, DA, backlink profile health, top countries, traffic trend over the last 12 months.
  • This sets the "where you are now" anchor.

3. **Competitive frame** `DATA_getDomainCompetitors`

  • Pull top 5–10 organic competitors.
  • For each: organic keywords, traffic share, DA, top topical clusters they own.
  • Identifies who the user is *actually* competing with on the SERP (often different from who they think).

4. **Pull specialist inputs — confirm-then-dispatch pattern**

  • **4a. Detect existing outputs.** In the current working directory, look for any folder matching the patterns below dated within the last 30 days (treat folders older than 30 days as stale and re-list them as missing):
  • `seo-technical-audit-*`
  • `seo-content-audit-*`
  • `seo-competitor-gap-analysis-*`
  • `seo-ai-search-share-of-voice-*`
  • `seo-backlinks-profile-*`
  • For each present folder, ingest its primary deliverable (`TECH-AUDIT.md`, `VERDICT.md` rollup, `GAPS.md`, `REPORT.md`, `PROFILE.md` respectively).
  • **4b. Build the missing list.** For each prerequisite that did not have a fresh output, look up its credit-cost figure from the specialist's own SKILL.md (read those when forming the prompt — figures may drift):
  • `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.
  • **4c. Print the confirmation prompt** (single block, exactly this shape, with the missing-list filtered to only what is actually missing):
   To produce a defensible plan, seo-plan needs outputs from N specialists not yet
   run for {domain}:
   - seo-technical-audit (~{N} credits)
   - se
Read more
@seranking
Ships withseo-skills

Production-ready Claude Agent Skills for SEO, powered by the SE Ranking remote MCP.

19232 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
192
Star history of seranking/seo-skills on GitHub, a chart by star-history.com

Other skills on seo-skills.

seo-ads

seo-ads

Paid-search competitive landscape for a domain or keyword. Pulls SE Ranking's PPC data — domain ad keyword footprint, ad copy…

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag2w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about seo-plan.

Which coding agents can use seo-plan?
seo-plan installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.