Content Gap Analysis: Find What Competitors Rank For That You Don't
Content strategy without gap analysis is guesswork. This method extracts competitor rankings, maps the gaps against your content, and produces a priority-ordered production plan.
Step 1: Identify 3 True Competitors
True competitors = sites ranking for the same keywords in the same geography and niche. They are NOT:
- Industry publications (Angi, HomeAdvisor for local service businesses)
- National brands if you are local
- Sites in adjacent niches
Select 3 competitors with the closest keyword overlap to your target site.
Step 2: Extract Competitor Rankings
For each competitor, extract their top-ranking pages and keywords:
Method A: DataForSEO (recommended)
- Endpoint:
GET /v3/serp/competitor/keywords - Pull top 100 ranking keywords per competitor
- Filter: position 1-20, target country, exclude branded terms
Method B: Manual SERP mining
- Search primary keyword + "site:[competitor-domain]"
- Review top 20 indexed pages
- For each page: identify primary keyword, ranking position, estimated monthly visits
Output per competitor:
COMPETITOR: [domain]
Top 20 ranking pages:
1. [URL] | [primary keyword] | [position] | [est. monthly visits]
2. ...
Step 3: Build the Gap Map
Compare competitor rankings against your site's existing content:
Gap categories:
| Category | Definition | Priority | |----------|-----------|---------| | Hard gap | Competitor ranks positions 1-5, you have no content | Highest | | Soft gap | Competitor ranks 1-10, you rank 15-30 | High | | Coverage gap | You have content but it's thinner than competitor | Medium | | Opportunity gap | Competitor doesn't rank it well (position 11-30) | Medium |
Step 4: Gap Prioritization Matrix
Score each gap keyword on 4 factors:
| Factor | Weight | Scoring | |--------|--------|---------| | Search volume | 25% | High=3 / Medium=2 / Low=1 | | Keyword difficulty | 25% | Easy=3 / Medium=2 / Hard=1 | | Commercial intent | 30% | Transactional=3 / Commercial=2 / Informational=1 | | Existing asset | 20% | None=3 / Thin=2 / Solid but needs update=1 |
Priority score: Sum of weighted values. Max = 10.
- Score 7.5-10: Produce immediately (hard gap + commercial value)
- Score 5-7.4: Plan for next 90 days
- Score below 5: Monitor quarterly
Step 5: Content Brief Generation Per Gap
For each prioritized gap, generate a brief:
GAP BRIEF:
- Target keyword: [exact phrase]
- Gap type: [Hard / Soft / Coverage / Opportunity]
- Priority score: [X.X]
- Competitor page: [URL that's outranking]
- Competitor word count: [number]
- Target word count: [competitor + 15%]
- Content type: [article / service page / location page / FAQ / comparison]
- Key sections to cover: [list from competitor H2 structure + gaps they missed]
- CTA goal: [call / form / email / purchase]
Step 6: 90-Day Content Calendar Output
Sort gaps by priority score and fill the calendar:
| Month | Week | Keyword | Content Type | Priority Score | |-------|------|---------|-------------|---------------| | Month 1 | Week 1 | [gap 1] | [type] | [score] | | Month 1 | Week 2 | [gap 2] | [type] | [score] | | Month 1 | Week 3 | [gap 3] | [type] | [score] | | Month 1 | Week 4 | [gap 4] | [type] | [score] | | Month 2 | Week 1 | [gap 5] | [type] | [score] | ...
One new content piece per week = 12 pieces in 90 days. Two per week = 24. Match production capacity to plan.
What to Do With Coverage Gaps
Coverage gaps (you have content but thinner than competitor):
- Pull the existing page
- Run content-refiner-merge-method workflow
- Identify the specific sections competitor has that you don't
- Add those sections without rewriting what's working
- Update publish date after meaningful additions
Coverage gap updates should take 1-3 hours per page. Full rewrites only if the page is fundamentally wrong in angle or intent.
#content-sop #content-gap #competitor #keyword-research