What Content Gap Analysis Finds
Four types of gaps:
- Topic gaps — subjects your competitors cover that you don't have pages for
- Keyword gaps — queries your competitors rank for that you don't
- Format gaps — content types competitors have (video, tools, calculators) that you lack
- PAA gaps — specific PAA questions competitors answer that you don't
Step 1: Competitive Set Definition
Define 3-5 real competitors (NOT directories, NOT aggregators like Yelp — only businesses competing directly for the same customers). Exclude:
- Directory listings (Yelp, Angi, HomeAdvisor)
- Aggregators (local.com, manta.com)
- Reddit, Quora, news sites
Competitor selection criteria:
- Serves the same service area
- Targets the same primary services
- Business model similar (not franchise vs. local independent unless that's the comparison)
Step 2: Competitor Content Inventory
For each competitor, catalog:
- All pages in their sitemap (via
sitemap-analyzer) - All ranking keywords at positions 1-30 (via
dataforseo-keywordsKeywords for Site endpoint) - All PAA questions their top pages answer (extract H3s from top 10 pages)
Output: a master list of content pieces per competitor.
Step 3: Topic Gap Matrix
Build a matrix: competitor content vs. your content.
| Topic / Content Piece | Competitor 1 | Competitor 2 | Competitor 3 | You | |----------------------|-------------|-------------|-------------|-----| | Roof replacement guide | ✓ | ✓ | ✓ | ✗ | | Storm damage insurance | ✓ | ✓ | ✗ | ✗ | | Roof types comparison | ✓ | ✗ | ✗ | ✗ |
Priority:
- Topic in 3/3 competitors + not in yours = CRITICAL gap (the market expects this)
- Topic in 2/3 competitors + not in yours = HIGH priority
- Topic in 1/3 competitors + not in yours = MEDIUM priority (may be a niche opportunity)
Step 4: Keyword Gap Analysis
Use dataforseo-keywords Keywords for Site endpoint to extract:
- All keywords competitor 1 ranks for (positions 1-30)
- All keywords competitor 2 ranks for (positions 1-30)
- All keywords YOU rank for (positions 1-30)
Find: (competitor 1 ∪ competitor 2 ∪ competitor 3) MINUS your keywords = gap list.
Filter gap list by:
- Volume > 50/month
- Intent: commercial or transactional (buyer keywords first)
- Not branded for a competitor
Step 5: Format Gap Analysis
Review the content FORMAT of top-ranking competitor pages:
- Do they have interactive tools (roofing calculators, cost estimators)?
- Do they have video content embedded?
- Do they have comparison tables you don't?
- Do they have downloadable guides or checklists?
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.
Step 6: PAA Gap Analysis
For each service you offer, query Google and extract all Level 1-2 PAA questions. Cross-reference with your content:
- Questions answered on competitor pages but NOT answered anywhere on your site = PAA gap
- Questions with no strong source in your niche = first-mover opportunity
Prioritization and Roadmap
Output: prioritized content opportunity list
| Opportunity | Type | Priority | Est. Volume | Quick Win? | |-------------|------|----------|------------|------------| | Roof replacement guide | Topic | Critical | 500/mo | No (needs full pillar) | | "How much does storm damage repair cost?" | PAA | High | 200/mo | Yes (600-word PAA post) | | Metal vs asphalt comparison | Topic | Medium | 150/mo | Yes (1,500 word comparison) |
Quick wins (PAA posts, FAQ additions): execute in weeks 1-4. Full topic builds (pillar + cluster): schedule for months 1-3.
Cross-References
keyword-researcher— SERP mode generates gap data via keyword analysisdataforseo-keywords— keywords-for-site endpoint for keyword gap datasitemap-analyzer— competitor page inventorypaa-content-engine— PAA gap productiontopic-cluster— topic cluster builds for critical topic gaps
#seo-sop #seo #content #competitive-analysis #gaps #keyword-research