← All Skills
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:

  1. Crawl the sitemap — Fetch {domain}/sitemap.xml to list all published pages
  2. Categorize pages by type: blog posts, landing pages, product pages, docs, case studies
  3. Map topics covered — What keywords/topics does each page target?
If the user has a codebase, check:
  • 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:

  1. Fetch competitor sitemaps{competitor}/sitemap.xml
  2. List their blog/resource pages
  3. Categorize their content by topic cluster
If SemRush API is available:
# 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:

FormatYouCompetitor ACompetitor BGap?
Blog postsNo
Case studiesYes
Comparison pagesPartial
Templates/toolsYes
Video contentPartial
Glossary/wikiPartial
Webinars/eventsYes
PodcastsPartial

Step 6: Audience Journey Gap Analysis

Map content to the buyer journey:

Journey StageQuestionsYour ContentGap?
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:

  1. Search your core keywords on Google (check AI Overviews)
  2. Check if your site is cited in AI-generated responses
  3. Note which competitors ARE cited
  4. Identify what those cited pages have that yours don't:
  5. - Structured data - Clear, concise definitions - Tables and comparison charts - FAQ sections - Authoritative citations

Step 8: Prioritize Opportunities

Score each gap:

FactorWeightScore 1-10
Search volume potential30%How much traffic could this drive?
Business alignment25%How relevant to our product/service?
Competition difficulty20%How hard to rank? (inverse: easy = high score)
Content effort15%How much work to create? (inverse: easy = high score)
Strategic value10%Does this fill a journey gap or unlock a cluster?
Priority Score = Weighted average

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)

KeywordVolumeKDCompetitorTheir PositionContent 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 TopicCompetitor CoverageEst. Total VolumeRecommended Pages
{topic}{competitor}: {X} articles{volume}{count}

Under-Covered Clusters (You have some, competitors have more)

Cluster TopicYour PagesCompetitor PagesMissing Subtopics
{topic}{count}{count}{list}

Content Format Gaps

Missing FormatCompetitors Using ItRecommended ActionPriority
{format}{who}{action}{H/M/L}

Buyer Journey Gaps

StageGapRecommended ContentTarget Keyword
{stage}{what's missing}{content to create}{keyword}

AI/GEO Gaps

KeywordAI Overview?You Cited?Fix
{keyword}YesNo{action}

Prioritized Content Plan

#Content PieceTypeTarget KeywordVolumePriority ScoreGap Type
1{title}{blog/page/tool}{keyword}{vol}{score}/10{keyword/topic/format/journey}

Quick Wins (Low Effort, High Impact)

  1. {Action} — {Why this is a quick win}
  2. {Action} — {Why}
  3. {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.