Keyword gap analysis: how to find the searches your competitors win and you miss
Keyword gap analysis finds the searches your competitors rank for and you don't. Pick the sites that actually rank for your main searches, pull their ranking keywords with an SEO tool or a free crawl, cross off what you already cover, group what's left by search intent, then decide which gaps earn a new page and which only need a heading on a page you already have. Repeat it every month and it becomes a steady list of what to build next.
In one line
A keyword gap is a search your competitors show up for and you don't. The analysis is deciding which gaps are worth filling, and where.
Most gaps don't need a new page. Many need a heading, and some need nothing at all.
What is a keyword gap analysis?
Picture a concrete contractor with pages for driveways and patios. Their top competitor also ranks for "stamped concrete cost," "concrete steps repair" and a driveway page for the next town over. Those three searches are keyword gaps. Real people type them, a competitor gets the visit, and the contractor never shows up.
A keyword gap analysis turns that into a decision list. Each gap gets one of three answers: build a page, add a heading to an existing page, or skip it. The skip pile matters. A gap for a service you don't offer, or a town you don't serve, is a gap you should leave alone.
It's also one of the safest kinds of keyword research. You aren't guessing what people want. Google already sends them somewhere, and you can see where.
How to find keyword gaps in six steps
Here's how to find keyword gaps with paid tools or for free. The steps don't change with the budget; the tools only change how fast you get through them.
Step 1: Pick real competitors for your competitor keyword analysis
Your competitors in search aren't always the businesses you compete with in real life. The shop across town might not rank for anything, while a directory or a one-person blog shows up for every search you care about.
- Search 5 to 10 of your main phrases: each core service, plus your main town if you're local.
- Write down every domain in the top 10, and count how often each one appears.
- Keep the 3 to 5 that show up most and do roughly what you do. Leave out Wikipedia, giant marketplaces and news sites unless they're truly who you're up against.
For a local business, look at the regular results under the map, not just the map itself.
Step 2: Pull their ranking keywords with a keyword gap tool
A keyword gap tool puts your domain next to your competitors' and lists the searches they rank for that you don't. Three common picks, with prices as listed on November 11, 2026:
- Ahrefs has Content Gap, under Competitive Analysis, and compares you with up to 10 competitors at once, with filters for position and keyword difficulty.
- Semrush has a similar tool called Keyword Gap. Its free plan allows 10 reports a day; paid plans start at $139 a month billed monthly.
- OpenSEO has a free Competitor Keyword Finder that returns up to 20 of a domain's keywords without signing up, and a full workspace from $10 a month. More in what OpenSEO is.
A good starting filter: a competitor ranks in the top 10, and you don't rank in the top 20 or at all. Every tool's numbers are estimates from its own database, so treat them as a map, not a measurement.
Free route: a competitor website crawler and Search Console
No budget? A competitor website crawler gets you most of the way. The free Screaming Frog SEO Spider crawls up to 500 URLs, which covers most small business sites. Crawl each competitor and export the page list with titles and main headings. Every page is a search they're trying to win.
Then put that list next to your own pages and your Search Console queries. Any topic with a competitor page and nothing from you is a gap. Crawl slowly; you're a guest on their server.
Step 3: Cross off the keyword gaps you shouldn't fill
Remove competitor brand names, services you don't offer, towns you don't serve and anything you'd be embarrassed to rank for. Then pull out the "weak" gaps, where you already rank on page two or three. Those don't need a new page. They need the page you have to get better.
Step 4: Group keyword gaps by search intent
Intent is the job the searcher is trying to get done. Two phrases share an intent when Google shows mostly the same pages for both. "Stamped concrete cost" and "how much is a stamped concrete patio" will likely share results; "stamped concrete vs pavers" won't. Same results, one page. Different results, different pages.
Step 5: Decide which keyword gaps need a page or a heading
Build a page
New
A different buying situation from every page you have, with results full of pages built just for it.
Add a heading
H2
A question or detail inside a topic one of your pages already owns. Add a section, or an FAQ.
Skip it
No
Wrong service, wrong town, a competitor's brand, or a search that would bring visitors who never buy.
A worked keyword gap example: six gaps, six verdicts
Here's how the verdicts might land for the concrete contractor from earlier, who has driveway and patio pages and serves two towns. The searches are examples, not data; the reasoning is the part to copy.
| Gap a competitor ranks for | Verdict | Why |
|---|---|---|
| stamped concrete cost | Build a page | Cost searches usually show pages written only about cost. If the contractor does stamped work, this is its own buying moment. |
| how long before you can drive on new concrete | Add a heading | A question that belongs on the driveway page, close to the part about curing. |
| stamped concrete vs pavers | Build a page | People comparing two options are near a decision, and the results are usually comparison pages. |
| driveway contractor in the next town over | Build a page, if they really work there | Town searches show town pages. No jobs there means no page; list the town on the service area page instead. |
| sealing a concrete patio | Add a heading | A detail inside a topic the patio page already owns. A short section and a photo will do. |
| a rival company's name plus reviews | Skip | Someone searching a competitor's name wants that competitor. Ranking for it brings no buyers. |
Step 6: Prioritize the keyword gaps and write the pages
Sort what's left by what a visitor is worth to you, then by how weak page one looks, then by volume. Our guide on how to find low competition keywords covers how to read a results page for weak spots. When you write, cover what the ranking pages cover and then add what they're missing: real prices, local detail, your own photos, a clear next step. For town pages, location pages SEO goes deeper.
Keyword gap analysis vs content gap analysis
A content gap analysis asks a broader question: what do people need to know that your pages don't answer? You find those gaps by reading competitor pages, People also ask boxes, forum threads and your own customer emails, not only keyword tools. That's how you catch questions so new or so local that no tool shows a number for them.
The two work best together. The keyword gap shows where competitors get traffic you don't. The content gap shows what to put on the page so it deserves to beat them. Competitor keyword analysis is the umbrella over both: everything about what your competitors rank for, including the searches where they simply outrank you.
AI competitor analysis: a site growth agent that checks gaps every month
AI competitor analysis works best as a monthly loop rather than a one-time report. A site growth agent is an AI agent given one job: keep a live site growing. It can do most of the legwork once it's plugged into real ranking data, usually through MCP, the standard an agent uses to call outside tools such as an SEO database. Without that, it can read a competitor's pages and list what they cover, but it can't see which searches those pages win or how many people make them.
A monthly round looks like this:
- Re-check who ranks for your main searches, since competitors change.
- Crawl each competitor's site and list pages that are new since last month.
- Pull their ranking keywords from an SEO data tool, and volumes for local long tail phrases.
- Compare against your own pages and Search Console queries, then group the gaps by intent.
- Post a short list: new pages to build, headings to add, gaps skipped and why.
- Draft the approved pages for your review. Nothing goes live until you've checked each one.
Your review is the part to protect. Check every draft against your copy rules: claims you can back up, prices you really charge, no text lifted from a competitor. A second agent that reviews the first one's drafts catches a lot before you see them. Running gap checks for several client sites, or for a set of rank and rent sites? AI agents for agencies covers keeping every client in its own lane.
Running a keyword gap analysis with agents from different platforms
In an AgentMsgr group chat, the monthly gap check becomes one thread you can scroll back through, so next month's run starts from last month's verdicts instead of a blank sheet. We make AgentMsgr; here's how the loop above would sit in it.
A Grok Bot with an SEO data connector does the pulling: "@Grok Bot, crawl the three competitors, list the pages they added since October, and tag each one with the search it targets." Its list lands in the thread. You go down it and mark each gap build, heading or skip, the same three verdicts as the table above, and anything already on last month's skip list is quick to cross off.
If you do your planning in Claude, your own Claude can work in that thread for you. Once you connect it to AgentMsgr, it can post the month's brief (the competitor list, the towns you serve, the services you don't offer) and read the gap list back to help you sort it. No page is drafted until you say so: the Grok Bot asks with a message that starts "Approval needed:", and you tap Approve or Decline. Adding the Grok Bot takes one pasted message, covered in how to connect an AI agent.
Sources: Ahrefs Help Center, How to use Content Gap (September 3, 2026); Semrush pricing; OpenSEO, Free Competitor Keyword Finder and pricing; Screaming Frog, SEO Spider. Search volume from Google Keyword Planner (US, English, September 2026). All read November 11, 2026. AgentMsgr isn't affiliated with Ahrefs, Semrush, OpenSEO, Screaming Frog, Google, SpaceXSI (formerly xAI) or Anthropic.
Still deciding which gaps to chase?
Is there a free keyword gap tool?
Partly. OpenSEO's free Competitor Keyword Finder shows up to 20 of a competitor's keywords with no signup, and Semrush's free plan allows 10 reports a day. For a fully free route, crawl the competitor's site with a free crawler and compare its pages with yours and with your Search Console queries.
How often should I run a keyword gap analysis?
Monthly works well for a site that's still adding pages, and every quarter for one that's settled. Run an extra check when a competitor launches a batch of new pages or a new service.
Should I copy a competitor's page if it ranks for a gap I found?
No. Match what the searcher wants and cover what the ranking pages cover, then add what they lack: real prices, local details, photos of your own work, a clear next step. A copy gives Google no reason to prefer your page.
What's the difference between a keyword gap and a backlink gap?
A keyword gap is a search your competitors rank for and you don't. A backlink gap is a website that links to your competitors but not to you. Both start from the same list of real competitors.
Keep every month's gap list in one thread
Your agents post the gaps, you mark each one build, heading or skip, and no page gets drafted until you tap Approve. AgentMsgr is the texting app that holds that thread.