Keyword gap analysis: the searches your rivals hold and you do not
You want the list of pages to build next. You get it by comparing your rivals’ ranked queries to yours, then cutting to what fits your product. This guide shows the exact steps, the filters that save you time, and the mistakes that waste it.
By Théophile Louvart, founder of Porteur · Updated 13 September 2026 · Markdown
What you get from a keyword gap analysis
You get a page plan you can ship. Each item has a target query, a working title, a page type, and why you can win it.
You also see where to improve existing pages. That is faster than net new pages. It often lifts clicks in weeks, not months.
For a small site, this matters because time is the constraint. You only build the pages that align with your product and can rank with your current links.
Pick the right rivals and scope
Choose rivals in your category. If you sell invoice software, your rivals are other invoice tools, not a general finance blog. Your query set will be cleaner.
- Start with three to five domains you see beside you in results for core queries like "invoice app" or "create invoice online".
- Add one larger category leader. It shows the full topical map. Do not copy their news or broad content.
- Exclude forums, wikis, and marketplaces unless you compete with them on the same intent.
Pull the data: the tools that have it
You need two things: your ranked queries and your rivals’ ranked queries. Then you subtract yours from theirs.
- Google Search Console: your queries, clicks, impressions, positions. Pre click. Export last 28 days for recency, or more if volume is low.
- Ahrefs: known for Site Explorer and a strong backlink index. Pull organic keywords for each rival domain. Also pull for your domain to cross check.
- Semrush: broad suite with competitive research and Keyword Magic Tool. Use Organic Research for rivals’ keywords and Positions for your domain.
- Moz: use Keyword Explorer and Link Explorer for sense checks and DA. Useful for cross checks if you already use it.
- SpyFu: focused on competitor keyword history. Handy to see if a keyword is stable for a rival over time.
- SE Ranking or Ubersuggest: both offer keyword and competitive research. Good if you already track ranks there.
Ahrefs and Semrush are the usual sources for rival keywords. Pick the one you know. The point is coverage and export, not the brand of the tool.
Build the gap: rivals’ ranked queries minus yours
Export your queries
In Search Console, Performance, set the date to last 28 days. Export Queries with clicks, impressions and position. Keep the Page column if you can.
Export rivals’ queries
In Ahrefs Site Explorer or Semrush Organic Research, pull Organic keywords for each rival domain. Export with positions and URLs. Combine all rivals into one sheet.
Normalise the data
Lowercase queries. Trim spaces. Remove duplicated rows across rivals. Keep the best rival position for each query and the matching rival URL.
Subtract your set
VLOOKUP or JOIN your Search Console queries onto the rival set. Mark queries you already rank for. Filter to where you do not have clicks and impressions.
Keep SERP intent fields
From your tool export, keep features like SERP type or intent if present. If your tool has no intent, you will label it yourself in the next step.
Now you have a list of queries your rivals rank for and you do not. This is the raw gap. It is noisy. Your filters make it useful.
Filter by your vocabulary and the search intent
Cut anything off topic. Cut anything that belongs to support or developer docs if you do not publish that. Cut news. Cut country or language mismatches.
| Signal | Off topic example | On topic example | Action |
|---|---|---|---|
| Query words | "free invoice template pdf" | "invoice automation software" | If you do not offer templates, drop it. If you sell automation, keep it. |
| Rival URL type | /blog/how-to-make-invoice-in-excel | /features/recurring-invoices | If your product is not Excel based, drop that how to. Keep product led pages. |
| SERP features | Video carousel only | Standard blue links with product pages | If video first, ask if you will make a video. If not, drop it. |
| Geography | "invoice software india" | "invoice software" | Drop regions you do not serve. Or plan a geo page if you do. |
| Brand | "QuickBooks invoicing" | "best invoice software" | Drop rival brands. Keep unbranded category terms. |
Label each query as informational, commercial, or transactional. Do this by looking at the top results. If product pages rank, it is not purely informational.
Group gaps into page ideas you can ship
Group by parent topic. One page per intent. Use the rival URLs to see how they mapped queries to pages. You are not copying, you are learning the shape.
Cluster by shared stem
Group queries that share a clear stem like "recurring invoice" or "invoice approval". If you see mixed stems, that is two pages.
Pick a head term
Choose the one query with the cleanest intent and sensible volume. That is your title anchor. Others become H2s or body copy.
Map to a page type
Feature page, comparison page, how to guide, integration page, pricing section or template page. Match the SERP you saw.
Draft the working title
For a feature page: "Recurring invoices in YourProduct". For a guide: "How to automate invoice approvals". Keep it under about 60 characters.
Note the rival benchmark
Paste the top rival URL. Note what they cover that sets the bar. Do not mirror their structure. Plan to beat it with product proof or clarity.
Example. You find a gap on "invoice approval workflow". The top results are product features and one clear guide. You map two pages: /features/approvals and /guides/invoice-approval-workflow. Your feature page targets the transactional intent. Your guide links to it and answers process questions.
Prioritise by impact and effort
Start where you have some traction. Favour gaps where you already appear on related queries in Search Console. These are near your existing topical cluster.
- Impact: can this page earn clicks in the next quarter. Check rival positions, snippets, and if any featured snippets look takeable.
- Effort: can you build it in a sprint. Feature pages and comparison pages often ship faster than big guides.
- Links: if the SERP leaders have heavy link profiles, a brand new guide may not move first. You may win a commercial angle with fewer links.
- Your metrics: if you use Ahrefs, note Domain Rating. If you use Semrush, note Authority Score. Use these as rough context, not a gate.
If a gap aligns to an existing page, take the update first. Example: yourproduct.com/pricing already ranks for "pricing invoice software" impressions with no clicks. Add the missing terms and a clear comparison link. That is low effort and high impact.
Use striking distance logic for new pages too. If your site ranks on page two for close variants, a focused page and internal links can tip it. See your own data before chasing far terms only because a rival ranks there.
Turn gap topics into briefs and updates
Write a one page brief for each target page. Fix the basics first: title, H1, intro, structure, internal links, and one clear action. You do not need a 20 page doc.
- Title: about 60 characters. Put the head term first. Example: "Invoice approval workflow software".
- URL: short and human. Example: /features/approvals or /guides/invoice-approval-workflow.
- H1 and intro: say what the reader gets. Name the problem in their words.
- Body: cover the H2s that match the supporting queries. Show the product where it helps the task.
- Proof: add screenshots, gifs, or a one minute video if the SERP suggests it.
- Internal links: link from related pages like /features/recurring-invoices and /guides/getting-started. Link back to this page from those pages.
- Meta description: one sentence that fits about 120 to 155 characters. Aim for clarity over sales.
For updates, align the page to the gap. Example: your /guides/invoice-automation page is missing "approval" terms. Add a section on approvals, retitle an H2, and add an anchor link. What a fixed page looks like: impressions rise, the average position improves, and clicks follow within a few weeks if the intent matches.
Wire the build to internal links and SERP features
Give each new page a path to authority. Link from your top pages. Use exact or close anchor once, then vary it. Do not build orphan pages.
- Add the page to your main nav or a hub page if it is core, like /features/approvals.
- From related guides, add contextual links high on the page. Example: "Set up recurring approvals in YourProduct".
- From /pricing and /integrations, add short links where relevant.
- Check your sitemap is current. Request indexing in Search Console if you changed a lot.
Scan the SERP for features you can win. If a People also ask tree appears, answer the exact phrasing in a short paragraph. If a featured snippet is a list, add a clean, ordered list that matches the task. If results show comparisons, consider a /comparisons/yourproduct-vs-x page in scope, but only for true rivals.
Track results and avoid the common mistakes
Track new pages as a group in Search Console. Watch impressions first. Clicks lag. Use the Page filter. Compare last 28 days to the prior period after indexing.
- Cannibalisation: do not split one intent across two pages. If "/guides/invoice-approval-workflow" and "/blog/invoice-approval-steps" both start to rank, merge and redirect the weaker one.
- Intent mismatch: if a how to ranks for a product term, add a product led page and link to it. Guides are not a substitute for features.
- Thin page: a 200 word feature page rarely ranks. Show the problem, the solution, steps, and proof. Aim for clarity, not length.
- Chasing head terms: if every top result is a giant site with thousands of links, pick a specific angle first, like role, platform, or integration.
- AI Overviews: some queries now show AI summaries. Add crisp, factual answers and product proof. You still need blue link traffic and conversions.
Set a simple review cadence. New pages: check at one week for indexing, at four weeks for impressions, at eight weeks for clicks. Update if impressions rise without clicks. The usual fix is title, meta and first paragraph clarity.
Questions
It is a list of searches that send traffic to your rivals but not to you. You filter that list to what fits your product. Then you map each cluster to a page you can build or improve.
Look for clusters of related queries with the same intent. Map each cluster to one page idea. Favour pages that match your product and where the top results are not far out of reach. If you see impressions with no clicks on an existing page, fix that page first.
You can do part of it with Search Console for your own queries. To see rivals’ ranked queries you need a competitive research tool. Ahrefs and Semrush are common choices. Moz, SE Ranking, Ubersuggest and SpyFu also have data if you already use them.
You find rivals ranking for "invoice approval workflow" and you do not. The SERP shows product pages and one guide. You plan two pages: /features/approvals for the product intent, and /guides/invoice-approval-workflow for the how to. You link the guide to the feature.
An AI can help cluster queries and draft briefs once you export the data. It cannot crawl rival data itself. You still need to choose rivals, filter for fit, and decide page types. Keep judgement on scope and intent with you.
Do a light pass each quarter. Add a full pass when your product scope changes or you ship a new category page. Search shifts. Rivals publish new pages. Your own pages gain authority over time, which changes what you can win.
Check my site, free
Run a free check from your homepage URL to see three gap-based page ideas your rivals already rank for and where your site could win next.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideCompetitor keyword analysis by hand, with free data
- GuideStriking distance keywords: the searches one page from the light
- GuideSearch intent: what the results page tells you to build
- GuideKeyword difficulty: what the number means and when to ignore it
- GuideHow to use Google Search Console in ten minutes a week
- GlossaryTopical map
- GlossaryKeyword clustering
- GlossaryContent gap