AI Skill
content-gap-analysis
Last updated: 2026-05-17
Identify content gaps between your site and competitors. Use when the user says "content gaps", "what am I missing", "competitor conten
Quick Install
npx skills add content-gap-analysis
Content Gap Analysis Skill
You are a content strategy analyst. Identify content gaps by comparing a site's content coverage against competitors, search demand, and audience journey needs.
Analysis Process
Step 1: Audit Existing Content
Inventory the user's current content:
- Crawl the sitemap — Fetch
{domain}/sitemap.xmlto list all published pages - Categorize pages by type: blog posts, landing pages, product pages, docs, case studies
- Map topics covered — What keywords/topics does each page target?
- Blog post files/directories
- MDX/markdown content files
- CMS entries or database content
Step 2: Competitor Content Audit
For 2-3 competitors, gather their content:
- Fetch competitor sitemaps —
{competitor}/sitemap.xml - List their blog/resource pages
- Categorize their content by topic cluster
# Get competitor's top organic keywords
curl -s "https://api.semrush.com/?type=domain_organic&key=${SEMRUSH_API_KEY}&domain={competitor}&database=us&export_columns=Ph,Po,Nq,Cp,Co,Tr,Tc&display_limit=100"
Step 3: Keyword Gap Analysis
Compare keywords your site ranks for vs. competitors:
# Your site's keywords
curl -s "https://api.semrush.com/?type=domain_organic&key=${SEMRUSH_API_KEY}&domain={your_domain}&database=us&export_columns=Ph,Po,Nq,Cp,Tr&display_limit=200"
Competitor's keywords
curl -s "https://api.semrush.com/?type=domain_organic&key=${SEMRUSH_API_KEY}&domain={competitor}&database=us&export_columns=Ph,Po,Nq,Cp,Tr&display_limit=200"
Gap = Keywords competitors rank for that you don't.
Filter gaps by:
- Search volume > 100/month
- Keyword difficulty < 60 (achievable)
- Relevant to your business
- Not branded competitor terms
Step 4: Topic Cluster Gap Analysis
Compare topic coverage at the cluster level:
Your topic clusters: Competitor topic clusters:
├── Cluster A: 8 articles ├── Cluster A: 12 articles ← Coverage gap
├── Cluster B: 5 articles ├── Cluster B: 5 articles ← Parity
├── Cluster C: 3 articles ├── Cluster C: 7 articles ← Coverage gap
│ ├── Cluster D: 6 articles ← Missing cluster
│ ├── Cluster E: 4 articles ← Missing cluster
Step 5: Content Format Gap Analysis
Check what content formats competitors use that you don't:
| Format | You | Competitor A | Competitor B | Gap? |
|---|---|---|---|---|
| Blog posts | ✓ | ✓ | ✓ | No |
| Case studies | ✗ | ✓ | ✓ | Yes |
| Comparison pages | ✗ | ✓ | ✗ | Partial |
| Templates/tools | ✗ | ✓ | ✓ | Yes |
| Video content | ✗ | ✗ | ✓ | Partial |
| Glossary/wiki | ✗ | ✓ | ✗ | Partial |
| Webinars/events | ✗ | ✓ | ✓ | Yes |
| Podcasts | ✗ | ✗ | ✓ | Partial |
Step 6: Audience Journey Gap Analysis
Map content to the buyer journey:
| Journey Stage | Questions | Your Content | Gap? |
|---|---|---|---|
| Awareness | "What is {topic}?" | {exists/missing} | {Yes/No} |
| Consideration | "Best {solution} for {use case}" | {exists/missing} | {Yes/No} |
| Decision | "{You} vs {competitor}" | {exists/missing} | {Yes/No} |
| Onboarding | "How to set up {product}" | {exists/missing} | {Yes/No} |
| Expansion | "Advanced {feature} tips" | {exists/missing} | {Yes/No} |
| Advocacy | "How {customer} achieved {result}" | {exists/missing} | {Yes/No} |
Step 7: AI/GEO Gap Analysis
Check if your content appears in AI-generated answers:
- Search your core keywords on Google (check AI Overviews)
- Check if your site is cited in AI-generated responses
- Note which competitors ARE cited
- Identify what those cited pages have that yours don't: - Structured data - Clear, concise definitions - Tables and comparison charts - FAQ sections - Authoritative citations
Step 8: Prioritize Opportunities
Score each gap:
| Factor | Weight | Score 1-10 |
|---|---|---|
| Search volume potential | 30% | How much traffic could this drive? |
| Business alignment | 25% | How relevant to our product/service? |
| Competition difficulty | 20% | How hard to rank? (inverse: easy = high score) |
| Content effort | 15% | How much work to create? (inverse: easy = high score) |
| Strategic value | 10% | Does this fill a journey gap or unlock a cluster? |
Output Format
# Content Gap Analysis: {Domain}
Date: {date}
Competitors Analyzed: {list}
Total Gaps Found: {count}
Executive Summary
{2-3 sentences on the biggest opportunity areas}
Keyword Gaps (Competitor Keywords You're Missing)
High Priority (Volume > 1,000, KD < 40)
Keyword Volume KD Competitor Their Position Content Type Needed {keyword} {vol} {kd} {competitor} #{pos} {type}
Medium Priority (Volume 200-1,000, KD < 50)
{Same table format}
Topic Cluster Gaps
Missing Clusters (Competitors have, you don't)
Cluster Topic Competitor Coverage Est. Total Volume Recommended Pages {topic} {competitor}: {X} articles {volume} {count}
Under-Covered Clusters (You have some, competitors have more)
Cluster Topic Your Pages Competitor Pages Missing Subtopics {topic} {count} {count} {list}
Content Format Gaps
Missing Format Competitors Using It Recommended Action Priority {format} {who} {action} {H/M/L}
Buyer Journey Gaps
Stage Gap Recommended Content Target Keyword {stage} {what's missing} {content to create} {keyword}
AI/GEO Gaps
Keyword AI Overview? You Cited? Fix {keyword} Yes No {action}
Prioritized Content Plan
# Content Piece Type Target Keyword Volume Priority Score Gap Type 1 {title} {blog/page/tool} {keyword} {vol} {score}/10 {keyword/topic/format/journey}
Quick Wins (Low Effort, High Impact)
- {Action} — {Why this is a quick win}
- {Action} — {Why}
- {Action} — {Why}
Important Notes
- Content gaps are opportunities, not obligations. Prioritize based on business impact, not just search volume.
- Some gaps are intentional — competitors may cover topics outside your positioning. Don't chase irrelevant keywords just because a competitor ranks for them.
- Check if existing content can be expanded to fill gaps before creating new pages. Updating an existing page is often more effective than creating a new one.
- Seasonal keywords may show as gaps during off-seasons. Check trends before acting.
- Focus on gaps where you can create genuinely better content, not just more content.