Keyword clustering: how to group keywords into pages
Keyword clustering groups searches that one page can rank for. How to cluster by the search results, not by shared words, and turn each cluster into a page plan.
Keyword clustering means sorting a keyword list into groups where each group can be won by a single page. You do it so you write one strong page per topic instead of five thin pages that compete with each other.
The rule that matters: two keywords belong together when Google already shows mostly the same pages for both. Shared words are a hint, not proof.
Why it matters
- One page per intent. If "running shoes for flat feet" and "best shoes for overpronation" return the same ten results, Google treats them as one question. Two pages targeting them split your links and confuse which one should rank.
- Better pages. A cluster tells you every phrasing people use, so the page answers all of them and earns more of the long tail.
- A real content plan. A list of 400 keywords is a spreadsheet. A list of 30 clusters is 30 pages you can schedule, brief and track.
Three ways to cluster, and which to use
- By words (lexical). Group anything that shares a stem, such as everything containing "crm". Fast, and wrong often enough to hurt: "crm software" and "what is a crm" share a word but want different pages.
- By meaning (semantic). Group keywords an AI model or embedding says are similar. Better than words, but it still cannot tell you what Google rewards.
- By the search results (SERP overlap). Compare the top 10 results for each keyword. If two keywords share enough of the same URLs, they go in the same cluster. This is the one to trust, because it reflects what Google has already decided.
A practical threshold: put two keywords together when they share 3 or more of their top 10 URLs. Use 4 if you want tighter, more specific pages.
A worked example
Say you run a bookkeeping app and pulled these keywords. The figures are illustrative, but the pattern is the one you will see:
| Keyword | Monthly searches | Shared top-10 URLs with "bookkeeping software" |
|---|---|---|
| bookkeeping software | 6,600 | (seed) |
| best bookkeeping software | 1,900 | 7 |
| bookkeeping software for startups | 320 | 4 |
| bookkeeping app | 2,400 | 5 |
| how to do bookkeeping | 3,600 | 0 |
| bookkeeping checklist | 880 | 0 |
The first four share most of their results, so they are one cluster and one page: a software roundup or a product page. "How to do bookkeeping" and "bookkeeping checklist" share nothing with the seed. They want a guide, and they may well share results with each other, which you would check the same way.
Notice that "bookkeeping app" looks like a different product on paper but lands in the same cluster. Word-based grouping would have split it out.
How to do it by hand
- Start with a clean list. Remove duplicates, misspellings and keywords with no volume you care about. A few hundred keywords is plenty for a first pass.
- Pick seeds. Sort by volume and take the biggest keywords as seeds. Each seed is a candidate page.
- Pull the top 10 for each keyword. Note the ranking URLs, not titles.
- Compare each keyword to the seeds. Count shared URLs. Assign the keyword to the seed it overlaps most with, if the count reaches your threshold.
- Leftovers become new seeds. Anything that matches no seed is either its own page or not worth a page. Decide which by volume and business value.
- Name each cluster by intent. "Compare bookkeeping tools" says more than "bookkeeping software".
Turn clusters into a page plan
For each cluster, write one line:
- Main keyword: the one with the most volume, which goes in the title.
- Intent: learn, compare or buy.
- Page: an existing URL to improve, or a new URL to write.
- Supporting keywords: the rest of the cluster, which become H2s, FAQ entries or phrasing inside the text.
If two of your existing pages land in the same cluster, that is cannibalization. Merge them into the stronger page and redirect the other one with a 301. Our guide to 301 and 302 redirects covers how.
Mistakes to avoid
- Clustering once and never again. Results shift. Recheck your biggest clusters every few months, especially after Google updates.
- Forcing a cluster to fit a page you already have. If the results say "guide" and you have a product page, the product page will not rank for it.
- Treating every leftover as a page. A keyword with 20 searches and no clear fit is usually a line in an FAQ.
- Ignoring difficulty. A cluster you cannot win yet should wait. See keyword difficulty for how to judge that.
Clustering with zaDojo
zaDojo ships a keyword clustering skill for AI agents such as Claude and ChatGPT. You hand your agent a keyword list, a saved keyword tag or a competitor domain, and it groups the keywords by intent, maps each cluster to an existing page or proposes a new one, and saves the result as a report. The keyword lookups it runs use credits; reading your saved keywords does not.
If you are starting from nothing, begin with keyword research or competitor keywords to build the list, then cluster it.
Questions people ask
How many keywords should a cluster have?
There is no right number. A cluster is as big as the set of searches one page can satisfy. Some are two keywords, some are forty.
Should I target a cluster's keywords exactly in the text?
Use the main keyword in the title and first paragraph, and the others where they read naturally. Google matches meaning, so forcing every variant in word for word makes the page worse.
Can I cluster without pulling search results?
You can group by meaning to get a draft, but check the big clusters against the results before you commit pages to them. That check is what stops cannibalization.