Keyword clustering by SERP overlap, explained with a worked example
Learn keyword clustering by SERP overlap: compare top 10 URLs, set a shared-URL threshold, and turn clusters into pages, with a cold brew worked example.
Keyword clustering turns a long keyword list into a set of pages: each cluster becomes one URL, and every keyword in it is a query that URL should rank for. The reliable way to build clusters is to compare what Google ranks for each keyword, instead of comparing the words in the keywords. This guide explains SERP-overlap clustering, how to pick a threshold, which grouping method to use, and walks through a worked example with seven cold brew keywords.
What is keyword clustering?
Keyword clustering is the process of grouping keywords that share the same search intent, so a single page can target the whole group instead of creating competing pages for each variant.
The output of clustering is a content map. One cluster, one page. The page’s primary keyword is the most representative query in the cluster, and the other keywords shape its H2s, its secondary terms and its FAQ. Clusters then roll up into topics, which is how you plan hub pages and build topical authority.
Clustering also prevents a common and expensive mistake: writing “cold brew recipe” and “how to make cold brew” as two separate articles that end up competing with each other for the same results.
How does SERP-overlap clustering work?
SERP-overlap clustering compares the top 10 ranking URLs for each pair of keywords and groups them when they share a set number of URLs, often 3 or more, because Google is satisfying both with the same pages.
The logic is simple. If Google ranks the same pages for two queries, it believes the same page can satisfy both. You do not need to guess at intent; the results already encode it.
The process has five steps:
- Collect results. Pull the top 10 organic URLs for every keyword, using the same country, language and device for all of them. Mixing locations or devices adds noise.
- Normalize URLs. Strip tracking parameters, fragments and trailing slashes, and treat http and https as the same. Otherwise identical pages count as different.
- Compare URLs, not domains. A large site can rank different pages for different intents. Two keywords that both show a page from the same retailer only overlap if it is the same page.
- Count shared URLs for every pair. For keywords A and B, the overlap is the number of URLs that appear in both top 10 lists.
- Group by threshold. Pairs at or above the threshold belong together. How you turn pairs into groups matters, and is covered below.
Hard grouping vs chaining
Here is the trap. Suppose A shares 3 URLs with B, and B shares 3 with C, but A and C share none. If you merge every pair that meets the threshold (single linkage), A, B and C end up in one cluster, even though A and C have nothing in common. With a large keyword list, chaining can pull hundreds of loosely related terms into one giant cluster.
Two methods avoid this:
- Complete linkage. A keyword joins a cluster only if it meets the threshold with every keyword already in it. Clusters stay tight. This is the safer default.
- Seed-based grouping. Sort keywords by search volume. The highest-volume unassigned keyword becomes a seed, and every keyword that meets the threshold with the seed joins it. Repeat. It is fast, but results depend on which keyword became the seed.
Why SERP overlap beats grouping by shared words
Grouping by shared words fails in both directions: it splits keywords that need one page and merges keywords that need different pages.
- It misses rephrasings. “Cold brew ratio” and “how much coffee for cold brew” ask the same question, but the only words they share are “cold brew”, which every keyword in the list contains. Word-based methods either separate them or lump them in with everything else.
- It merges different intents. “Cold brew recipe” and “cold brew maker” share two of three words. One wants instructions; the other wants a product. Google shows guides for the first and product listings and roundups for the second.
- It ignores modifiers that change intent. “vs”, “best”, “price” and “near me” change what the searcher wants. A single extra word can move a query from a guide to a comparison or a shop page.
- It does not update. Intent shifts over time. When Google starts ranking different pages for a query, SERP overlap picks that up the next time you refresh the data. A list of shared words never changes.
Word-based or embedding-based similarity still has a use as a cheap first pass to sort a very large list before you pay for SERP data. Leave the final grouping decision to the results.
Worked example: clustering cold brew keywords
Take a coffee brand with seven keywords to plan. The overlap counts below are illustrative, chosen to show the patterns you will see in real data. In practice, you would pull the live results for each keyword.
Keywords:
- A: cold brew recipe
- B: how to make cold brew
- C: cold brew ratio
- D: how much coffee for cold brew
- E: cold brew vs iced coffee
- F: cold brew maker
- G: best cold brew maker
Shared URLs in the top 10 for each pair:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| A recipe | 7 | 3 | 2 | 1 | 0 | 0 | |
| B how to make | 7 | 2 | 2 | 1 | 0 | 0 | |
| C ratio | 3 | 2 | 6 | 0 | 0 | 0 | |
| D how much coffee | 2 | 2 | 6 | 0 | 0 | 0 | |
| E vs iced coffee | 1 | 1 | 0 | 0 | 0 | 0 | |
| F maker | 0 | 0 | 0 | 0 | 0 | 5 | |
| G best maker | 0 | 0 | 0 | 0 | 0 | 5 |
With a threshold of 3 shared URLs, four pairs qualify: A with B (7), A with C (3), C with D (6), and F with G (5).
Single linkage merges A, B, C and D into one cluster, because A meets the threshold with C, and C meets it with D. That would put “how to make cold brew” and “how much coffee for cold brew” on one page, even though they share only 2 URLs.
Complete linkage gives a cleaner result:
| Cluster | Keywords | Page |
|---|---|---|
| Cold brew recipe | cold brew recipe, how to make cold brew | Step-by-step recipe guide |
| Cold brew ratio | cold brew ratio, how much coffee for cold brew | Ratio guide with a chart |
| Cold brew vs iced coffee | cold brew vs iced coffee | Comparison article |
| Cold brew makers | cold brew maker, best cold brew maker | Product roundup or category page |
Three things stand out:
- Shared words misled. Every keyword contains “cold brew”, and “cold brew maker” is closer in wording to “cold brew recipe” than “how much coffee for cold brew” is to “cold brew ratio”. The results tell the opposite story.
- The borderline pair needs a human. The A and C pair sits exactly at the threshold. Open both results pages. If the ratio results are mostly recipe pages, the ratio could be a section of the recipe guide. If they are dedicated ratio guides and calculators, as the 6-URL overlap with D suggests, a separate page is justified. Either way, the recipe guide should link to the ratio guide.
- A single-keyword cluster is fine. “Cold brew vs iced coffee” overlaps with nothing. It gets its own page, or it waits until related comparison keywords show up in research.
How do you choose a keyword clustering threshold?
Start with 3 shared URLs out of 10, inspect the pairs that sit exactly at the threshold, then raise it if clusters mix intents or lower it if obvious variants stay apart.
No threshold is correct for every niche. Use these signals to tune it:
- Raise it (to 4 or 5) when clusters contain keywords that clearly need different formats, such as a guide and a product page in the same group. Broad informational topics with crowded results often need a stricter setting.
- Lower it (to 2) in sparse or very specific niches, where results are full of forums and unrelated pages and even true variants rarely share many URLs.
- Check SERP volatility. If the results for a keyword change a lot week to week, re-pull before you trust a borderline pair.
- Look at your own rankings. If one of your pages already ranks for two keywords that your threshold splits, that is evidence they belong together.
Keep the same threshold across a project so clusters stay comparable.
Turning clusters into pages and a content plan
A cluster becomes useful when it is mapped to a URL and scheduled. Work through each cluster in this order:
- Map to existing pages first. Check Search Console for pages already ranking for any keyword in the cluster. Improving a page that sits in positions 8 to 20 is usually faster than publishing a new one.
- Pick the primary keyword. Use the keyword whose results overlap most with the rest of the cluster, not only the one with the highest volume. It is the best description of what the page is about.
- Use secondary keywords as structure. They become H2s, FAQ questions and term targets in the brief. Our content brief template has a field for the cluster each page owns.
- Flag conflicts. If two existing pages map to the same cluster, you have a cannibalization problem to fix before writing anything new. See how to find and fix keyword cannibalization.
- Schedule by cluster. Plan one article per cluster, and avoid publishing two pieces aimed at the same cluster in the same period. A cluster-aware SEO content calendar makes this visible.
The SupaDraft terrain map does the grouping by SERP overlap and shows the result as a topographic map: volume is elevation, difficulty is hatching, and your Search Console rankings appear as pins, with a separate pin for keywords in positions 8 to 20. When you disagree with a grouping, you can lasso keywords into a new cluster or drag a keyword to another one, which is exactly the human review step described above.
Common keyword clustering mistakes
- Clustering once and never again. Results change. Re-cluster your priority topics every few months, and before you plan a large batch of content.
- Treating the cluster as a keyword list to stuff. A cluster tells you which questions the page should answer. Repeating every keyword in it makes the page read worse and adds nothing.
- Ignoring SERP features. If one keyword’s results are dominated by videos or a shopping carousel, the page you need may be a different format even when URL overlap is moderate.
Frequently asked questions
Can I do keyword clustering in a spreadsheet?
Yes, for small lists. Paste each keyword’s top 10 URLs into columns, count matches between rows with a lookup formula, and group by hand. Beyond a few hundred keywords the number of pairs grows quickly, and a tool or script becomes more practical.
How often should I recluster keywords?
Recluster priority topics every few months and whenever rankings shift noticeably. Intent can change when Google starts preferring a different format, and clusters built on old results will point you at the wrong page type.
What is the difference between keyword clustering and topic clusters?
Keyword clustering groups queries that one page can rank for. Topic clusters are the next level up: a set of related pages, usually a hub and several supporting articles, linked together to cover a broader subject.
Map your keywords by SERP overlap
Take your current keyword list, pull the top 10 results for each keyword, and group pairs that share 3 or more URLs using complete linkage. To skip the spreadsheet, explore your clusters on the SupaDraft terrain map.