How to Run a Competitor Keyword Gap Analysis (With Free Tools)
Somewhere out there, a competitor is ranking for search terms you’ve never even typed into a keyword tool. A keyword gap analysis finds those terms, sorts the winners from the junk, and hands you a ready-made content plan — and you can do the whole thing without paying for a single subscription.
A few years ago I was helping a small outdoor-gear blog figure out why a rival site kept outranking them. We spent an afternoon pulling the competitor’s rankings, and within twenty minutes the answer was obvious: the rival had forty-something articles targeting “best X for Y” comparison queries that my client’s site had never touched. No secret backlink strategy, no technical wizardry — just a pile of keywords sitting in a blind spot. That’s what a gap analysis is for. It turns “what should we write about?” from a guessing game into a list.
This guide walks through the full process using free tools only: Google Search Console, Google Keyword Planner, and the free tiers of a couple of well-known SEO tools. Expect the first run to take about two hours. After that, a monthly refresh takes ninety minutes or less.
What a keyword gap analysis actually is
A keyword gap analysis compares the search queries your site ranks for against the queries your competitors rank for, then isolates the overlap and the difference. The output is three buckets:
- Missing keywords. Terms at least one competitor ranks for where you have no ranking page at all. These are pure opportunity — new content ideas.
- Weak keywords. Terms where you rank, but lower than competitors (say you’re on page two and they’re in the top five). These are optimization targets for existing pages.
- Winning keywords. Terms where you outrank everyone. You don’t act on these — you protect them.
Most of the value sits in the first two buckets. Missing keywords tell you what to write next. Weak keywords tell you which existing pages deserve a rewrite, better internal links, or a refresh. If you haven’t done a structured keyword research pass before, this analysis effectively does one for you, anchored to real ranking data instead of guesses.
Why this beats starting from a blank spreadsheet
Traditional keyword research starts with a seed word and expands outward. That works, but it has a flaw: you’re limited by what you think to type in. Competitor-based research inverts the process. You start from terms that are already proven to drive traffic in your niche — proven because a real site is ranking and getting clicks from them right now.
There’s a second advantage that’s less obvious: competitor keywords come pre-qualified for business relevance. If a site you compete with has bothered to publish a page targeting “how to clean a mechanical keyboard,” it’s usually because that query converts into something they care about — readers, subscribers, customers. You’re borrowing their validation. You still need to check each term yourself, but the hit rate is far higher than brainstorming from scratch.
A gap analysis doesn’t find every keyword worth targeting. It finds the keywords a real competitor has already proven are worth targeting — which is a much shorter, safer list to work from.
Step 1: Pick the right competitors
Two to four competitors is the sweet spot — more just adds noise.
This is where most people go wrong, so slow down here. Your business competitors and your search competitors are often different sets. The company that takes your customers might not rank for anything. Meanwhile, a blog or a big publisher you’ve never heard of might dominate every query you care about.
For a gap analysis, you want search competitors: sites that consistently show up on page one for the topics you want to own. Here’s a quick way to find them:
- Search your ten most important queries. Note which domains appear three or more times. Those are candidates.
- Check your Search Console data. If you know your core topics, the sites outranking you on your own weak queries are competitors by definition.
- Prefer similar-sized sites. If you run a 40-post blog, don’t benchmark against a site with a 200-person editorial team. Pick rivals whose wins look achievable — sites ranking with content you could realistically match or beat.
Write down two to four domains. For each one, also note the subfolder that competes with you most directly (like theirblog.com/guides/), because you’ll sometimes want to compare against a section rather than a whole domain.
Step 2: Know your free toolkit
Paid tools like Semrush and Ahrefs have dedicated “keyword gap” features that automate everything below. If you have one, use it. But you can reproduce about 80% of the output with free tools if you’re willing to do the join yourself in a spreadsheet. Here’s the stack:
| Tool | What you get for free | Limitation |
|---|---|---|
| Google Search Console | Every query your own site ranks for, with impressions, clicks, and average position | Your site only — no competitor data |
| Google Keyword Planner | Volume ranges and related-keyword ideas for any seed term or competitor URL | Broad volume ranges (e.g. 1K–10K) without an active ad campaign |
| Ahrefs free tools (Webmaster Tools + free keyword checker) | Verified ranking data for your own site; limited peeks at competitor terms | Competitor lookups are capped per day |
| Ubersuggest / similar free tiers | A handful of competitor keyword lookups per day, with volume and difficulty estimates | Daily caps mean you pace the work over a few sessions |
| Manual SERP review | Ground truth: what’s actually ranking, featured snippets, intent | Slow — reserve it for your shortlist |
The workflow below assumes Google Search Console plus one free competitor-lookup tool. Keyword Planner comes in at the end to sanity-check volumes. If you’re building a broader no-budget setup, our guide to a free SEO tools stack covers the rest of the pipeline.
One word on accuracy: every free volume and difficulty number you’ll see is an estimate, and different tools disagree with each other constantly. That’s fine. You’re not auditing anyone — you’re ranking opportunities relative to each other. A term that two independent tools both call “medium volume, low competition” is a safe bet even if neither number is precise. Treat the data as directional, and let the manual SERP review in Step 6 be your tiebreaker.
Step 3: Pull your own keyword footprint
Start with yourself, because “gap” only means something relative to what you already rank for. Open Google Search Console, go to Performance → Search results, set the date range to the last 6 months, and export the Queries report (the export button is top-right). You’ll get a spreadsheet of every query that earned at least one impression, with clicks, impressions, CTR, and average position.
Clean it up in three passes:
Filter out noise
Delete branded queries (your site name, product names). Delete queries with fewer than ~10 impressions — below that, the data is too thin to mean anything. If you have thousands of rows, sorting by impressions and keeping the top few hundred is fine.
Add a “ranking page” column
Back in Search Console, click a query, then the Pages tab, to see which URL ranks for it. You don’t need to do this for every row — just the ones that matter. An alternative: export the Pages report too and join them loosely by topic.
Tag your weak spots
Flag every query where your average position is between 8 and 30. You’re visible but not winning. These become your “weak keywords” bucket later.
Step 4: Pull competitor keywords
Now the other side of the equation. Take your first competitor domain and run it through your free tool of choice. What you’re after is their top organic keywords: the terms driving their traffic, ideally with the ranking URL for each.
Free tiers limit how much you can pull per day, so be strategic:
- Sort by traffic or volume, not alphabetically. You want their top 100–300 terms, not a complete dump.
- Skip their brand terms. You can’t and shouldn’t rank for a competitor’s name.
- Grab the ranking URL when available. It tells you whether they targeted the term deliberately with a dedicated page or picked it up incidentally.
- Spread lookups across days. With two competitors and a three-lookup daily cap, you’ll finish in two or three sessions. Put it on the calendar and let it run in the background of your week.
Don’t overlook Google Keyword Planner here. It’s positioned as an ads tool, but the “Discover new keywords” feature accepts a competitor’s URL as a seed — paste in their blog homepage or a key category page and Google returns the term cluster it associates with that content, with volume ranges attached. It’s one of the most underused free gap-analysis moves there is. Google’s own SEO starter guide is worth a read alongside it for how Google thinks about queries and content in the first place.
Step 5: Build the gap list
You now have two exports: your queries from Search Console and each competitor’s top terms. Combine them in one spreadsheet with columns: Keyword, Source (you / competitor A / competitor B), Volume estimate, Your position (blank if you don’t rank), and Competitor position if the tool gave one.
Then dedupe. This step is more art than science because the same intent hides behind phrasing variants — “best budget standing desk,” “best cheap standing desk,” and “best affordable standing desk” are one topic, not three. Sort alphabetically and scan: merge obvious variants into a single canonical row and note the variants in a spare column. A raw pull of 600 rows typically collapses to 150–250 real topics.
Finally, label every remaining row:
- Missing — you have no position. Candidate for new content.
- Weak — your position is 8–30. Candidate for optimization.
- Strong — you’re top 5. Park it.
Step 6: Filter by intent before you commit
A gap is only an opportunity if you can serve the intent behind the query. Before any term makes your shortlist, search it in an incognito window and study page one. Ask two questions: what type of page is ranking (guide, product page, comparison, video, forum thread), and could you plausibly build a better version of it?
Three filters catch most of the junk:
Intent match
If page one is all product pages from major retailers and you publish informational content, that term is not for you no matter how good the volume looks. Matching the dominant intent is table stakes; our breakdown of how search intent works goes deeper on reading a SERP.
Authority realism
Count how many results come from sites roughly your size. If page one is entirely Wikipedia, government sites, and household-name brands, move on. If you see a couple of small blogs or forums hanging on at positions 5–10, that’s a crack you can widen.
Volume sanity check
Run surviving terms through Keyword Planner to confirm there’s real search demand. Volume ranges are coarse (100–1K, 1K–10K), but coarse is enough to separate “worth an article” from “worth a paragraph.”
The best gap keywords share a fingerprint: real volume, informational or comparison intent, and at least one mediocre page already ranking on page one. Mediocre incumbents are invitations.
Step 7: Prioritize with a simple scoring system
A filtered list of 40–80 terms is still too many to act on at once. Score each on three 1–5 scales and add them up:
- Demand. 5 for 5K+ monthly searches, 1 for under 200. Use the midpoint of Keyword Planner’s range.
- Winnability. 5 if weak sites rank on page one, 1 if it’s wall-to-wall giants. Your incognito SERP review feeds this score.
- Fit. 5 if the topic sits squarely in your wheelhouse and connects to things you already publish, 1 if it’s a stretch you’d have to force.
Anything scoring 12+ goes to the top of the queue. One nuance: don’t automatically discard low-volume terms. A cluster of ten specific 300-searches-a-month queries — the classic long-tail play — often outperforms one head term you can’t win, and each one is easier to rank for.
Step 8: Turn the list into a content plan
Keywords are not a plan. Convert them:
- Map “missing” terms to new pages. One canonical topic per page. If three gap keywords are clearly the same intent, they share one article — decide which phrasing gets the title tag.
- Map “weak” terms to existing URLs. Each becomes a refresh task: expand thin sections, answer the query more directly, tighten headings, add internal links from related posts.
- Sequence by effort. Quick refreshes first (they can move rankings within weeks), new long-form pieces behind them.
- Cluster deliberately. If the gap list gives you five related topics, publish them close together and interlink them — topical depth helps every page in the cluster.
Set a realistic cadence. Four strong pieces a month, every month, beats ten rushed ones followed by silence.
The 90-minute monthly maintenance routine
Gap analysis isn’t a one-time project — competitors publish, rankings drift, new queries appear. A lightweight monthly loop keeps you current:
- Re-export Search Console (15 min). Compare against last month. New queries in positions 8–30? Those are fresh weak-keyword targets.
- Pull one competitor refresh (20 min). Rotate through your competitor list so each gets re-checked every few months. Look for terms they’ve gained, not just their static top list.
- Review the scoreboard (15 min). What did you publish from the last gap list, and is it ranking yet? If a page is stuck at position 15 after two months, it goes back on the refresh pile.
- Check the SERPs for your top five targets (25 min). Incumbents change, features shift. A featured snippet that appeared since your last check might change how you structure the page.
- Re-score and re-queue (15 min). Add new finds, drop anything that’s no longer realistic, re-rank the backlog.
Mistakes that quietly ruin the whole exercise
Benchmarking against the wrong sites. Comparing your 30-post blog to a publisher with a decade of authority produces a gap list you can’t act on. Pick rivals one weight class up, not five.
Chasing volume over intent. A 20K-searches term you can’t win is worth exactly zero. Ten 500-search terms you can own will bury it in actual traffic.
Treating the export as the answer. The tool output is raw material. Deduping, intent-checking, and SERP review are where the value gets added. Skipping them is how sites end up with 200-article backlogs of terms they never needed.
Ignoring your weak keywords. New content is exciting; refreshing old posts isn’t. But moving an existing page from position 14 to position 4 is usually the highest-ROI item on the entire list.
Doing it once. The first analysis is the most valuable, but the marginal ones keep you from drifting back into blind spots. Put the monthly routine on the calendar now.
Copying instead of outdoing. The gap list tells you what to cover, not how. If you publish a thinner echo of the competitor’s page, you’ll rank behind them and stay there. For every target term, pull up the page currently winning and write down two things it does well and two things it misses — missing steps, outdated screenshots, no real examples. Your page has to fill those gaps, or there’s no reason for Google to swap the incumbent out.
Methodology: rankings data via Google Search Console exports, volume cross-checks via Google Keyword Planner, competitor pulls via free-tier SEO tools as of August 2026. Free-tier limits change; check each tool’s current terms. Related reading on this site: Keyword Research for Beginners, Search Intent, Explained, and The Free SEO Tools Stack.