Competitor content gaps: run an actionable gap analysis with 30 queries
1. The value of a gap analysis isn’t the report, it’s the schedule
First, draw the boundaries. Two related topics have already been covered on this site: one post on mining on-site search terms, which looks at what users search after they land on your site — that’s your own demand gap; another on five checks for competitors in AI answers, which looks at who engines like ChatGPT mention in their answers. This post covers only the third piece: on the Google search side, which queries competitors have content for and you don’t, whether they’re stronger than you or just earlier than you, and how to order the work of filling the gaps.
The most common way a gap analysis fails is producing a report dozens of pages long, listing ranking comparisons for two or three hundred terms, after which nobody knows what to write next week. There’s only one test for whether a gap analysis worked:Can you list the articles to write over the next 12 weeks on the day it’s done?
| Output format | What it looks like | Who reads it | Is it useful |
|---|---|---|---|
| Ranking comparison report | A big table of 200 terms against 3 competitors | Nobody reads it through | Low — data but no decisions |
| Gap matrix | 30 queries plus gap type, one page | Content owner | High — it circles the topics to fill |
| Writing schedule | 12 weeks, one article a week, mapped to queries | The writers | High — the matrix’s only useful output |
The difference between a report and a schedule: a report answers “what’s the situation,” a schedule answers “what do we work on next.” A gap analysis creates no value on its own; the content you fill in does. So from the moment you build the query set, every step should converge on the end goal of landing on the calendar.
2. How to build the query set: 20 product terms plus 10 question terms
The query set is the entire input to a gap analysis — build it wrong and everything downstream is wrong. I suggest fixing the 30 terms as follows:
| Keyword type | Videos | Source | Examples (precision machining) |
|---|---|---|---|
| Core category terms | 10 | Your own product line names plus competitor navigation menus | CNC machining services, injection molding supplier |
| Spec and application terms | 10 | What buyers say in inquiry emails, plus spec pages | 5-axis aluminum parts, medical grade molding |
| Buyer question terms | 10 | Inquiry email wording plus People Also Ask | how to quote CNC parts, MOQ for custom molding |
The three sources don’t carry equal weight.Core category terms guarantee coverage, spec terms capture traffic with buying intent, and question terms feed AI snippets and related questions. Drop any one type and the matrix tilts: category terms alone miss your best-converting long tail, question terms alone miss the main category battleground.
Two practical details. First, inquiry emails are your highest-quality term source — build your set from how buyers actually ask, not from factory jargon. Second, manually page through your competitors’ blog index pages; whatever they published in the last two months is probably the query they’re betting on. Check your 30 terms against their index and fill the gaps.
Build the query set once, save it as a fixed table, and from then on only add or remove terms in each review — never start over. If you’re building the term list layer from scratch, see our article on keyword research by search intent This article assumes you already have a base term list; the gap analysis ranks on top of it.
3. Comparison matrix: three players, top 10, three gap types
How to build the matrix: search each query once in an incognito Google window, and note whether the top 10 includes you, Competitor A and Competitor B, and what format each one uses — product page, article, guide, or nothing at all.
There are only three gap types. Don’t invent a fourth:
| Gap type | Test | What it looks like | What to do |
|---|---|---|---|
| No content | No URL of yours in the top 10, and no matching content on your site | A competitor holds the spot with an article, and you have no matching page | Write new, following the intent of the competitor’s stronger article |
| Content exists but is weak | You have a URL ranking in the top 20, but more than 5 places behind a competitor | Word count, update year and original material are clearly weaker than the competition | Refresh the existing page, don’t write new |
| Wrong format | You have content but can’t crack the top 20, and the top 10 is all in a different format from yours | A competitor holds the spot with a comparison guide, while you only have a spec table | Redo it in the right format; 301 the old page or repurpose it |
The third type is the easiest to miss. Many factories react with “I already have a page for that, so it’s not a gap” — but a page in the wrong format is effectively absent from search results. When a buyer searches how to choose, they want a decision framework. Hand them a spec sheet and you’ll never climb the rankings.
Record the date alongside every term as you compare. Three months later, when you review, you’ll need to know where it ranked at the time — a matrix without dates can’t be compared.
4. Three hard lines for calling something “weak”
“Content exists but is weak” can’t be a gut call. Hold it to three hard lines:
| How to tell | Passing standard | Action if below the line |
|---|---|---|
| Information density line | Body copy of 1,200+ words, including at least 3 specific numbers (specs, timeframes, ranges) | Add numbers, cut adjectives |
| Timeliness | The article cites data, years, or case studies from within the last 24 months | Update the data and years |
| Exclusive material | Includes at least 1 thing competitors can’t offer: test data, production line photos, internal checklists, original charts | Add exclusive material, or pick a different topic for this article |
Hitting fewer than two of the three lines means the page is weak. The upside of this standard is that it’s defensible: use the same yardstick before and after the revamp, and there’s no argument about whether the refresh was done properly.
Of the three lines, exclusive material carries the most weight. The gap on the first two can be closed with effort; exclusive material can’t be — which is why queries where “you have exclusive material and competitors don’t” should come first in the fill-in order. Writing content isn’t the hard part; deciding what to write is. For how to schedule production capacity, there’s an article on the site Capacity planning for a one-person team, which you can use alongside the scheduling section below.
5. Fill-in order: three-dimension scoring
The matrix usually turns up 10 to 15 queries to fill. Filling them all isn’t realistic, so you need an order. Score each on three dimensions, 1 to 3 points each:
| Dimension | 1 point | 2 points | 3 points |
|---|---|---|---|
| Search volume | Under 50/month or unknown | 50–500 | Over 500, or a core category term |
| Commercial value | Pure awareness, far from an inquiry | Influences selection | Directly tied to an inquiry request |
| Effort to fill | Needs multiple people or new data collection | Done within a day | Doable within half a day (mostly a refresh) |
Total score out of 9.Do anything scoring 7+ first, queue 5–6, and put anything 4 or below on the to-do list without committing to a date.
Here’s a sample set (numbers are illustrative — fill in your own matrix):
| Query | Search volume | Commercial value | Effort to fill | Total | How to handle it |
|---|---|---|---|---|---|
| CNC machining services (no content) | 3 | 3 | 2 | 8 | Week 1 |
| how to quote CNC parts (no content) | 2 | 3 | 3 | 8 | Week 2 |
| 5-axis aluminum parts (exists but weak) | 2 | 3 | 3 | 8 | Week 3 |
| injection molding vs 3d printing (wrong format) | 3 | 2 | 1 | 6 | Week 6 |
| Surface finishing encyclopedia (no content) | 2 | 1 | 2 | 5 | To-do |
Watch out for the order effect in scoring:A combination of “commercial value 3 + effort to fill 3” outranks “search volume 3 + commercial value 1.” B2B traffic is thin to begin with, so one long-tail query that leads straight to an inquiry is worth writing before ten that only build awareness.
6. Two edge cases: misreading attribution, and when not to bother
The most expensive mistake in a gap analysis is bad attribution: you see a competitor ranking #2, assume their content is good, and go copy it. Ranking is a blend of content, domain authority, and site age — separate them before you judge:
| Symptom | Check first | Likely conclusion | Action |
|---|---|---|---|
| Competitor page is thin but ranks #1–3 | Their site age and backlink volume | Domain authority is carrying it | Don’t copy the page — write at higher density instead, and expect 6–12 months |
| Competitor page really does have high information density | Compare information points paragraph by paragraph | A genuine content gap | Match them and add a layer of exclusive material they don’t have |
| The top 10 is entirely big platforms | Check whether it’s an e-commerce platform or an encyclopedia-type site | the term is monopolized | Work around it: rewrite as a more specific spec term or question term |
| A competitor’s post from 3 months ago ranks #4 | Publish date | freshness advantage | Watch it for a quarter; no rush to benchmark |
A practical test:Count the factual information points on the competitor’s page one by one (numbers, specs, conditions, cases). A page with 30+ information points is genuinely strong; a page with fewer than 10 ranks high only because of domain authority. The former is worth benchmarking, the latter is worth beating — usually a 1,500-word article with 25 information points can overtake it.
Another boundary is the conditions under which this applies. Stop when you hit any of these four:
| Condition | Why | Replacement move |
|---|---|---|
| Fewer than 30 pieces of on-site content | No samples in the “exists but weak” column, so you can’t see the real gap | Build out the basic pages by product line first |
| The competitor is an industry giant | All ranking differences come from domain authority; the comparison yields nothing actionable | Study only its content structure, skip the ranking comparison |
| Category terms are monopolized by platforms | No independent site in the top 10 | Switch to gap analysis on question terms and spec terms |
| The product line will change drastically within three months | The content you add becomes obsolete with the redesign | Wait until the product line is finalized, then analyze |
30 articles is the minimum threshold for this work. At an earlier stage, put the same effort into filling out the factual density of your product pages — the payoff is much higher. Gap analysis amplifies structural problems in content you already have; when there isn’t enough content on the site, there’s nothing to amplify.
7. Deliverables and review: a one-page matrix, a 12-week schedule
All this work produces just two files. The first is the matrix, with six fixed columns:
| Column | What to fill in |
|---|---|
| Query | The buyer’s exact words, unedited |
| Search volume | Midpoint of the tool’s range |
| Our status | No content, exists but weak, wrong format, covered |
| Competitor A status | Same criteria as above |
| Competitor B status | Same criteria as above |
| Score and action | Three-dimension total score plus scheduled week |
The second is the schedule. Here’s a 12-week sample outline:
| Week | Task | Target queries | Labor |
|---|---|---|---|
| 1–2 weeks | Two core category-term articles | Category terms scoring 8 or above | 2 days each |
| Weeks 3–5 | Three question-term articles | Questions phrased the way buyers ask them | 1.5 days each |
| Weeks 6–8 | Refresh three weak pages | The “exists but weak” group | 0.5–1 day each |
| Weeks 9–10 | Redo two pieces in the wrong format | The “wrong format” group | 2 days each |
| Weeks 11–12 | Buffer plus first-month data review | — | Half a day |
The schedule maps directly to capacity: at the normal pace of one person producing 1–2 articles a week, 12 weeks covers about 10 articles — exactly the fill-in volume a 30-term analysis usually produces. If you leave no buffer, execution falls apart by week 3, so the last two weeks must stay open.
Keep the review cadence on two cycles:
| Cycle | Action | Output | Time |
|---|---|---|---|
| Quarterly | Incremental comparison: 10 new queries plus a ranking check on pages filled in last round | Incremental matrix plus schedule tweaks | Half a day |
| Every six months | Full rerun: update all 30 terms in the matrix, re-check the competitor list | New matrix plus a new 12-week schedule | 1–2 days |
| Annually | Reselect the competitor list once | Swap out 0–1 competitors | 2 hours |
Two rules. First,Don’t start a new round until the last one is finished— A gap analysis is only good for one quarter’s schedule. Stack one schedule on top of another and you effectively have none. Second, when you check the pages you filled in, look at a full 90 days. Long-tail B2B keywords typically take 6 to 12 weeks to settle into a stable position, so week 4 rankings tell you nothing.
FAQ
Final thoughts
Gap analysis easily turns into a report that looks highly professional but nobody ever opens a second time.To judge whether it worked, look at one thing only: by the end of the day, is it already decided what you’ll write for the next 12 weeks? The matrix is the means; the schedule is the deliverable.
Here’s the starting move I recommend: spend one day this week building a 30-term query set, spend two days next week running the comparison matrix, and in week three put the top 5 scored topics on the calendar. Don’t agonize over the competitor list. Two companies with overlapping product lines and comparable content volume are enough. Get it running first, then swap them out.
One line worth remembering: gap analysis doesn’t answer “where are we worse than our competitors” — it only answers “which 10 posts do we write first in the next 12 weeks.”
