--- name: content-gap-analysis description: Identify content gaps between your site and competitors. Use when the user says "content gaps", "what am I missing", "competitor content", "content opportunities", "topics I should cover", "content gap analysis", or asks about finding topics and keywords their site doesn't cover but competitors do. --- # 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: ```bash # 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: ```bash # 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: 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: - 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? | **Priority Score = Weighted average** ## Output Format ```markdown # 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) 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.