Module 094 Intermediate 12 min read

Competitor Research

Identifying true SEO competitors vs business competitors. Backlink, keyword, and content gap analysis. SERP overlap math, competitor link velocity tracking, and the 2026 AI citation competitive layer.

By SEO Mastery Editorial

The biggest mistake in SEO competitor research is studying the wrong competitors. Your business competitor is the one your sales team battles. Your SEO competitor is whoever ranks ahead of you on the queries you care about — and they are often a publisher, an aggregator, or a Reddit thread, not the company you compete with for revenue.

TL;DR

  • SERP overlap is the only true definition of an SEO competitor. If you both rank in the top 20 for >100 of your priority keywords, you are competitors regardless of business model.
  • Three gap analyses are non-negotiable: keyword gap (queries they rank for that you do not), backlink gap (domains linking to them but not you), content gap (topics they cover that you do not).
  • Add an AI citation gap to your 2026 competitive workflow. Track which prompts cite competitors in ChatGPT, Perplexity, Claude, and Gemini that do not cite you.

The mental model

Competitive research is like scouting in a sports league. The team you play next week is not necessarily the team you should study most — the one whose tactics shape the league standings is. In SEO terms, your business rival might be a brand you ignore in the SERPs because you both rank below a publisher who eats 60% of the demand. That publisher is the one to study.

The other half: competitive research is forward-looking, not retrospective. The point is not to copy what worked for someone in 2023. The point is to identify where their tactics created leverage — a high-quality backlink source you have not tapped, a content cluster you have not built, a SERP feature they own — and to generate hypotheses you can test on your own site.

A trap to avoid: the obsessive-comparison spiral. You can spend a month building dashboards that compare your site to five competitors on twelve metrics and emerge with no actionable plan. The output of competitor research must be a prioritized list of opportunities, not a dashboard.

Deep dive: the 2026 reality

The competitive research stack in 2026 has five layers.

1. SERP overlap (true competitor identification). Tools like Ahrefs Competing Domains, Semrush Organic Competitors, and Sistrix Competitor all compute the same thing: of your top N ranking keywords, how many other domains also rank in the top 20? Sort by overlap count and weight by keyword value.

2. Keyword gap analysis.

ToolOutput
Ahrefs Content GapKeywords competitor 1 + 2 + 3 rank for, you do not
Semrush Keyword GapSame, with intent classification
SE Ranking Keyword GapSame, cheaper
Sistrix CompareEU-strong, includes visibility-index weighting

The output is a CSV with thousands of rows. Filter aggressively to: search volume >= 100, intent = informational or commercial, and difficulty <= your domain’s reachable threshold.

3. Backlink gap analysis. Domains linking to multiple competitors but not to you are pre-qualified prospects. Use Ahrefs Link Intersect or Majestic Bulk Backlinks with a list of competitors as input.

4. Content gap analysis. Different from keyword gap — this is about topical coverage. Crawl competitors’ sitemaps, cluster URLs by topic with embeddings, compare your topic coverage to theirs. Screaming Frog SEO Spider + custom Python clustering is the engineer’s path. MarketMuse, Frase, Clearscope are managed alternatives.

5. AI citation gap analysis (the 2026 layer). Tools like Profound, Otterly, Peec AI, AthenaHQ, and Goodie AI track which URLs are cited as sources across ChatGPT, Perplexity, Claude, Gemini, Copilot, and AI Overviews for a given prompt set. The competitive question: of the prompts your category cares about, which competitors get cited and you do not?

Link velocity tracking. A linear backlink count is a snapshot. Velocity — the rate of new referring domains over time — predicts trajectory. Use Ahrefs Backlink Profile > New Referring Domains with a 90-day window for each competitor and chart the trend. A competitor whose velocity tripled in Q1 is gaining momentum you should investigate.

Competitor link velocity (new referring domains per month)
                Jan   Feb   Mar   Apr   May
You              42    38    45    51    47
Competitor A     61    78    94   118   132   <-- accelerating
Competitor B     33    31    35    34    36   <-- flat
Publisher X     104   108   112   115   119   <-- mature, stable

SERP overlap calculation. A simple Jaccard index gives you a directional measure:

overlap(you, them) = |keywords_you_rank ∩ keywords_they_rank| / |keywords_you_rank ∪ keywords_they_rank|

For a more useful weighted version:

weighted_overlap(you, them) = Σ (search_volume(k) where both rank top 20) / Σ (search_volume(k) where you rank top 20)

The weighted version surfaces competitors who overlap on valuable queries, not just any queries.

Visualizing it

flowchart TD
  A[Your top 1000 ranking keywords] --> B[Find domains also ranking top 20]
  B --> C[Compute weighted SERP overlap]
  C --> D[Top 5-10 SEO competitors]
  D --> E[Keyword gap: their ranks minus your ranks]
  D --> F[Backlink gap: their referring domains minus yours]
  D --> G[Content gap: their topic clusters minus yours]
  D --> H[AI citation gap: their citations minus yours]
  E --> I[Prioritized opportunity list]
  F --> I
  G --> I
  H --> I

