seo-content-gap
Paste into Claude Code, Claude.ai, the desktop app, or the browser extension — ⌘/Ctrl+V. ✓ Copied. Switch to Claude and paste — ⌘/Ctrl+V.
SEO and Content Gap Analysis
Identify the topics, keywords, and content formats competitors rank for that the client does not — and produce a prioritized gap register with recommended actions.
When this skill applies
- User provides a client domain and one or more competitor domains
- User asks for "content gap," "keyword gap," "SEO gap," "what are we missing," or "where are competitors beating us in search?"
- Pre-content-strategy work: establishing the current state before building an editorial roadmap
- After a competitor teardown, the user wants a deeper SEO/content layer
Skip for: full competitor audit → competitor-teardown; structural market analysis → five-forces-analysis.
Inputs
| Parameter | Required | Default |
|---|---|---|
client-domain |
Yes | — |
competitor1 [competitor2 ...] |
Yes (1–5) | — |
--topics |
No | — |
--depth |
No | standard |
--output |
No | register |
Workflow
Step 1 — Scope and confirm
State:
- Client domain and up to 5 competitor domains
- Seed topics (if provided) or the inferred topic domain
- Depth and output format
Confirm before proceeding if domain or topic scope is unclear.
Step 2 — Organic visibility baseline
For the client and each competitor, collect:
- Estimated monthly organic traffic — SimilarWeb public view or SEMrush Overview (public tier). Note: these are estimates; label the source.
- Domain authority proxy — Moz Domain Authority (public), Ahrefs DR (public), or SEMrush Authority Score (public). Use the same metric for all domains being compared.
- Estimated organic keyword count — SEMrush or Ahrefs public site overview.
- Core Web Vitals (mobile) — PageSpeed Insights for each domain; record LCP, CLS, INP.
Present as a comparison table:
| Domain | Est. monthly visits | DA/DR/AS | Est. keyword count | LCP (mobile) | CWV overall |
|---|---|---|---|---|---|
| [client] | |||||
| [competitor 1] |
Step 3 — Keyword gap identification
Without a paid SEO tool seat:
Identify the competitor's top content pages using publicly available signals:
- Navigate to each competitor domain and examine
/sitemap.xmlfor content sections - Use
site:[competitor.com] [seed-topic]Google search to surface their ranking content - Note page titles, URL slugs, and H1s — these signal their keyword targets
- Navigate to each competitor domain and examine
For each identified competitor content page, check whether the client has a comparable page covering the same topic. Classify each gap as:
- Missing — client has no page on this topic
- Thin — client has a page but it is notably shallower (shorter, less structured, no schema)
- Outdated — client has a page but content date signals are stale (>18 months)
- Covered — client has a comparable or stronger page
Flag each competitor's apparent high-value keyword targets using their on-page signals (title tag, H1, structured data, internal links pointing to the page).
With a paid SEO tool seat (if the user has access):
Use SEMrush Keyword Gap or Ahrefs Content Gap tools directly. Export the "Missing" and "Weak" keyword lists. The methodology above validates and contextualizes the tool output.
Step 4 — Topic authority analysis
For each seed topic (or the top 5–10 inferred from competitor content):
- Identify who "owns" the topic in search — which domain appears most frequently in the top 10 results for representative queries
- Assess content depth signals: does the ranking page have structured data (FAQ, HowTo, Article schema)? Videos embedded? Internal links from authoritative hub pages?
- Note the content type mix competitors use for the topic: long-form guide, comparison page, tool/calculator, video, data study
Output: Topic authority heatmap table showing client vs. each competitor per topic.
| Topic | Client ownership | Competitor 1 | Competitor 2 | Gap severity |
|---|---|---|---|---|
| [topic] | None / Thin / Moderate / Strong | High / Medium / Low |
Gap severity:
- High — topic has demonstrable commercial intent or high volume; competitor ranks top 3; client absent
- Medium — topic has moderate volume; client has thin coverage; competitor ranks top 10
- Low — topic is peripheral; competitor ranks but traffic signal is weak
Step 5 — Backlink gap (directional)
Collect directional backlink signals:
- For each domain, note the approximate referring domain count from Ahrefs or Moz public views (not total backlinks — referring domains is the more meaningful signal)
- Identify any high-authority referring domains the competitor has that the client lacks (look for .edu, .gov, major media outlets, industry associations)
- Flag content types that are attracting links to competitors but absent from the client's library (e.g., original research, data studies, interactive tools, calculators)
Do not present referring domain counts as authoritative — label as directional estimates from the named tool's public view.
Step 6 — AI search visibility (2026 signal)
After Google's March 2026 core update, AI-driven answer surfaces (Google AI Overviews, ChatGPT, Perplexity, Gemini) have become material traffic sources. Check:
- For the top 3–5 high-gap topics, query ChatGPT and Perplexity with representative user questions and note which brands or domains are cited in the response
- For Google AI Overviews: run a representative query and note whether the client or any competitor is cited in the AI-generated overview
- Assess client content for AI answer extraction readiness:
- Concise definitional paragraphs in the first 100 words
- FAQ Schema present
- Explicit answers to "what is X," "how does X work," "best X for Y" question patterns
- Clear byline and author authority signals
Output: AI visibility summary — which competitors are being cited in AI search for the top gap topics, and what content changes would improve the client's citation probability.
Step 7 — Gap register and prioritization
Produce the gap register: a ranked table of content gaps ordered by strategic priority. Prioritize by combining:
- Gap severity (High/Medium/Low from Step 4)
- Commercial intent signal (does the topic connect to a buying decision?)
- Effort-to-close estimate (a short FAQ schema addition vs. a 3,000-word data study are very different efforts)
| Priority | Topic/keyword gap | Type | Competitor owning it | Gap severity | Commercial intent | Recommended action | Effort estimate |
|---|---|---|---|---|---|---|---|
| 1 | Missing/Thin/Outdated | High/Med/Low | High/Med/Low | [specific action] | Low/Med/High |
For --depth deep: produce a 1-page content brief for the top 5 priority gaps (target audience, recommended format, target keywords, suggested structure, schema type, internal linking recommendation).
Step 8 — Self-check before returning
- All traffic and keyword count figures are labeled as estimates with the named source
- Domain authority figures use the same metric consistently across all domains
- AI search citations are labeled as spot-check observations, not systematic brand monitoring
- Gap severity and commercial intent are explained, not asserted
- The gap register is actionable — each row has a recommended action, not just a finding
Return the gap register (and content briefs if --depth deep) as markdown.
Technical details
- Plugin
- market-research-agent
- Author
- Dakota Smith
- Skill name
seo-content-gap- Maturity
- experimental
- Security review
- No security review
- Owners
-
- strategy
- Argument hint
<client-domain> <competitor1> [<competitor2> ...] [--topics <comma-separated-seed-topics>] [--depth quick|standard|deep] [--output register|brief|slides-notes]- Allowed tools
-
ReadWriteWebFetch(domain:www.semrush.com)WebFetch(domain:ahrefs.com)WebFetch(domain:moz.com)WebFetch(domain:search.google.com)WebFetch(domain:pagespeed.web.dev)WebFetch(domain:www.google.com)WebFetch(domain:aiseotracker.com)
- Source
plugins/market-research-agent/skills/seo-content-gap/SKILL.md
Edit this skill on GitHub — opens GitHub's web editor. No git knowledge needed.