{"slug":"content-gap-analysis","title":"Content Gap Analysis — Finding Missing Content Opportunities","tags":["seo","content","competitive-analysis","gaps","keyword-research"],"agent_summary":"Identifies content gaps between a site and its top competitors: topic gaps, keyword gaps, format gaps, and PAA gaps. Produces a prioritized list of content opportunities mapped to search intent.","trigger_phrases":["content gap analysis","content gaps","what content am I missing","competitor content gaps","keyword gaps","topic gaps","missing content","content opportunities"],"runnable":true,"markdown":"\n## What Content Gap Analysis Finds\n\nFour types of gaps:\n\n1. **Topic gaps** — subjects your competitors cover that you don't have pages for\n2. **Keyword gaps** — queries your competitors rank for that you don't\n3. **Format gaps** — content types competitors have (video, tools, calculators) that you lack\n4. **PAA gaps** — specific PAA questions competitors answer that you don't\n\n## Step 1: Competitive Set Definition\n\nDefine 3-5 real competitors (NOT directories, NOT aggregators like Yelp — only businesses competing directly for the same customers). Exclude:\n- Directory listings (Yelp, Angi, HomeAdvisor)\n- Aggregators (local.com, manta.com)\n- Reddit, Quora, news sites\n\nCompetitor selection criteria:\n- Serves the same service area\n- Targets the same primary services\n- Business model similar (not franchise vs. local independent unless that's the comparison)\n\n## Step 2: Competitor Content Inventory\n\nFor each competitor, catalog:\n- All pages in their sitemap (via `sitemap-analyzer`)\n- All ranking keywords at positions 1-30 (via `dataforseo-keywords` Keywords for Site endpoint)\n- All PAA questions their top pages answer (extract H3s from top 10 pages)\n\nOutput: a master list of content pieces per competitor.\n\n## Step 3: Topic Gap Matrix\n\nBuild a matrix: competitor content vs. your content.\n\n| Topic / Content Piece | Competitor 1 | Competitor 2 | Competitor 3 | You |\n|----------------------|-------------|-------------|-------------|-----|\n| Roof replacement guide | ✓ | ✓ | ✓ | ✗ |\n| Storm damage insurance | ✓ | ✓ | ✗ | ✗ |\n| Roof types comparison | ✓ | ✗ | ✗ | ✗ |\n\nPriority:\n- Topic in 3/3 competitors + not in yours = CRITICAL gap (the market expects this)\n- Topic in 2/3 competitors + not in yours = HIGH priority\n- Topic in 1/3 competitors + not in yours = MEDIUM priority (may be a niche opportunity)\n\n## Step 4: Keyword Gap Analysis\n\nUse `dataforseo-keywords` Keywords for Site endpoint to extract:\n- All keywords competitor 1 ranks for (positions 1-30)\n- All keywords competitor 2 ranks for (positions 1-30)\n- All keywords YOU rank for (positions 1-30)\n\nFind: (competitor 1 ∪ competitor 2 ∪ competitor 3) MINUS your keywords = gap list.\n\nFilter gap list by:\n- Volume > 50/month\n- Intent: commercial or transactional (buyer keywords first)\n- Not branded for a competitor\n\n## Step 5: Format Gap Analysis\n\nReview the content FORMAT of top-ranking competitor pages:\n- Do they have interactive tools (roofing calculators, cost estimators)?\n- Do they have video content embedded?\n- Do they have comparison tables you don't?\n- Do they have downloadable guides or checklists?\n\nFormat gaps are harder to address but create strong differentiation. A competitor with a \"Roof Replacement Cost Calculator\" holds that query category even if your text content is better.\n\n## Step 6: PAA Gap Analysis\n\nFor each service you offer, query Google and extract all Level 1-2 PAA questions. Cross-reference with your content:\n- Questions answered on competitor pages but NOT answered anywhere on your site = PAA gap\n- Questions with no strong source in your niche = first-mover opportunity\n\n## Prioritization and Roadmap\n\nOutput: prioritized content opportunity list\n\n| Opportunity | Type | Priority | Est. Volume | Quick Win? |\n|-------------|------|----------|------------|------------|\n| Roof replacement guide | Topic | Critical | 500/mo | No (needs full pillar) |\n| \"How much does storm damage repair cost?\" | PAA | High | 200/mo | Yes (600-word PAA post) |\n| Metal vs asphalt comparison | Topic | Medium | 150/mo | Yes (1,500 word comparison) |\n\nQuick wins (PAA posts, FAQ additions): execute in weeks 1-4.\nFull topic builds (pillar + cluster): schedule for months 1-3.\n\n## Cross-References\n\n- `keyword-researcher` — SERP mode generates gap data via keyword analysis\n- `dataforseo-keywords` — keywords-for-site endpoint for keyword gap data\n- `sitemap-analyzer` — competitor page inventory\n- `paa-content-engine` — PAA gap production\n- `topic-cluster` — topic cluster builds for critical topic gaps\n\n#seo-sop #seo #content #competitive-analysis #gaps #keyword-research\n","html":"<h2>What Content Gap Analysis Finds</h2>\n<p>Four types of gaps:</p>\n<ol>\n<li><strong>Topic gaps</strong> — subjects your competitors cover that you don't have pages for</li>\n<li><strong>Keyword gaps</strong> — queries your competitors rank for that you don't</li>\n<li><strong>Format gaps</strong> — content types competitors have (video, tools, calculators) that you lack</li>\n<li><strong>PAA gaps</strong> — specific PAA questions competitors answer that you don't</li>\n</ol>\n<h2>Step 1: Competitive Set Definition</h2>\n<p>Define 3-5 real competitors (NOT directories, NOT aggregators like Yelp — only businesses competing directly for the same customers). Exclude:</p>\n<ul>\n<li>Directory listings (Yelp, Angi, HomeAdvisor)</li>\n<li>Aggregators (local.com, manta.com)</li>\n<li>Reddit, Quora, news sites</li>\n</ul>\n<p>Competitor selection criteria:</p>\n<ul>\n<li>Serves the same service area</li>\n<li>Targets the same primary services</li>\n<li>Business model similar (not franchise vs. local independent unless that's the comparison)</li>\n</ul>\n<h2>Step 2: Competitor Content Inventory</h2>\n<p>For each competitor, catalog:</p>\n<ul>\n<li>All pages in their sitemap (via <code>sitemap-analyzer</code>)</li>\n<li>All ranking keywords at positions 1-30 (via <code>dataforseo-keywords</code> Keywords for Site endpoint)</li>\n<li>All PAA questions their top pages answer (extract H3s from top 10 pages)</li>\n</ul>\n<p>Output: a master list of content pieces per competitor.</p>\n<h2>Step 3: Topic Gap Matrix</h2>\n<p>Build a matrix: competitor content vs. your content.</p>\n<p>| Topic / Content Piece | Competitor 1 | Competitor 2 | Competitor 3 | You |\n|----------------------|-------------|-------------|-------------|-----|\n| Roof replacement guide | ✓ | ✓ | ✓ | ✗ |\n| Storm damage insurance | ✓ | ✓ | ✗ | ✗ |\n| Roof types comparison | ✓ | ✗ | ✗ | ✗ |</p>\n<p>Priority:</p>\n<ul>\n<li>Topic in 3/3 competitors + not in yours = CRITICAL gap (the market expects this)</li>\n<li>Topic in 2/3 competitors + not in yours = HIGH priority</li>\n<li>Topic in 1/3 competitors + not in yours = MEDIUM priority (may be a niche opportunity)</li>\n</ul>\n<h2>Step 4: Keyword Gap Analysis</h2>\n<p>Use <code>dataforseo-keywords</code> Keywords for Site endpoint to extract:</p>\n<ul>\n<li>All keywords competitor 1 ranks for (positions 1-30)</li>\n<li>All keywords competitor 2 ranks for (positions 1-30)</li>\n<li>All keywords YOU rank for (positions 1-30)</li>\n</ul>\n<p>Find: (competitor 1 ∪ competitor 2 ∪ competitor 3) MINUS your keywords = gap list.</p>\n<p>Filter gap list by:</p>\n<ul>\n<li>Volume > 50/month</li>\n<li>Intent: commercial or transactional (buyer keywords first)</li>\n<li>Not branded for a competitor</li>\n</ul>\n<h2>Step 5: Format Gap Analysis</h2>\n<p>Review the content FORMAT of top-ranking competitor pages:</p>\n<ul>\n<li>Do they have interactive tools (roofing calculators, cost estimators)?</li>\n<li>Do they have video content embedded?</li>\n<li>Do they have comparison tables you don't?</li>\n<li>Do they have downloadable guides or checklists?</li>\n</ul>\n<p>Format gaps are harder to address but create strong differentiation. A competitor with a \"Roof Replacement Cost Calculator\" holds that query category even if your text content is better.</p>\n<h2>Step 6: PAA Gap Analysis</h2>\n<p>For each service you offer, query Google and extract all Level 1-2 PAA questions. Cross-reference with your content:</p>\n<ul>\n<li>Questions answered on competitor pages but NOT answered anywhere on your site = PAA gap</li>\n<li>Questions with no strong source in your niche = first-mover opportunity</li>\n</ul>\n<h2>Prioritization and Roadmap</h2>\n<p>Output: prioritized content opportunity list</p>\n<p>| Opportunity | Type | Priority | Est. Volume | Quick Win? |\n|-------------|------|----------|------------|------------|\n| Roof replacement guide | Topic | Critical | 500/mo | No (needs full pillar) |\n| \"How much does storm damage repair cost?\" | PAA | High | 200/mo | Yes (600-word PAA post) |\n| Metal vs asphalt comparison | Topic | Medium | 150/mo | Yes (1,500 word comparison) |</p>\n<p>Quick wins (PAA posts, FAQ additions): execute in weeks 1-4.\nFull topic builds (pillar + cluster): schedule for months 1-3.</p>\n<h2>Cross-References</h2>\n<ul>\n<li><code>keyword-researcher</code> — SERP mode generates gap data via keyword analysis</li>\n<li><code>dataforseo-keywords</code> — keywords-for-site endpoint for keyword gap data</li>\n<li><code>sitemap-analyzer</code> — competitor page inventory</li>\n<li><code>paa-content-engine</code> — PAA gap production</li>\n<li><code>topic-cluster</code> — topic cluster builds for critical topic gaps</li>\n</ul>\n<p>#seo-sop #seo #content #competitive-analysis #gaps #keyword-research</p>\n"}