Bad vs. expert

The bad approach

The marketing director gives the SEO a list of “main competitors” from the latest sales deck. The SEO plugs each one into Ahrefs, exports the keyword gap, and emails back a 4,000-row CSV with no annotation.

"Main competitors" from sales deck:
  - Competitor Alpha (B2B SaaS rival)
  - Competitor Beta (B2B SaaS rival)
  - Competitor Gamma (B2B SaaS rival)

Keyword gap output:
  47,832 keywords where Alpha ranks and we don't.
  31,455 keywords where Beta ranks and we don't.
  ...

This fails because none of those three may actually be SEO competitors. The real top-ranking domains for the queries that matter could be g2.com, getapp.com, trustradius.com, reddit.com, and a handful of category-specific publishers — none of which are sales rivals. The 4,000-row CSV is unactionable noise.

The expert approach

Compute weighted SERP overlap to find the real SEO competitors, then run gap analyses on them, then prioritize by opportunity score (volume × difficulty × commercial intent).

import pandas as pd

# Your keywords with rank and search volume from a rank tracker export
yours = pd.read_csv("our_ranks.csv")  # keyword, msv, our_rank
yours = yours[yours["our_rank"] <= 20]

# For each candidate domain, fetch their ranking keywords (Ahrefs/Semrush API)
candidates = ["g2.com", "getapp.com", "competitor-alpha.com", "reddit.com",
              "trustradius.com", "competitor-beta.com"]

overlap_rows = []
for domain in candidates:
    theirs = fetch_ranking_keywords(domain, top_n=20)  # via API
    joined = yours.merge(theirs, on="keyword", how="inner")
    weighted = joined["msv"].sum() / yours["msv"].sum()
    overlap_rows.append({"domain": domain, "weighted_overlap": weighted,
                         "keyword_count": len(joined)})

overlaps = pd.DataFrame(overlap_rows).sort_values("weighted_overlap", ascending=False)
print(overlaps.head(10))
# Then for the top 3 real competitors, compute opportunity score on the gap
gap = pd.read_csv("keyword_gap_top3.csv")  # keyword, msv, kd, top_competitor_rank
gap["opportunity"] = (
    gap["msv"]
    * (1 / (gap["top_competitor_rank"] ** 0.5))  # easier if competitor is lower
    * (1 - gap["kd"] / 100)                       # easier if low KD
)
top_targets = gap.sort_values("opportunity", ascending=False).head(50)

This works because the SEO competitors identified are the ones actually fighting you for SERP real estate, the gap analysis is run on them rather than on irrelevant business rivals, and the opportunity score surfaces the 50 keywords most worth attacking next.

Do this today

  1. In Ahrefs > Site Explorer > Organic Competitors or Semrush > Domain Overview > Organic Competitors, list the top 20 domains by SERP overlap with yours. Note any that surprise you (publishers, aggregators, Reddit, YouTube channels).
  2. Compute weighted SERP overlap by exporting your ranking keywords with search volumes, joining each candidate’s ranking keywords, and dividing volume-weighted intersection by your total volume. Top 5-10 by weighted overlap are your real SEO competitors.
  3. Run a keyword gap analysis in Ahrefs Content Gap with your domain as Target and your top 3 real competitors as Compared to. Filter: MSV >= 100, KD <= your reachable ceiling, intent = informational or commercial. Export.
  4. Compute an opportunity score per gap keyword: MSV * (1 / sqrt(competitor_rank)) * (1 - KD/100). Sort. Top 50 become your next quarter’s content backlog.
  5. Run a backlink gap (Link Intersect) in Ahrefs > More > Link Intersect with your domain plus your 3 competitors. Filter: DR >= 30, dofollow, root domain not already linking to you. Export. Top 100 become your link prospect list.
  6. Run a content gap by topic cluster. Crawl each competitor’s sitemap.xml with Screaming Frog, classify URLs by topic via embeddings (text-embedding-3-large) clustered with HDBSCAN. Compare cluster coverage to yours.
  7. Track link velocity: Ahrefs Site Explorer > Backlink profile > New referring domains with a 90-day window per competitor. Plot the trend. Investigate any competitor whose velocity is accelerating > 50% YoY.
  8. Subscribe to an AI citation tracker (Profound, Otterly, Peec AI). Define a prompt set of 100-300 prompts your buyers actually ask. Track citation share by competitor across ChatGPT, Perplexity, Claude, Gemini, and Google AI Overviews.
  9. Build a Looker Studio competitive scoreboard: weighted SoV, link velocity, AI citation share, content cluster coverage. Update monthly.
  10. Each quarter, present a one-page brief to leadership: who the real SEO competitors are, where the biggest gaps live, and what the next two strategic bets are. Do not present the dashboards. Present the conclusions.

Mark complete

Toggle to remember this module as mastered. Saved to your browser only.

More in this part

Part 12: Competitive Analysis & Strategy

View all on the home page →
  1. 094 Competitor Research You're here 12m
  2. 095 SEO Audits 20m
  3. 096 SEO Forecasting 22m