Niblah

Verified
SEO

Ahrefs content gap analysis: complete step-by-step (with template)

Albin Hot
By Albin Hot
February 9, 20265 min read

An Ahrefs content gap analysis shows which keywords your competitors rank for while your site does not (yet). It is one of the fastest ways to turn "we need content ideas" into a prioritized roadmap.

Important: a "gap" does not automatically mean "write a new blog post". Sometimes the best move is to upgrade an existing page, fix internal links, or decide a keyword is not relevant to your business.

What is a content gap analysis (and what it is not)?

In practice there are 3 gaps:

  • Keyword gap: competitors rank for a keyword, you do not.
  • Topic gap: competitors cover a topic cluster, you only cover part of it (or none).
  • SERP gap: competitors match intent better; you might have content, but the wrong page type.
  • A strong analysis combines all three.

    When is this most useful?

  • Your site has some baseline authority (you sometimes show up in the top 100).
  • You want to prioritize faster than brainstorming.
  • You want business value (leads/revenue), not just traffic.
  • If you almost never rank in the top 100, the usual order is: technical basics + internal links + a few strong pages, then scale with gap work.

    Step 0 - Set scope and market (2 minutes)

  • Scope: full domain, or a folder like /blog/?
  • Market: choose the country + language you actually target.
  • Goal: informational only, or also commercial/transactional keywords?
  • Write one sentence: "We use this gap analysis to plan X page types for Y market."

    Step 1 - Pick real competitors (avoid noise)

    In Ahrefs: Site Explorer -> Organic competitors.

    Use it as a starting point, then manual check:

  • Do they sell the same thing?
  • Are they not just a giant info site?
  • Do they get traffic from keywords that could convert for you?
  • Practical: pick 3-5 direct competitors. Optionally add 1-2 publishers separately for inspiration.

    Step 2 - Run the Content Gap tool

    In Ahrefs: Site Explorer -> Content gap.

  • "Show keywords that the below targets rank for": competitors
  • "But the following target doesn't rank for": your domain
  • Good starting settings:

  • Intersections: 2+ (at least 2 competitors rank)
  • Competitor position: top 10 (or top 20 for broader discovery)
  • Your site: not in top 100 (or not in top 50 if stricter)
  • Tip: run two versions:

  • Version A: top 10 + intersections 2+ (quick wins)
  • Version B: top 20 + intersections 3+ (strategic topics)
  • Step 3 - Filter the list into something usable

    The raw list is always too big. Filter by:

  • Intersections: 2+ or 3+ (reduces brand noise)
  • Volume: pick a range that fits your niche (example 50-5000)
  • KD: set a realistic cap (example <= 20 for new sites, <= 40 for strong sites)
  • Clicks/traffic potential: avoid keywords with lots of "SERP noise"
  • Exclude: competitor brands, "login", "jobs", "free" (if you are paid), etc.
  • Do not look at volume only. A keyword with volume 100 can outperform volume 2000 if intent is stronger.

    Step 4 - Validate intent and SERP features (10 keywords = 10 minutes)

    Open the SERP for 10 candidates (in Ahrefs or Google) and check:

  • What ranks: blog, category, product, tool, local page?
  • SERP noise: ads, shopping, local pack, AI overview, videos, PAA
  • Content strength: thin pages or truly strong content?
  • If the top 10 has a completely different intent than what you can/want to create: skip, or build a different page type.

    Step 5 - New vs optimize (avoid cannibalization)

    For each cluster:

  • Do you already have a page that can win this intent?
  • - Yes: optimize (structure, snippet, intent match, internal links)

    - No: create a new page

    Rule: one primary intent per page. Do not create 3 pages trying to rank for the same thing.

    Step 6 - Turn results into a content plan (template)

    Build one simple sheet with:

  • keyword / cluster
  • intent (learn/compare/buy)
  • page type (blog, landing, category, comparison)
  • current URL (if it exists)
  • planned new slug (for planning)
  • KD, volume, clicks (indicative)
  • business value (high/medium/low)
  • effort (low/medium/high)
  • priority (P1/P2/P3)
  • internal links needed (from which pages)
  • 1-2 competitor URLs to benchmark
  • Template:

    keyword_cluster | intent | page_type | current_url | new_slug | kd | volume | clicks | business_value | effort | priority | internal_links_from | competitor_urls

    Step 7 - Publish in batches and measure

  • Work per cluster (1 hub + 3-8 supporting pages)
  • Add internal links immediately (support <-> hub)
  • Measure in Search Console: impressions -> clicks -> positions
  • Give it 4-12 weeks (longer for new sites)
  • Focus on positions 4-20: that is often the fastest growth.

    Common mistakes

  • Picking the wrong competitors (marketplaces, Wikipedia, news)
  • Selecting by volume only and ignoring intent/business value
  • Skipping SERP checks
  • Writing new pages while an existing page could be upgraded
  • Not planning internal links
  • Targeting high KD too early
  • Mini checklist

  • Market (country/language) is correct
  • Picked 3-5 real competitors
  • Ran Content Gap with intersections 2+
  • Filtered brand terms and noise
  • Manually checked 10 SERPs for intent
  • Decided new vs optimize per cluster
  • Filled a sheet with priority + effort
  • Planned content batches + internal links
  • Measurement is set (GSC + GA4)
  • Albin Hot

    Albin Hot

    Albin Hot is Senior SEO Specialist bij Niblah, een toonaangevend marketing platform voor zoekmachines, AI en meer. Hij werkt al meer dan 5 jaar in SEO en specialiseert zich in omzetgedreven strategieën in nauwe samenwerking met multidisciplinaire teams.

    Connect op LinkedIn