From seo-superpower
Use when running a competitor SERP diff, asking why a competitor outranks you, building a content brief, or auditing what top-3 ranking pages cover that yours doesn't. Auto-triggers on "content gap analysis", "competitor SERP", "why does X outrank us", "what are competitors covering that we aren't", "content brief", "SERP analysis". Takes a target query + your URL, scrapes top-3 via Firecrawl, diffs entities/H2s/schema/depth/freshness/AIO presence, and ships `CONTENT_BRIEF.md` with gaps ranked by impact. Pairs with `optimizing-on-page` (fills the gaps) and `planning-topic-clusters` (when gaps span sub-topics).
How this skill is triggered — by the user, by Claude, or both
Slash command
/seo-superpower:analyzing-content-gapsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The top 3 pages already won the editorial battle for a query — Google watched users vote with dwell, scroll, and pogo-sticks for months and decided those pages best serve the intent. Your job isn't to imagine what the page should cover. It's to **diff what they cover that you don't**, then decide which gaps deserve a response.
The top 3 pages already won the editorial battle for a query — Google watched users vote with dwell, scroll, and pogo-sticks for months and decided those pages best serve the intent. Your job isn't to imagine what the page should cover. It's to diff what they cover that you don't, then decide which gaps deserve a response.
Core principle: SERP-proven coverage beats imagination. Entities and sub-questions present across all top-3 are table stakes — if they're missing on your page, fix those first.
finding-underserved-keywords shows the gap is structural, not striking-distanceDon't use for: brand-new sites with no SERP presence (use researching-keywords-pre-launch), pages whose problem is decay (use refreshing-stale-content), or queries where SERP intent doesn't match your page type — fix intent first.
| Axis | Extract | Why |
|---|---|---|
| Entities | People, products, places, concepts, standards | Modern ranking signal; entities all 3 cover and you don't = priority [1] |
| H2/H3 structure | Sub-questions answered | Each H2 is a sub-intent the SERP rewards |
| Schema | JSON-LD types (Article, FAQPage, HowTo, Product, Review) | Rich-result + AIO citation surface |
| Word count + depth | Median competitor count | Floor: within ±20% of median [5] |
| Freshness | dateModified, "as of [year]" lines | Pages updated <3 mo cited ~2× more by AI engines [3] |
| Internal links | Count + anchor patterns | Reveals topical authority structure |
| AI Overview presence | Are competitors cited in AIO? | If yes-them-no-you, gap is citation-shaped, not ranking-shaped |
firecrawl MCP — firecrawl_search for the SERP, then firecrawl_scrape per result with formats: ["markdown", "links"] and onlyMainContent: true. Skip ads/sponsored/aggregators unless they are the intent. Firecrawl respects robots.txt by default [2].analyzeEntities (~$1/1k requests) — named entities with salience scores [7].dateModified, internal-link count.dateModified >9 months stale.CONTENT_BRIEF.md with: query, your URL, top-3 URLs, diff matrix, ranked gaps, expand-vs-write-new call.optimizing-on-page.planning-topic-clusters.adding-schema-markup.Top-3 are NYT, Vogue, a Substack. Diff reveals:
seasonal palette, core 4 silhouettes, 70/20/10 ratio — your page mentions zero. Tier 1.Recommendation: expand (one page worth of edits, not a new spoke). Hand off to optimizing-on-page with this brief.
researching-keywords-pre-launch instead.| Gap | Response |
|---|---|
| Entity | Mention naturally in body / H3 |
| H2 | Add the section with a 40–50 word direct answer for AIO eligibility [3] |
| Schema | Hand off to adding-schema-markup |
| Depth (after Tier 1) | Expand existing sections with examples, not filler |
| Freshness | Update dateModified, refresh stat citations, add "as of [year]" |
| AIO presence | Front-load a question-phrased H2 with a definition-format answer [3] |
| Multi-subtopic | New spoke — planning-topic-clusters |
Growth-phase skill (3–12 mo). Skip pre-launch (no SERP signal yet — use researching-keywords-pre-launch). For mature pages, pair with refreshing-stale-content — the gap may be freshness, not coverage.
optimizing-on-page with the brief in hand.planning-topic-clusters.adding-schema-markup.optimizing-for-generative-engines after the page is structurally sound.Citations and verification tags in SOURCES.md.
npx claudepluginhub benskamps/seo-superpower --plugin seo-superpowerSearches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.