You've built your core — a thousand queries stacked in a column. Now you have to lay them out across pages: which phrases live on one page, and which need a page of their own. That's clustering. There are three ways to group them, and each answers the question "are these two queries alike" differently.
Let's walk through all three on one example: the queries "buy a bike," "buy a bike cheap," "how to choose a bike for an adult."
- Looks at which sites already rank in the top 10
- "buy" and "how to choose" → different sites → different clusters
- Accurate on intent, slower and more expensive
Method 1. By SERP (SERP-based): Hard, Middle, Soft
The most reliable way. The logic is simple: if two queries really are about the same thing, the search engine already shows the same pages for both. So you take the top 10 for each query and see how many URLs overlap. Lots of shared links — one cluster. Few — different ones.
The overlap threshold (how many shared URLs you need, usually 3–5) sets the strictness. And how exactly queries get linked into a group is where the three modes differ.
Hard — strict
Every query in a cluster must overlap with every other one. If one falls below the threshold, it doesn't make it into the cluster. The result: small, clean groups where a mistake is almost impossible. The downside — lots of "loners" that didn't stick to anything.
Middle — moderate
A compromise: connection counts through "bridges." A query joins a cluster if it overlaps with the group's core, even if it doesn't match every member. Clusters are larger, purity is slightly lower. The default working mode for most projects.
Soft — loose
A link with at least one query in the group (via a chain) is enough. The clusters come out large, catching the whole tail, but phrases with a different intent can slip inside. Good for a rough draft of the structure, not for the final version.
A rule of thumb: Hard — when purity matters (commerce, money on the line), Soft — when completeness matters (a large content project, a draft), Middle — when you don't want to think about it.
The cost of the method: to compare search results, you first have to collect them — pull the top 10 for each query. That's search-engine scraping, which is slow and costs money. But the result matches reality as closely as it can.
Method 2. Semantic — by the meaning of words
Here we don't touch the search results. The method looks at the words themselves: it reduces them to their base form (lemma), spots synonyms and phrases close in meaning, and groups the similar ones.
It will confidently put "buy a bike" and "buy a bike cheap" together — the words are the same. But it may also pull "how to choose a bike" into the same group, because the shared word "bike" outweighs everything else. And that's a mistake: the intent is different (buy versus figure out).
The upside — instant and free, no need to scrape results. The downside — it doesn't sense intent, because it can't see that the search engine shows different pages for these phrases.
Method 3. On embeddings — by meaning, but smarter
An advanced version of the semantic method. Each query is turned into a vector — a set of numbers that encodes the phrase's meaning (an embedding). Queries are then grouped by how close these vectors are (with algorithms like DBSCAN).
The difference from plain semantics is that the vector captures the meaning as a whole, not individual words. The model understands that "two-wheeled transport for the city" and "city bike" are about the same thing, even without shared words. And that "buy" and "how to choose" are about different things, even though the word "bike" is shared.
The upside — it catches meaning more finely than anything else, works in any language, and needs no scraping. The downside — computing embeddings costs money (a call to an AI model), and on purely commercial queries it still loses to the SERP-based method: the "buy" intent is seen best right there in the top results.
What to pick for your task
- A large informational core, a blog, a wiki
- You need a quick rough grouping
- Queries in different languages
The working combo in practice: first run the core by meaning or on embeddings — you'll get rough groups in seconds and for free. Then re-check the debatable and money clusters by SERP. That way you pay for the expensive method only where the cost of a mistake is high.
Try it on your own queries
Our free clusterizer groups a list of phrases by meaning through AI — that's the third-category
method, without scraping results and without the wait. Paste your queries into /free/cluster,
see how they split into groups, and estimate how many pages you'll need.
Common questions
Which method is the most accurate?
If SERP-based is so accurate, why not cluster everything that way?
What's this threshold of 3, 4, 5?
Next — how to turn finished clusters into a brief for the copywriter, so each page covers its cluster in full.