Keyword gap analysis step by step: the process that actually finds winnable terms
Most guides hand you a seven-step list. Compare, export, sort, prioritize. Clean. Tidy. Almost useless in practice, because step four is always "filter the data," and nobody tells you what threshold to use or why.
I ran a gap analysis on a B2B services site last quarter and found 340 keyword opportunities. We acted on six of them. Those six now bring in about 40% of the site's organic traffic. The other 334 were noise, and the only reason I know which was which is that the process below forced me to rank them by something other than search volume.
That's the part I want to give you here: the exact steps, the numbers I used, and the filters that kept us from drowning.
Key Takeaways
- A keyword gap analysis finds queries your competitors rank for and you don't—but the raw list is not the deliverable. The prioritized list is.
- Sort by opportunity score, not by volume. Volume rewards you with vanity terms you'll never rank for.
- Match your gap to page intent. One keyword, one page. Mixing intents on a single URL wastes the whole effort.
- Re-run the analysis every quarter. Competitors shift, and so does what you can realistically win.
- Free tools can do 80% of this. The paid ones mostly save you time, not insight.
What a keyword gap analysis really is (and what it isn't)
Strip the jargon and it comes down to one comparison: keywords your competitors rank for, keywords you rank for, and the space between them. That space is your gap.
Here's the thing though. Not every gap is worth closing. Some keywords sit in your gap because they're irrelevant to what you sell. Some are relevant but dominated by sites with ten times your authority. And some are relevant, winnable, and completely ignored—those are the ones that matter.
The three types of gaps you'll see
When you run the comparison, the results fall into recognizable buckets:
- Missing terms—competitors rank, you have nothing. The obvious target.
- Weak terms—you rank, but position 15 or worse. Often a content refresh fixes this, cheaper than a new page.
- Shared terms where you're behind—both rank, they're at position 3, you're at position 18. This is a content depth problem, not a coverage problem.
Most guides treat these three as one category. They're not. The fix, the effort, and the timeline differ for each.
The step-by-step process
Enough framing. Here's the sequence I use, with the actual numbers.
Step 1: pick your real competitors
Not the companies you admire. The ones showing up in the results for the queries you care about. I once spent two hours building a competitor list from a "top 50 companies in the sector" article, then checked the actual results and found half of them didn't rank for anything relevant. Wasted afternoon.
Do this instead: take your ten most important target queries, look at what ranks, and list who keeps appearing. That's your competitor set. It's usually four to six domains, not fifty.
Step 2: export the keyword sets
Pull the ranking keyword lists for each competitor and for your own site. Most SEO platforms let you export these to a spreadsheet. A domain with moderate content volume might return 2,000 to 8,000 keywords; smaller sites return a few hundred.
You want four columns at minimum: keyword, search volume, the ranking URL, and the position. If your tool gives you difficulty or CPC, keep those too. Everything else is decoration.
Step 3: build the comparison
Put competitor keywords in one sheet, yours in another, and flag anything in the competitor column that doesn't appear in yours. A VLOOKUP handles this in under a minute on a few thousand rows.
Filter out branded terms first. You'll see hundreds of queries containing a competitor's name, and unless you're writing a comparison page deliberately, they're not your targets.
What's left is your raw gap. On a typical mid-size site this lands somewhere between 200 and 1,500 keywords. That's too many to act on, which brings us to the step everyone skips.
Step 4: score and prioritize
Raw volume is a trap. A keyword with 12,000 monthly searches sounds great until you notice the top five results are national brands and the query has nothing to do with what you offer.
I score each keyword on three factors, multiplied together:
- Volume—monthly searches, in thousands. A 4,000-search term scores 4.
- Intent fit—how closely the query matches what you actually sell. Score it 1 to 3. A "how to" query is a 1 if you sell software, a 3 if you sell consulting.
- Winnability—your realistic shot at the top ten. If the results are all high-authority domains, this is a 0.5. If there's a mix of forums and thin pages, it's a 2 or 3.
A term scoring 4 × 3 × 2 lands at 24. A term scoring 12 × 1 × 0.5 lands at 6. The second one has three times the volume and a quarter of the value. That inversion is why volume-only sorting fails.
In my last run, sorting by score instead of volume flipped the priority order of the top twenty keywords almost completely. Six of the eventual winners had volumes under 1,000.
Step 5: map keywords to pages
Group the winners by intent before you assign them to URLs. Informational queries go to guides. Commercial queries need comparison or category pages. Mixing them on one page dilutes both.
One rule I hold firmly: one primary intent per page. If a keyword set has two distinct intents, it gets two pages. I've watched a single well-ranking page collapse after someone bolted a buying guide onto it.
Step 6: check what already exists
Before writing anything new, search your own site. About a third of the "missing" keywords in my last export were actually covered by an existing page that simply hadn't been optimized for them. Those are the cheapest wins available—sometimes a heading change and a few internal links.
This is where a content gap analysis tool earns its keep. Free options handle it adequately; you're mostly checking whether a topic already lives somewhere on your domain.
A comparison of tooling
You don't need expensive software to run this. Here's how the options stack up for the specific job of finding gaps.
| Tool type | Best for | Limitation | Cost |
|---|---|---|---|
| Google Keyword Planner | Volume and idea generation | No competitor gap data at all | Free |
| Free gap checkers | Small sites, quick sanity checks | Capped rows, shallow data | Free |
| Full SEO platforms | Large domains, repeated quarterly runs | Monthly subscription, learning curve | Paid |
| Spreadsheet + one paid export | Teams that want control over scoring | Manual, breaks past a few thousand rows | Low |
My honest take: if your site has under 200 pages, a free checker plus a spreadsheet will get you 80% of the way. The paid platforms save hours on large domains, but they won't make the prioritization decisions for you. That part stays manual.
How often should you rerun this?
Quarterly. Not annually, not monthly.
Monthly is noise—rankings bounce and you'll chase fluctuations. Annually is too slow; competitors publish new pages and your gap shifts. Four runs a year gives you enough signal to catch genuine movement without drowning in churn.
Between runs, track two things: which gap keywords you've now covered, and which competitors added new pages you don't have an answer to. That second list becomes your next quarter's target set.
Does this work for YouTube and other platforms?
Yes, with a shift in what you're measuring. On YouTube, the gap is about topics covered by competing channels that your channel hasn't addressed. A YouTube content gap finder looks at video titles and tags rather than page rankings, but the logic holds: find the topic space, check your coverage, score by relevance and view potential.
What changes is the scoring weight. Search volume matters less than watch-time potential, and winnability depends on whether the topic has an audience on that platform at all. Some queries that perform brilliantly on Google fall flat as video.
The part nobody mentions
Your gap analysis will keep growing. Every quarter you'll find new terms competitors rank for, and if you treated the whole list as a to-do, you'd never finish.
The discipline isn't in finding gaps. It's in deciding which ones to leave open. Six good keywords, executed properly, beat three hundred sitting in a spreadsheet waiting for attention they'll never get. Pick your six. Ship them. Then come back in three months and pick six more.