SEO Skill

How to cluster keywords by search intent

Two keywords belong on one page when Google ranks the same kind of page for both. Your Search Console data already shows you most of those groups.

Written by AI and Ian Nuttall

Ian Nuttall

More than 20 years in SEO. Founder of Practical Programmatic, a programmatic SEO course with over 1,000 students, and of URL Monitor, sold for $250,000.

AI writes these posts. I plan each one, gather the data from real sources and review the draft before it goes live.

See my background
A Victorian engraved sorting office where clerks file lime green envelopes into a few large pigeonholes while a supervisor checks a ledger.

Keyword clustering is grouping keywords that one page can serve, so you write one strong page for each group instead of a thin page for every phrasing. The hard part is deciding what counts as the same group.

Most clustering goes by the words. “Coffee grinder” and “best coffee grinder” share two words, so they go together. I think that’s the wrong test. Google groups keywords by what the searcher wants, and you can see its grouping in the pages it ranks.

Why grouping keywords by their words goes wrong

Keywords that share words often want different pages. I pulled the top Google results for four coffee grinder searches and sorted the ranking pages by type:

SearchWhat Google ranks
coffee grinderMostly shop and category pages, 5 of 8 results
manual coffee grinderMostly shop pages, 5 of 9 results
best coffee grinderMostly tested reviews and buying guides, 5 of 9 results
how to grind coffee beansGuides and videos, with no shop pages

“Coffee grinder” and “best coffee grinder” look like one cluster, but Google treats the first as someone ready to buy and the second as someone comparing. A review page will struggle on the first search and a category page on the second. “Manual coffee grinder” looks like a different topic, yet it wants the same kind of page as “coffee grinder”, which is a shop page with a filter.

That’s the test I’d use. If Google ranks the same kind of page for two keywords, they can share a page. If it ranks different kinds, they need different pages, however similar the words look.

Your Search Console already shows Google’s clusters

The quickest clusters to find are the ones Google has already made on your own site. When several different queries land on the same page of yours, Google has decided that page answers all of them.

On seoskill.dev, “domain traffic checker”, “website traffic checker” and “website traffic checker free google” all go to one tool page. They share few words in the right order, but Google sees one intent, so they belong on one page and the page should use all three phrasings naturally.

The opposite case is a query Google spreads across several of your pages. SEO Skill’s cannibalization section lists those, and on seoskill.dev “seo mcp” is split across three pages, with about half its impressions on one and the rest on two others. That’s Google telling me it can’t pick a page, and the fix is to make one page the clear answer and point the others at it.

Start with the queries Google already splits across more than one of your pages:

Ask your agent

Or in a terminal

First time? Connect SEO Skill to your agent, free

Run it in a terminal, then sign in with Google.

The report checks each competing page live, so you can see a redirect or a canonical that already explains the split before you change anything.

How to cluster keywords you don’t rank for yet

For a topic you haven’t written about, compare the results Google shows for each keyword. Give SEO Skill between 2 and 10 keywords, and it counts how many of their top 10 pages and sites each pair shares:

Ask your agent

Or in a terminal

When I ran the command for the four coffee grinder searches, no pair shared a single page in its top results. The only pair that shared any sites was “coffee grinder” and “manual coffee grinder”, with two shops ranking for both. Those are the two searches where Google ranks shop pages, so the overlap and the page types point the same way.

A common rule is that two keywords sharing about 40% of their top results belong on one page. I’d treat that as a starting point, because live results move more than most clustering assumes. I pulled four running shoe searches twice, a few minutes apart, and “how often to replace running shoes” shared none of its sites between the two pulls. Near-synonyms can share almost nothing on one pull and plenty on the next.

So read the overlap with the page types beside it. When two keywords share pages, they belong together. When they share few pages but Google ranks the same kind of page for both, such as two lists of tested reviews, I’d still put them on one page. Run the comparison again on another day before you split a topic over one low number.

When one page covers several keywords

Once the groups are clear, each one gets a single page, and every keyword in the group shapes it:

  1. Write the page for the group’s main intent, using the type of page Google ranks for it.
  2. Use the other keywords as natural headings or phrasings on the same page, where they fit.
  3. Answer the follow-up questions in the group on that page, rather than a thin page for each.
  4. Keep separate pages only for keywords where Google ranks a different kind of page.

Don’t try to cover every variation with its own page. Google’s spam policies count “creating substantially similar pages that are closer to search results than a clearly defined, browseable hierarchy” as doorway abuse.

Good clusters matter more as AI does more of the searching. An assistant answering one question runs several searches of its own, and those searches look like the keywords in a cluster: the main question, a comparison and a few follow-ups. A page that covers the whole group well can be the source for several of those searches at once, which is what I saw in my query fan-out tests.

I expect agents to do most of the informational searching that SEO has targeted within the next two to three years. Clustering by intent is ordinary SEO, and it’s also the shape of page those agents keep citing.

How this was checked

  • The coffee grinder and running shoe results are US desktop Google results from DataForSEO in November 2026, top 10 organic results per search. Page types were sorted by hand from each result’s site and title. Forum threads and videos count as their own type.
  • DataForSEO now returns many results as Google redirect links, so pages were matched on each result’s site and path. The comparison runs cost about 6 cents.
  • The seo research serp_overlap run for the four coffee grinder searches used SEO Skill 0.20.0 and cost under 1 cent. It compared 21 of the 30 top results by page; the other 9 had a shortened breadcrumb with no page to match.
  • The seoskill.dev queries are from its own Search Console over four weeks to early November 2026, through seo data and the cannibalization section of seo report.