WriteMySEO / Blog / Clustering Keywords by SERP Overlap, Not Semantics
SEO data

Clustering Keywords by SERP Overlap, Not Semantics

Semantic similarity tells you two keywords mean similar things. SERP overlap tells you whether Google ranks one page for both. Only one decides page count.

The keyword clustering question is really a page-count question: given five hundred keywords, how many pages should exist, and which keywords belong to which page? Get it wrong in one direction and you build near-duplicate pages competing with each other. Get it wrong in the other and one page chases four intents and satisfies none.

Most clustering tools answer this with semantic similarity — embeddings or shared words. That measures the wrong thing. Two keywords belong on the same page not when they mean similar things, but when Google treats them as the same intent. And Google publishes its opinion on that question every day, in the search results themselves.

What each method actually measures

Semantic clustering embeds each keyword as a vector and groups keywords whose vectors sit close together. It measures linguistic similarity: "crm software" and "crm platform" land near each other because the language is near-identical.

SERP-overlap clustering pulls the top results for each keyword and groups keywords whose result sets share URLs. It measures Google's behavior: if the same pages rank for both keywords, Google is satisfying both with one intent, and one page can plausibly cover both. If the result sets are disjoint, Google has decided these are different jobs — and a single page is fighting that decision.

The difference matters because language similarity and intent equivalence come apart constantly, in both directions.

Where semantic clustering gets the page count wrong

It merges what should be split. Keywords can be near-synonyms linguistically while carrying different intents. A phrase plus the word "best" often flips a SERP from vendor pages to comparison listicles; adding "for small business" can flip it again. An embedding model sees three phrasings of one concept. The SERP shows three different result-set compositions — which means three pages, or at least not one.

It splits what should be merged. Conversely, lexically distant queries — an abbreviation and its expansion, a symptom phrased two ways, jargon versus plain language — frequently return substantially the same results. Semantically they may sit in different neighborhoods; behaviorally they are one page's keyword set.

The reasonable inference from both failure modes is the same: embeddings model language in general, while ranking reflects what Google has learned from behavior on these specific queries. When the two disagree about intent, the SERP is the better evidence, because the SERP is the environment you are actually entering.

The worked method

The mechanics are simple enough to run in a spreadsheet at small scale or a script at large scale.

  1. Collect SERPs. For each keyword, pull the top 10 organic URLs from the same country and device, within as tight a time window as you can manage. This is the expensive step — you need a rank tracking or SERP API, and cost scales with keyword count.
  2. Normalize URLs. Strip tracking parameters, unify protocol and trailing slashes. Decide whether to compare at URL level (stricter, better for page-count decisions) or domain level (looser, more forgiving of pagination and near-duplicates).
  3. Score every pair. For each pair of keywords, count shared URLs between their top 10s. That count, 0–10, is your similarity score. Optionally weight shared URLs by position, since agreement at positions 1–3 is stronger evidence than agreement at 8–10.
  4. Set a threshold. Common practice is to treat roughly 3–4 shared URLs out of 10 as "same intent." There is no canonical value — it is a sensitivity dial, and you should inspect clusters at a couple of settings before committing.
  5. Choose a linkage rule. This choice changes results more than the threshold does:

For page-count decisions, hub-and-spoke or complete-linkage is usually the right call: the cost of wrongly merging two intents into one page is higher than the cost of an extra small cluster.

Each resulting cluster is a page candidate: the hub is the primary target, the members are the secondary terms, and the cluster count is your answer to "how many pages."

The limitations you should price in

What to do

keyword clusteringSERP analysiscontent planning

WriteMySEO produces marketing content, not legal, medical, financial, or compliance advice. Figures cited reflect publicly reported industry data at time of writing and shift over time.

Get started

We write this well about your industry, every month.

AI-drafted, human-reviewed SEO content on a flat subscription. Blog posts, metadata, schema, and internal links, shipped on a monthly rhythm.

See plans

More from the blog