{"id":"dd37b69a-a22c-4fbf-9c52-3068e8fefa3c","shortId":"xtZuYX","kind":"skill","title":"seo-plan","tagline":"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-compet","description":"# SEO Plan\n\nProduce 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.\n\nThis is the \"what should we work on next quarter\" skill. It does not replace specialist skills — it composes them, then sequences their outputs.\n\n## Prerequisites\n\n- SE Ranking MCP server connected.\n- `seo-firecrawl` available for site mapping and head metadata (optional but recommended).\n- User provides:\n  - Target domain.\n  - 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).\n  - Optionally: known constraints (engineering capacity, content budget, no JS-render changes allowed, etc.).\n\n## Process\n\n0. **Google data availability check (advisory, not blocking)**\n   - 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:\n   ```\n   > Google APIs detected (tier {n}, available: {comma-list}). Downstream specialist\n   > skills (seo-technical-audit, seo-page, seo-content-audit, seo-drift) will enrich\n   > their outputs with real CrUX / GSC / GA4 / URL Inspection data automatically.\n   ```\n   - If creds are missing, the plan continues with SE Ranking-only data and prints:\n   ```\n   > Google APIs not configured. To enrich downstream phases with real CWV / GSC /\n   > GA4 / indexation data, run `bash extensions/google/install.sh`. Plan continues\n   > with SE Ranking data only.\n   ```\n   - 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.\n\n1. **Detect business type** `DATA_getDomainOverviewWorldwide`, plus a Firecrawl `scrape` of the homepage if available\n   - Inspect title, H1, JSON-LD types, primary nav patterns.\n   - Classify as one of: `saas`, `ecommerce`, `local`, `publisher`, `agency`, `b2b-services`, `marketplace`. If ambiguous, ask the user once.\n   - Business type drives template selection (see step 6).\n\n2. **Domain baseline** `DATA_getDomainOverviewWorldwide`, `DATA_getDomainOverviewHistory`, `DATA_getDomainAuthority`, `DATA_getBacklinksSummary`\n   - Capture: organic keywords, organic traffic estimate, DA, backlink profile health, top countries, traffic trend over the last 12 months.\n   - This sets the \"where you are now\" anchor.\n\n3. **Competitive frame** `DATA_getDomainCompetitors`\n   - Pull top 5–10 organic competitors.\n   - For each: organic keywords, traffic share, DA, top topical clusters they own.\n   - Identifies who the user is *actually* competing with on the SERP (often different from who they think).\n\n4. **Pull specialist inputs — confirm-then-dispatch pattern**\n   - **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):\n     - `seo-technical-audit-*`\n     - `seo-content-audit-*`\n     - `seo-competitor-gap-analysis-*`\n     - `seo-ai-search-share-of-voice-*`\n     - `seo-backlinks-profile-*`\n   - For each present folder, ingest its primary deliverable (`TECH-AUDIT.md`, `VERDICT.md` rollup, `GAPS.md`, `REPORT.md`, `PROFILE.md` respectively).\n   - **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):\n     - `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.\n     - `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).\n     - `seo-competitor-gap-analysis` → ~30–80 credits for 10 seeds.\n     - `seo-ai-search-share-of-voice` → ~10–20 credits (leaderboard + ~20 prompts × N domains).\n     - `seo-backlinks-profile` → ~25–40 SE Ranking credits.\n   - **4c. Print the confirmation prompt** (single block, exactly this shape, with the missing-list filtered to only what is actually missing):\n   ```\n   To produce a defensible plan, seo-plan needs outputs from N specialists not yet\n   run for {domain}:\n   - seo-technical-audit (~{N} credits)\n   - seo-content-audit (~{N} credits)\n   - seo-competitor-gap-analysis (~{N} credits)\n   - seo-ai-search-share-of-voice (~{N} credits)\n   - seo-backlinks-profile (~{N} credits)\n   Total estimated cost: ~{N} credits.\n   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)\n   ```\n   - **4d. If user answers `y`:** dispatch each missing specialist in this order, ingesting each primary deliverable as it completes:\n     - **Parallel batch (independent):** `seo-technical-audit`, `seo-competitor-gap-analysis`, `seo-ai-search-share-of-voice`, `seo-backlinks-profile`.\n     - **Sequential after the batch:** `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.\n     - Each specialist runs its own `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     - After every dispatch, ingest the new folder the same way step 4a does.\n   - **4e. If user answers `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.\n\n5. **Score the four pillars**\n   - **Technical health** (0–100): from `seo-technical-audit` severity-weighted issue count.\n   - **Content quality** (0–100): average E-E-A-T+CITE score across audited pages.\n   - **Topical authority** (0–100): cluster coverage relative to top 3 competitors.\n   - **AI Search readiness** (0–100): citation share vs SoV competitors.\n   - The lowest pillar becomes the **lead theme** for the first phase.\n\n6. **Apply business-type template** (templates differ — pick one and parameterise)\n   - **saas** → product-led pillars + integration pages + comparison/alternatives + JTBD content.\n   - **ecommerce** → category page hygiene + product schema + faceted-nav indexation rules + review aggregation.\n   - **local** → GBP optimisation + location pages + citation cleanup (note: we don't have a `seo-local` skill yet — flag this as a manual sub-step or external).\n   - **publisher** → topical clusters + author E-E-A-T + freshness cadence + AI-Search citations.\n   - **agency** → service pages + case studies + comparison content + lead-gen LP (use `seo-agency-landing-page`).\n   - **b2b-services** → industry-specific landing pages + thought-leadership clusters + decision-stage content.\n   - Template provides default work-item categories; the lowest-pillar score from step 5 weights them.\n\n7. **Phase the plan** — three phases over the planning horizon, each with goals, work items, owners, metrics\n   - **Phase 1 (weeks 1–4 of horizon): Foundations.** Technical fixes that unblock everything else, baseline drift snapshot, 1–2 quick-win content refreshes from `seo-page` verdicts.\n   - **Phase 2 (weeks 5–8): Build.** Content tier from `seo-keyword-cluster` (1 pillar + 3–7 spokes), schema fixes from `seo-schema`, comparison page from `seo-competitor-pages` if competitive frame supports it.\n   - **Phase 3 (weeks 9–12): Compound + measure.** AI Search readiness pass via `seo-geo` on top pages, backlink-gap outreach starter from `seo-backlink-gap`, second drift comparison via `seo-drift compare`, retro + adjust.\n   - For longer horizons (180/365 days), repeat phases 2+3 with refreshed inputs and a quarterly retro.\n   - Each work item is tagged with the skill that produces it: `seo-content-brief`, `seo-schema`, `seo-page`, etc.\n\n8. **Pick metrics**\n   - **Lagging (quarterly):** organic traffic, organic keywords ranking top-10, organic conversions.\n   - **Leading (weekly/monthly):** technical-issue count, pages with E-E-A-T verdict ≥ 70, AI Search citation count, referring-domain count.\n   - One leading + one lagging per phase. Tie each metric to a current value (from step 2) and a phase-end target. Targets must be defensible — call out base rates.\n\n9. **Sequencing + dependencies**\n   - Build a dependency map: e.g., \"rewrite cluster A pillar\" depends on \"fix `noindex` on /blog templates\" depends on \"run `seo-technical-audit`.\"\n   - Surface the critical path. Anything off the critical path is moveable; anything on it blocks the phase.\n\n10. **Synthesise** `PLAN.md`\n\n## Output format\n\nFolder `seo-plan-{domain-slug}-{YYYYMMDD}/`:\n\n```\nseo-plan-{domain-slug}-{YYYYMMDD}/\n├── PLAN.md                              (synthesis — primary deliverable; inlines 01-baseline, 02-competitive-frame, 07-dependencies, 08-metrics as sections)\n├── 04-phase-1-foundations.md            (load-bearing — owners share single phase files in standups)\n├── 05-phase-2-build.md                  (load-bearing — owners share single phase files)\n├── 06-phase-3-compound.md               (load-bearing — owners share single phase files)\n└── evidence/\n    ├── 01-baseline.md                   (where you are now — raw data inlined into PLAN.md)\n    ├── 02-competitive-frame.md          (who you're actually competing with — raw data inlined into PLAN.md)\n    ├── 03-pillar-scores.md              (technical / content / topical / AI Search — scoring math)\n    ├── 07-dependencies-and-critical-path.md  (dependency map — inlined as PLAN.md section)\n    └── 08-metrics.md                    (metric tables — inlined as PLAN.md section)\n```\n\nTop-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.\n\n`PLAN.md` follows this shape:\n\n```markdown\n# SEO Plan: {domain}\n\n> Plan dated {YYYY-MM-DD} · Horizon: {n} days · Business type: {type} · Country: {country}\n\n## Where you are\n- Organic keywords: {n} (trend: {↑↓→ over 12mo})\n- Organic traffic estimate: {n}/mo\n- Domain authority: {n}\n- Referring domains: {n}\n- Pillar scores: Technical {n}/100 · Content {n}/100 · Topical {n}/100 · AI Search {n}/100\n\n## Lead theme\n{The lowest pillar from step 5, plus a one-line \"why this is the constraint.\"}\n\n## Top 5 competitors\n| Domain | DA | Organic kw | Top cluster they own |\n|---|---|---|---|\n| {comp} | {n} | {n} | {cluster} |\n\n## Phase 1 — Foundations (weeks 1–4)\n\n**Goal:** {1-line outcome, e.g. \"remove technical debt blocking content investment\"}\n\n| # | Work item | Skill / source | Owner | Effort | Phase-end metric |\n|---|---|---|---|---|---|\n| 1.1 | {item} | `seo-technical-audit` follow-up | {role} | {S/M/L} | {metric} |\n| 1.2 | ... | | | | |\n\n**Phase exit criteria:** {what must be true to declare Phase 1 done}\n\n## Phase 2 — Build (weeks 5–8)\n{same shape}\n\n## Phase 3 — Compound + measure (weeks 9–12)\n{same shape}\n\n## Critical path\n{Ordered list of work items that block subsequent phases. Anything not on this list is moveable.}\n\n## Metrics\n\n| Metric | Type | Current | Phase 1 target | Phase 2 target | Phase 3 target |\n|---|---|---|---|---|---|\n| Organic traffic | Lagging | {n} | {n} | {n} | {n} |\n| Pages with E-E-A-T ≥ 70 | Leading | {n} | {n} | {n} | {n} |\n| Technical issue count | Leading | {n} | {n} | {n} | {n} |\n| AI Search citation count | Leading | {n} | {n} | {n} | {n} |\n| Referring domains | Leading | {n} | {n} | {n} | {n} |\n\n## Constraints / caveats\n{User-supplied constraints, plus anything the data flags — e.g., \"DA gap to top competitor is 25 points; expect 6+ months for keyword parity.\"}\n\n## Recommended next step\nRun Phase 1 work items. After week 4, run `seo-drift compare` against the baseline captured today, then adjust Phase 2 scope.\n```\n\n## Tips\n\n- **Default is \"no auto-dispatch.\"** The confirm prompt in step 4c defaults to `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.\n- **Auto-dispatch (the `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.\n- **Auto-dispatch respects each specialist's own credit-balance preflight.** Each specialist already calls `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.\n- **Auto-detect business type cheaply.** Homepage `<title>`, schema `@type`, and top-nav anchors are usually enough. Ask the user only when truly ambiguous.\n- **The lead theme is the lowest pillar score.** Don't pick the pillar the user is most excited about — pick the one the data says is the constraint. Surface this gap explicitly if they conflict.\n- **Three phases, even for 30-day horizons.** Compress, don't drop. A 30-day plan is foundations (weeks 1–2), build (weeks 2–3), measure (week 4). The structure forces sequencing discipline.\n- **Targets must be defensible.** Don't write \"double organic traffic in Q1.\" Tie each target to a base rate from competitor data or category benchmarks. If the math doesn't support a target, say so and lower it.\n- **Critical path is the deliverable.** Most teams can do *something*; few know what's blocking what. Surface the dependency chain — that's where this skill earns its keep.\n- **Local SEO is a known gap.** If business type is `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.\n- **Don't generate work items the team can't execute.** If the user said \"no JS-render changes allowed,\" drop those items even if they're high-leverage. A plan that won't ship is worse than a smaller plan that does.\n- **Update cadence.** A 90-day plan should be re-run at the 90-day mark with `seo-drift compare` against the original baseline as input. Drift output rewrites the \"Where you are\" section; everything downstream updates from there.\n\n## Works well with\n\n- **Predecessors:**\n  - `seo-technical-audit`, `seo-content-audit`, `seo-competitor-gap-analysis`, `seo-ai-search-share-of-voice`, `seo-backlinks-profile` — produce inputs.\n  - `seo-drift baseline` — captures the snapshot the plan measures progress against.\n- **Successors:**\n  - `seo-keyword-cluster` — when Phase 2 calls for a content tier.\n  - `seo-content-brief` — for each spoke article in Phase 2.\n  - `seo-schema` — for structured-data work items.\n  - `seo-competitor-pages` — when comparison content is on the plan.\n  - `seo-drift compare` — at end of phase to measure progress.\n  - `seo-page` — for individual URL keep/refresh/consolidate/kill calls in Phase 1.","tags":["seo","plan","skills","seranking","agent-skills","ai-search","anthropic","backlinks","claude","claude-code","claude-plugin","claude-skills"],"capabilities":["skill","source-seranking","skill-seo-plan","topic-agent-skills","topic-ai-search","topic-anthropic","topic-backlinks","topic-claude","topic-claude-code","topic-claude-plugin","topic-claude-skills","topic-content-brief","topic-ga4","topic-keyword-research","topic-mcp"],"categories":["seo-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/seranking/seo-skills/seo-plan","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add seranking/seo-skills","source_repo":"https://github.com/seranking/seo-skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 9 github stars · SKILL.md body (16,789 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:08:36.943Z","embedding":null,"createdAt":"2026-05-18T13:14:10.906Z","updatedAt":"2026-05-18T19:08:36.943Z","lastSeenAt":"2026-05-18T19:08:36.943Z","tsv":"'+3':1389 '-0':2025,2210 '-10':722,921,1430 '/100':1746,1749,1752,1756 '/blog':1503 '/mo':1735 '0':202,217,1034,1074,1088,1103,1115,2408 '01':1554 '01-baseline.md':1596 '02':1556 '02-competitive-frame.md':1606 '03-pillar-scores.md':1618 '04':1648 '04-phase-1-foundations.md':1566 '05':1649 '05-phase-2-build.md':1577 '06':1650 '06-phase-3-compound.md':1586 '07':1560 '07-dependencies-and-critical-path.md':1626 '08':1562 '08-metrics.md':1633 '1':414,707,1279,1281,1295,1320,1791,1794,1797,1840,1882,1965,2297,2609 '1.1':1817 '1.2':1829 '10':512,702,726,730,741,750,1529 '100':1075,1089,1104,1116 '12':494,1347,1856 '12mo':1730 '15':703,727 '180':185 '180/365':1384 '2':466,1296,1308,1388,1471,1843,1885,1984,2298,2301,2551,2567 '20':751,754 '25':762,1952 '3':504,1110,1322,1344,1851,1888,2302 '30':183,574,580,737,2283,2291 '365':186 '4':249,544,1282,1795,1970,2305 '40':763 '4a':553,1010 '4b':630 '4c':767,1998,2135 '4d':869,2108 '4e':1012 '5':511,1067,1258,1310,1764,1776,1846,2119 '50':715 '6':465,679,1133,1955 '7':1261,1323 '70':1447,1904 '8':1311,1419,1847 '80':738 '9':1346,1486,1855 '90':81,180,184,2465,2475 'abort':976,985,2175,2192 'across':1098 'actual':101,532,787,1610 'adjust':1380,1982 'advisori':207 'agenc':166,447,1211,1225 'aggreg':1167 'ai':28,606,745,828,902,1112,1208,1350,1448,1622,1753,1918,2521 'ai-search':1207 'allow':199,2437 'along':1693 'alreadi':2150 'ambigu':453,2243 'analysi':603,736,823,899,936,947,2518 'anchor':503,2233 'answer':872,1015,2009 'anti':383 'anti-pattern':382 'anyth':1018,1516,1523,1870,1941,2010 'api':278,332 'appli':1134 'articl':2564 'ask':454,861,2237 'audit':40,44,224,228,292,299,594,598,670,678,696,701,711,810,816,894,918,1080,1099,1511,1822,2404,2509,2513 'author':1102,1199,1737 'auto':169,362,1991,2063,2137,2221 'auto-detect':168,2220 'auto-dispatch':1990,2062,2136 'auto-spawn':361 'automat':315 'avail':141,205,282,428 'averag':1090 'b2b':167,449,1229 'b2b-services':448,1228 'backlink':484,613,760,837,909,1362,1369,2528 'backlink-gap':1361 'balanc':981,2146 'base':1484,2328 'baselin':468,1292,1555,1675,1978,2486,2535 'bash':347 'batch':889,914,948,1065 'bear':1569,1580,1589 'becom':1041,1125 'behavior':859 'behaviour':965,1028,2026 'benchmark':2335 'block':209,773,1526,1804,1867,2363 'brief':1411,2560 'budget':193,2055 'build':4,631,1312,1489,1844,2299 'busi':160,416,458,1136,1717,2223,2384 'business-typ':1135 'bypass':971,2169 'cach':697 'cadenc':1206,2463 'call':1482,2151,2552,2606 'cancel':2214 'cap':714 'capac':191 'captur':477,1979,2536 'case':1214 'categori':1156,1250,2334 'caveat':1935 'chain':2368 'chang':198,2436 'cheapli':2225 'check':206,213,690,982 'checklist':107 'choos':2197 'citat':1117,1173,1210,1450,1920 'cite':688,1096 'classifi':439 'cleanup':1174 'cluster':48,524,1105,1198,1239,1319,1495,1783,1789,2548 'collaps':1667 'comfort':2084 'comma':284 'comma-list':283 'command':379 'comp':1786 'compar':1378,1975,2482,2591 'comparison':1216,1331,1373,2582 'comparison/alternatives':1152 'compet':51,533,1611 'competit':21,102,505,1339,1558,1676 'competitive-fram':1557 'competitor':514,601,734,821,897,934,1111,1121,1336,1777,1950,2331,2516,2579 'complet':887,949 'compos':126 'compound':1348,1852 'compress':2286 'configur':334 'confirm':549,770,1994,2132 'confirm-then-dispatch':548 'conflict':2278 'connect':137 'constraint':189,1774,1934,1939,2271 'consum':2162 'content':23,43,192,227,298,597,700,815,917,1086,1154,1217,1243,1300,1313,1410,1620,1747,1805,2512,2555,2559,2583 'content-audit':226 'continu':322,350 'control':1052,2041 'conveni':2070 'convers':1432 'cost':650,843,960,2160,2185 'count':674,692,1085,1438,1451,1455,1912,1921 'countri':157,488,1720,1721 'coverag':1106,2413 'cred':317 'credit':649,681,706,709,739,752,766,812,818,825,834,840,845,980,1054,2043,2088,2145,2163,2180 'credit-bal':979,2144 'credit-cost':648 'criteria':1832 'critic':1514,1519,1859,2349 'critiqu':386 'crux':309 'current':559,1467,1880 'cwv':341 'da':483,521,1779,1946 'data':204,238,314,328,345,354,418,469,471,473,475,507,937,955,1602,1614,1943,2152,2267,2332,2574 'date':570,1709 'day':82,181,575,581,1385,1716,2284,2292,2466,2476 'dd':1713 'debt':26,1803 'decid':992 'decis':1241 'decision-stag':1240 'declar':1838 'declin':2182 'default':158,179,713,853,1020,1246,1987,1999 'defens':792,1481,2314 'deliver':71,622,884,1552,2353 'depend':924,1488,1491,1498,1505,1561,1627,1678,2367 'describ':2105 'detect':170,279,415,554,2222 'differ':539,1140 'direct':259 'directori':561 'disciplin':2310 'discoveri':1035 'dispatch':255,551,874,1001,1992,2064,2126,2138,2219 'display':2087 'doesn':253,367,2339 'domain':11,61,154,173,467,757,806,1454,1539,1546,1707,1736,1740,1778,1928 'domain-slug':1538,1545 'done':1841 'doubl':2318 'downstream':219,286,337,2498 'drift':229,302,666,1293,1372,1377,1974,2481,2489,2534,2590 'drive':460 'drop':2289,2438 'duplic':1673 'e':1092,1093,1201,1202,1442,1443,1900,1901 'e-e-a-t':1091,1200,1441,1899 'e.g':1493,1800,1945 'earn':2374 'ecommerc':163,444,1155 'effort':1812 'els':1019,1291 'end':1476,1815,2593 'engin':190 'enough':2236 'enrich':231,304,336 'enter':2007 'environ':1057 'estim':482,842,1733,2089 'etc':200,1418 'eval_result_v2.md':388 'even':2281,2441 'everi':1000,2125 'everyth':1290,2497 'evid':1595,1692 'exact':774 'excit':2261 'execut':2124,2427 'exist':555,857,964,1026 'exit':1831 'expect':725,1954 'explicit':86,2014,2275 'extensions/google/install.sh':348 'extern':1195 'facet':1162 'faceted-nav':1161 'fall':1022,2019 'field':237 'figur':651,664 'file':1574,1585,1594,1647,1655,1660,1688 'filter':782 'finish':2077 'firecrawl':140,422,680,708,731 'first':868,1043,1131,2034,2156 'fix':1287,1326,1500 'flag':1186,1944,2388 'folder':72,565,577,618,1005,1534 'follow':1701,1824 'follow-up':1823 'forc':2308 'form':661 'format':1533 'foundat':1285,1792,2295 'four':1070 'frame':506,1340,1559,1677 'fresh':643,677,1205 'friction':375 'full':412 'ga4':311,343 'gap':24,602,735,822,898,935,946,1363,1370,1947,2274,2382,2517 'gap-analysi':945 'gaps.md':626 'gate':2128,2171 'gbp':1169,2403 'gen':1220 'generat':2420 'generic':106 'geo':1357 'getbacklinkssummari':476 'getcreditbal':956,2153 'getdomainauthor':474 'getdomaincompetitor':508 'getdomainkeyword':938 'getdomainoverviewhistori':472 'getdomainoverviewworldwid':419,470 'goal':87,1273,1796 'googl':203,236,258,277,331,372 'ground':96 'gsc':310,342 'h1':431 'head':146 'health':486,1073 'high':2446 'high-leverag':2445 'hit':2006 'homepag':426,2226 'horizon':178,1270,1284,1383,1714,2285 'hygien':1158 'identifi':527 'import':2045 'independ':890 'index':344,1164 'individu':2603 'industri':1232 'industry-specif':1231 'ingest':243,619,881,1002,2109 'inlin':1553,1603,1615,1629,1636,1681 'inner':2184 'input':547,1392,2488,2531 'inspect':313,429 'insuffici':2179 'integr':1150 'invest':1806 'issu':1084,1437,1911 'item':89,1249,1275,1399,1808,1818,1865,1967,2212,2409,2422,2440,2576 'js':196,2434 'js-render':195,2433 'json':214,433 'json-ld':432 'jtbd':1153 'keep':2376 'keep/refresh/consolidate/kill':2605 'keyword':47,479,518,1318,1427,1726,1958,2547 'know':270,926,2360 'known':188,2381 'kw':1781 'lag':1422,1459,1892 'land':1226,1234 'last':493,573 'ld':434 'lead':1127,1219,1433,1457,1757,1905,1913,1922,1929,2245 'lead-gen':1218 'leaderboard':753 'leadership':1238 'led':1148 'let':990,2194,2205 'level':1642,1664 'leverag':2447 'lightest':359 'line':265,1769,1798 'list':285,587,634,781,1862,1874,2028 'load':1568,1579,1588 'load-bear':1567,1578,1587 'local':164,445,1168,1183,2377,2387,2397 'locat':1171 'longer':1382 'look':562,645 'lower':2347 'lowest':1123,1253,1760,2249 'lowest-pillar':1252 'lp':1221 'manual':867,1190,2402 'map':144,1492,1628 'mark':2477 'markdown':1704 'marketplac':451 'match':566 'math':1625,1699,2338 'may':665 'mcp':135 'measur':1349,1853,2303,2541,2597 'metadata':147 'metric':92,1277,1421,1464,1563,1634,1679,1816,1828,1877,1878 'miss':319,590,633,780,788,876,1039,2030,2095 'missing-list':779 'mm':1712 'modern':685 'modern-sign':684 'month':495,1956 'moveabl':1522,1876 'multipl':35 'must':941,1479,1834,2312 'n':281,756,800,811,817,824,833,839,844,854,1016,1021,1715,1727,1734,1738,1741,1745,1748,1751,1755,1787,1788,1893,1894,1895,1896,1906,1907,1908,1909,1914,1915,1916,1917,1923,1924,1925,1926,1930,1931,1932,1933,2001 'nav':437,1163,2232 'need':797 'new':1004 'next':116,1961 'noindex':1501 'note':1175 'notic':266 'often':538 'older':578 'one':264,441,1142,1456,1458,1768,2080,2265 'one-lin':263,1767 'open':1031 'opt':397 'optim':2099 'optimis':1170 'option':148,155,182,187,272,392,2071 'order':880,1861,2104 'organ':478,480,513,517,1424,1426,1431,1725,1731,1780,1890,2319 'origin':2485 'outcom':1799 'output':33,62,131,233,246,306,556,644,798,1532,2111,2490 'outreach':1364 'owner':90,1276,1570,1581,1590,1651,1811 'page':225,295,673,691,723,922,930,1100,1151,1157,1172,1213,1227,1235,1305,1332,1337,1360,1417,1439,1897,2580,2601 'parallel':888,2101 'parallel-then-sequenti':2100 'parameteris':1144 'pariti':1959 'pass':1353 'path':1515,1520,1860,2067,2092,2350 'pattern':384,438,552,568 'per':69,710,1460 'per-phas':68 'phase':6,56,70,74,338,1033,1132,1262,1266,1278,1307,1343,1387,1461,1475,1528,1573,1584,1593,1646,1654,1659,1790,1814,1830,1839,1842,1850,1869,1881,1884,1887,1964,1983,2024,2209,2280,2407,2550,2566,2595,2608 'phase-end':1474,1813 'pick':1141,1420,2254,2263 'pillar':1071,1124,1149,1254,1321,1497,1697,1742,1761,2116,2250,2256 'pillar-scor':1696 'plan':3,53,94,177,242,251,321,349,366,409,720,793,796,968,1030,1264,1269,1537,1544,1706,1708,2018,2078,2166,2189,2293,2449,2459,2467,2540,2587 'plan.md':66,1531,1549,1605,1617,1631,1638,1643,1669,1683,1700 'plus':67,420,1765,1940 'point':1953 'posit':22,103 'possibl':360 'predecessor':2505 'preflight':957,2147,2178 'prerequisit':132,637 'present':617 'preserv':855,1048,1690,2039 'pretend':2412 'primari':436,621,883,1551 'print':261,330,768 'proceed':962,2113 'process':201 'produc':54,790,1406,2530 'product':1147,1159 'product-l':1146 'profil':485,614,761,838,910,2529 'profile.md':628 'progress':2542,2598 'prompt':663,755,771,1995,2186 'provid':152,1245 'publish':165,446,1196 'pull':509,545 'python3':211 'q1':2322 'qualiti':1087 'quarter':13,15,78,117,1395,1423 'quarter-by-quart':12 'quick':1298 'quick-win':1297 'rank':134,326,353,705,729,765,1428,2054 'ranking-on':325 'rate':1485,2329 'rather':1665 'rational':413 'raw':1601,1613,1686 're':586,1609,2123,2444,2471 're-execut':2122 're-list':585 're-run':2470 'read':658 'readi':30,1114,1352 'real':235,308,340 'recent':695 'recommend':150,1960,2401 'refer':1453,1739,1927 'referring-domain':1452 'refresh':1301,1391 'relat':1107 'remain':2207 'remov':1801 'render':197,2435 'repeat':1386 'replac':122 'report.md':627 'respect':629,2139 'rest':2216 'retro':1379,1396 'review':1166 'rewrit':1494,2491 'richer':245 'roadmap':8,58 'role':1826 'rollup':625 'rule':1165 'run':210,346,369,404,804,846,865,942,952,1037,1507,1963,1971,2093,2472 's/m/l':1827 'saa':162,443,1145 'said':2431 'say':2268,2344 'schedul':1063,2059 'schema':1160,1325,1330,1414,2227,2570 'scope':75,724,923,1985 'score':1068,1097,1255,1624,1698,1743,2117,2251 'scrape':423 'scripts/google_auth.py':212 'se':133,324,352,704,728,764,2053 'search':29,607,746,829,903,1113,1209,1351,1449,1623,1754,1919,2522 'second':1371 'section':1565,1632,1639,1674,2496 'see':405,463 'seed':742 'select':462 'seo':2,7,38,42,46,50,52,57,139,241,257,290,294,297,301,365,371,408,592,596,600,605,612,668,699,719,733,744,759,795,808,814,820,827,836,892,896,901,908,916,933,967,1078,1182,1224,1304,1317,1329,1335,1356,1368,1376,1409,1413,1416,1509,1536,1543,1705,1820,1973,2017,2165,2188,2378,2396,2480,2507,2511,2515,2520,2527,2533,2546,2558,2569,2578,2589,2600 'seo-agency-landing-pag':1223 'seo-ai-search-share-of-voic':604,743,826,900,2519 'seo-backlink-gap':1367 'seo-backlinks-profil':611,758,835,907,2526 'seo-compet':49 'seo-competitor-gap-analysi':599,732,819,895,932,2514 'seo-competitor-pag':1334,2577 'seo-content-audit':41,296,595,698,813,915,2510 'seo-content-brief':1408,2557 'seo-drift':300,1375,1972,2479,2532,2588 'seo-firecrawl':138 'seo-geo':1355 'seo-googl':256,370 'seo-keyword-clust':45,1316,2545 'seo-loc':1181,2395 'seo-pag':293,1303,1415,2599 'seo-plan':1,240,364,407,718,794,966,1535,1542,2016,2164,2187 'seo-schema':1328,1412,2568 'seo-technical-audit':37,289,591,667,807,891,1077,1508,1819,2506 'separ':1066,2061 'sequenc':129,1487,2309 'sequenti':911,2103 'serp':537 'server':136 'servic':450,1212,1230 'session':851,2081 'set':497 'sever':1082 'severity-weight':1081 'shape':776,1703,1849,1858 'share':520,608,747,830,904,1118,1571,1582,1591,1652,2523 'ship':2453 'signal':686 'silent':2121 'singl':65,378,772,1572,1583,1592,1653,2131 'site':19,99,143 'skill':36,118,124,221,288,403,1184,1404,1809,2373,2398 'skill-seo-plan' 'skill.md':657 'skills/seo-google/references/cross-skill-integration.md':406 'skip':998,2201 'slug':1540,1547 'smaller':2458 'snapshot':1294,2538 'someth':2358 'sourc':1810 'source-seranking' 'sov':1120 'spawn':363 'specialist':123,220,287,402,546,654,801,877,951,975,1040,1060,2031,2060,2096,2141,2149,2174,2203 'specif':1233 'spend':1055,2044 'spoke':1324,2563 'sprint':83,1044,2035 'stage':1242 'stale':583 'standup':1576,1657 'starter':1365 'stay':1661 'step':248,464,687,1009,1193,1257,1470,1687,1763,1962,1997,2107,2118,2134,2157 'straight':2114 'structur':2307,2573 'structured-data':2572 'studi':1215 'sub':1192 'sub-step':1191 'subsequ':1868 'successor':2544 'suppli':176,1938 'support':1341,2341 'surfac':390,959,983,1512,2159,2190,2272,2365 'synthesi':1550 'synthesis':31,1530 'tabl':276,1635 'tag':1401 'target':153,156,1477,1478,1883,1886,1889,2311,2325,2343 'team':2355,2424 'tech-audit.md':623 'technic':25,39,223,291,593,669,809,893,1072,1079,1286,1436,1510,1619,1744,1802,1821,1910,2508 'technical-audit':222 'technical-issu':1435 'templat':461,1138,1139,1244,1504 'theme':1128,1758,2246 'think':543 'thought':1237 'thought-leadership':1236 'three':1265,1645,2279 'tie':16,1462,2323 'tier':216,280,1314,2556 'tight':2052 'tip':1986 'titl':430 'today':1980 'top':487,510,522,721,920,928,995,1109,1359,1429,1641,1663,1775,1782,1949,2199,2231 'top-level':1640,1662 'top-nav':2230 'topic':523,1101,1197,1621,1750 'topic-agent-skills' 'topic-ai-search' 'topic-anthropic' 'topic-backlinks' 'topic-claude' 'topic-claude-code' 'topic-claude-plugin' 'topic-claude-skills' 'topic-content-brief' 'topic-ga4' 'topic-keyword-research' 'topic-mcp' 'total':841 'traffic':481,489,519,929,1425,1732,1891,2320 'transfer':374 'treat':576 'trend':490,1728 'true':1836 'truli':2242 'type':161,417,435,459,1137,1718,1719,1879,2224,2228,2385 'unblock':1289 'updat':2462,2499 'url':312,712,2604 'us':159 'use':1222 'user':151,269,395,456,530,863,871,988,1014,1050,1937,2004,2040,2048,2074,2181,2196,2239,2258,2430 'user-suppli':1936 'usual':2235 'v2.6':858,1027,2023 'valu':1468 'vari':671,689 'verbatim':1672 'verbatim-dupl':1671 'verdict':1306,1446 'verdict.md':624 'via':1354,1374 'voic':610,749,832,906,2525 'vs':1119 'want':2057,2075 'way':1008 'week':1280,1309,1345,1793,1845,1854,1969,2296,2300,2304 'weekly/monthly':1434 'weight':1083,1259 'well':2503 'whether':993 'win':1299 'within':571 'won':2451 'work':88,114,560,1046,1248,1274,1398,1807,1864,1966,2037,2211,2421,2502,2575 'work-item':1247 'wors':2455 'write':2317 'y':873,2015,2066,2091 'y/n':852 'yet':803,1185,2399 'yyyi':1711 'yyyy-mm-dd':1710 'yyyymmdd':1541,1548","prices":[{"id":"91b80f18-07dd-4752-bccd-4465f4bfa3e7","listingId":"dd37b69a-a22c-4fbf-9c52-3068e8fefa3c","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"seranking","category":"seo-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:14:10.906Z"}],"sources":[{"listingId":"dd37b69a-a22c-4fbf-9c52-3068e8fefa3c","source":"github","sourceId":"seranking/seo-skills/seo-plan","sourceUrl":"https://github.com/seranking/seo-skills/tree/main/skills/seo-plan","isPrimary":false,"firstSeenAt":"2026-05-18T13:14:10.906Z","lastSeenAt":"2026-05-18T19:08:36.943Z"}],"details":{"listingId":"dd37b69a-a22c-4fbf-9c52-3068e8fefa3c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"seranking","slug":"seo-plan","github":{"repo":"seranking/seo-skills","stars":9,"topics":["agent-skills","ai-search","answer-engine-optimization","anthropic","backlinks","claude","claude-code","claude-plugin","claude-skills","content-brief","ga4","generative-engine-optimization","keyword-research","mcp","mcp-server","search-console","seo","seo-tools","seranking","site-audit"],"license":"mit","html_url":"https://github.com/seranking/seo-skills","pushed_at":"2026-05-11T20:07:40Z","description":"Claude SEO Skills — production Claude Agent Skills for the SE Ranking MCP server. Content briefs, AI Search share of voice, audits, backlink gaps, keyword clusters, schema, sitemap, GEO, and more.","skill_md_sha":"52c9f5c176527fe9b2d567bc3cbbdf51b01984f0","skill_md_path":"skills/seo-plan/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/seranking/seo-skills/tree/main/skills/seo-plan"},"layout":"multi","source":"github","category":"seo-skills","frontmatter":{"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\"."},"skills_sh_url":"https://skills.sh/seranking/seo-skills/seo-plan"},"updatedAt":"2026-05-18T19:08:36.943Z"}}