Keyword clustering is grouping search terms so that each group can be targeted by one page. Two keywords belong in the same cluster when Google already ranks mostly the same pages for both. When the results differ, they need separate pages, however similar the words look.
We cluster keyword lists for SaaS sites most weeks. The method below is the one we use on a typical 400-term list, with the thresholds we apply, a worked example, and the mistakes that turn a good list into a messy content plan.

Two ways to do keyword clustering: by words or by results
| Lexical clustering (by words) | SERP-based clustering (by results) | |
|---|---|---|
| How it groups | Shared words and stems | Shared URLs in the top 10 results |
| Cost | Free, runs in a spreadsheet | Needs results data for every keyword |
| Speed on 400 terms | Minutes | An hour with a tool, a day by hand |
| Main failure | Groups “crm software” with “what is crm” | Results shift, so clusters go stale after 6 to 12 months |
| Use it for | A first rough sort, and removing obvious junk | The final decision on which terms share a page |
We use both, in that order. The word-based pass is a sieve. The results-based pass decides.
Here is why the second pass matters. “Project management software” and “project management tools” look like two keywords. Put their results side by side:

Keyword clustering in 6 steps
1. Clean the list before you cluster it
Remove duplicates, misspellings, competitor brand terms you will not target, and anything outside your market. On a raw 400-term export we usually cut 10 to 20 percent here. Clustering junk only produces tidy junk.
2. Tag intent on every keyword
Label each term informational, commercial, transactional or navigational. Our free keyword intent classifier does a first pass on up to 500 terms, and you then correct the edge cases by hand.

3. Do a rough word-based sort
Sort alphabetically, group by head term (“timesheet”, “time tracking”, “payroll”), and you will have 15 to 30 rough buckets. This is only to make the next step manageable.
4. Pull the top 10 results for each keyword
Most paid keyword tools have a clustering feature that does this for you. If you are doing it by hand, start with the highest-volume term in each bucket and only check its neighbours.
5. Group by shared URLs
Compare each keyword’s top 10 against the lead keyword of the bucket. These are the thresholds we use:
| Shared URLs in the top 10 | Decision | Notes |
|---|---|---|
| 0 to 2 | Separate pages | Google sees different topics |
| 3 | Judgement call | Check intent and whether the same page type ranks for both |
| 4 to 6 | Same page | Use the lower-volume term as a secondary keyword |
| 7 or more | Same page | Usually close variants; treat them as one keyword |
Some tools let you set this threshold. A setting of 3 gives tighter, more numerous clusters. A setting of 4 or 5 gives fewer, broader ones. On young SaaS sites we lean toward 4, because a narrower page is easier to rank than a broad one.
6. Name the cluster and assign one URL
The highest-volume term with the right intent becomes the primary keyword and names the page. Everything else in the cluster goes into headings and body copy. If you are unsure how to split primary and secondary terms, our guide to primary and secondary keywords covers it. Then check whether a page already exists for that cluster before you brief a new one.
Worked example: keyword clustering 400 terms for a SaaS
Quellio is a fictional expense management SaaS. Its keyword export had 400 terms. Here is where they went.
| Stage | Keywords | What happened |
|---|---|---|
| Raw export | 400 | Pulled from a keyword tool, competitor gaps and Search Console queries |
| After cleaning | 338 | 62 removed: duplicates, competitor brands, consumer budgeting terms |
| Rough word buckets | 22 buckets | Expense reports, receipts, reimbursement, corporate cards, and so on |
| SERP-based clusters | 71 clusters | Threshold of 4 shared URLs |
| Clusters dropped | 19 | Results dominated by banks or government pages we cannot compete with |
| Clusters matched to existing pages | 21 | Became refresh briefs, not new posts |
| New pages to create | 31 | Prioritised by intent, then volume, then difficulty |
Three clusters from the result, to show what a finished row looks like:
| Cluster (primary keyword) | Terms in it | Combined volume | Intent | Page type |
|---|---|---|---|---|
| expense report template | 9 | 6,400 | Transactional | Template landing page |
| receipt scanning app | 6 | 2,100 | Commercial | Feature page with comparison table |
| how to reimburse employees | 11 | 1,700 | Informational | Blog guide linking to the reimbursement feature |
The step people underestimate is matching clusters to existing pages. Twenty-one of Quellio’s clusters already had a page that ranked somewhere between positions 15 and 60. Refreshing those was faster and usually beat a new post, which would have split the signal between two URLs.
Where keyword clustering goes wrong
Clustering by words alone
“Expense management” and “expense management software” share two words and sometimes very few results. One is a concept, the other a shopping list. Lexical clustering puts them together every time.
Ignoring intent when results overlap a little
Three shared URLs between a “what is” query and a “best” query usually means one big site ranks for both. It does not mean one page should target both.
Making clusters too broad
A 40-keyword cluster is often three pages pretending to be one. If the terms in a cluster need different H2s to answer, split it. Our post on how many keywords one page can rank for shows how broad a single page can reasonably go.
Never re-running it
Results pages change, especially with AI answers pushing results around. Re-check your top 20 clusters every 6 months and whenever a page stalls.
Keyword clustering and topic clusters are not the same thing
Keyword clustering decides what goes on one page. A topic cluster is a group of pages, usually a pillar page and supporting posts, linked together around a subject. You do keyword clustering first to define the pages, then arrange those pages into topic clusters. We walk through the second step in SaaS content strategy with topic clusters, and the list-building step before all of this in SaaS keyword research.
Quick recap: keyword clustering
- Keyword clustering groups terms that one page can rank for.
- Use a word-based sort to organise the list, then shared results to make the final call.
- 4 or more shared URLs in the top 10 means same page; 0 to 2 means separate pages.
- Intent is a hard wall: different intent never shares a page.
- Match clusters to existing pages before briefing anything new.
- Re-run keyword clustering on your top clusters every 6 months.
FAQ
What is keyword clustering in SEO?
It is the process of grouping related keywords that can be targeted by the same page. The most reliable way is to compare the search results for each keyword and group terms that share several of the same ranking URLs.
How many keywords should be in one cluster?
There is no fixed number. Most useful clusters for a SaaS site hold 3 to 15 terms. If a cluster grows past 25 or 30, check whether the terms really need the same answer or whether it should be split.
Can I do keyword clustering for free?
Yes, for small lists. Sort by words in a spreadsheet, then check the top results by hand for the lead terms. It gets slow past about 100 keywords, which is where a paid clustering tool starts to pay for itself.
What SERP overlap threshold should I use for keywords clustering?
We use 4 shared URLs in the top 10 as the default. Use 3 if you want tighter, more specific pages, and 5 if you would rather have fewer, broader pages. Whatever you choose, keep it the same across the whole list.
Is keyword clustering the same as keyword grouping?
People use the terms interchangeably. Some use “grouping” for the quick word-based sort and “clustering” for the results-based method, but there is no official distinction.
How often should I redo keyword clustering?
Review your most important clusters every 6 months, and re-check any cluster whose page has stalled. Search results shift over time, and two terms that shared a page a year ago can split apart.
