SEOPlaybook

Keyword Clustering: A Manual and Tool Method

Keyword clustering is the practice of grouping search terms that can be answered by one page, so each group gets exactly one URL instead of ten competing ones. The test that works best is simple: if two terms return mostly the same pages in Google’s top 10, they belong together.

This page is for marketers and site owners who already have a keyword list and need to turn it into a page plan. It gives you a free manual method, a short script for bigger lists, a comparison of the routes, and rules for deciding what each cluster becomes. If you do not have the list yet, start with our keyword research for SEO guide.

On this page

What does keyword clustering decide?

Keyword clustering decides how many pages you need and what each one targets. A list of 400 terms might become 60 pages, or 140. The difference is whether you trust wording or trust the results page.

Wording misleads in both directions. Two phrases can look almost identical and want different pages, and two that look unrelated can be answered by the same article. Keyword Insights makes the point with “vaporizer parts” and “vaporizer accessories”: semantically close, but their results were only 11.8% similar, so the guide recommends separate pages.

Clustering sits between two jobs we have covered elsewhere. Search intent tells you what a single query wants. Topical authority is about how a whole site covers a subject. Clustering is the working step in the middle: which queries share a page, so that the site’s structure matches how searchers actually behave.

How does SERP-based clustering work?

SERP-based clustering works by running each keyword as a search, recording the ranking URLs, and grouping keywords whose lists overlap. Per Wikipedia’s entry on keyword clustering, the comparison uses the top 10 results, and two keywords are grouped when they share enough URLs. Keywords with no shared URLs go into a separate group.

“Enough” is the setting that matters. The entry calls it the clustering level: the minimum number of shared URLs needed to group keywords. A level of 1 or 2 produces a few large groups. Near the top of the scale, 9 or 10 shared URLs, matches are rare because nearly the whole top 10 must agree. The entry does not give a default, and neither does Keyword Insights, which recommends using a tool’s defaults for most cases. One vendor does state a number: KeyClusters says it groups keywords that share at least 3 of the top 10 pages. That is a vendor claim, but it is a sensible place to start.

The diagram below shows the idea with an illustrative pair of results pages. It is not real data.

Two keywords share four of ten ranking URLs, which is enough to cluster at a level of 3 Illustrative example. Two rows of ten squares show the top 10 results for keyword A and keyword B. Four squares in each row are highlighted because the same URLs rank for both keywords, in different positions. With a clustering level of 3 shared URLs, the two keywords group together. At a level of 5 they would not. Shared URLs decide the cluster Illustrative top 10 for two keywords; highlighted squares are the same URL Keyword A Keyword B positions 1 to 10, left to right 4 shared URLs Level 3: group them on one page. Level 5: keep them apart. The setting is your call, so test it.

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram based on the clustering-level description in Wikipedia's keyword clustering entry. Data is illustrative.

SERP clustering has a known weakness. Keyword Insights notes that it costs money and can cause “keyword cluster fragmentation,” where clusters that do not need separate pages get split. A strict threshold produces that. So does a SERP with one dominant homepage and nine different pages beneath it.

The manual method, step by step

The manual method needs only a spreadsheet and a list of terms. It is slow, but it is free and it teaches you what your market’s results look like.

  1. Make a sheet with five columns: keyword, monthly volume, intent, top-10 URLs (or just the top 5), and cluster name.
  2. Sort by intent first. The four standard types are informational, navigational, commercial and transactional, as Semrush’s clustering guide lists them. A commercial comparison term and a how-to term seldom share a page.
  3. Search each term in a private window set to your target country. Paste the ranking URLs into the sheet. Skip the video, forum and map results, since they signal format rather than a shared page.
  4. Pick a lead term in each rough group, the one with the highest volume, and compare every other term against it. Count shared URLs.
  5. Apply a threshold. Start at 3 shared URLs, in line with the one vendor figure above. Terms at or above it join the lead’s cluster. Terms below it stay out.
  6. Run Semrush’s three checks on anything borderline. Its manual method asks about SERP similarity (do the same pages rank?), content quality (could separate pages each be substantive, or would one combined page be too broad?), and the user journey (would one person want all these topics together?).
  7. Name each cluster after its lead term, add the cluster’s combined volume (the sum of each term’s monthly average, as Semrush defines it), and mark which cluster already has a page on your site.

Searching is the bottleneck, so cap the first pass. Cluster your 30 to 50 most valuable terms by hand, and only automate once you trust the threshold.

A scripted route for large lists

A script removes the counting, not the searching. You still need the ranking URLs for each keyword. Export them from whatever SERP data source you use, one row per keyword and URL, with the keyword’s volume repeated on each row, and save the file as serps.csv.

The script below is a minimal soft clustering pass in Node.js. It takes the highest-volume unassigned keyword as the leader and pulls in every other keyword that shares at least MIN_SHARED URLs with it. We tested it on a small sample file; run it on your own data before you rely on it.

import { readFileSync } from "node:fs";

const MIN_SHARED = 3; // shared top-10 URLs needed to join a cluster

// serps.csv columns: keyword,volume,url (one row per ranking URL)
const serps = new Map();
const volume = new Map();
for (const line of readFileSync("serps.csv", "utf8").trim().split("\n").slice(1)) {
  const [kw, vol, url] = line.split(",").map((s) => s.trim());
  if (!serps.has(kw)) serps.set(kw, new Set());
  serps.get(kw).add(url.replace(/\/$/, ""));
  volume.set(kw, Number(vol) || 0);
}

const shared = (a, b) => [...serps.get(a)].filter((u) => serps.get(b).has(u)).length;

const assigned = new Set();
const byVolume = [...serps.keys()].sort((a, b) => volume.get(b) - volume.get(a));
for (const lead of byVolume) {
  if (assigned.has(lead)) continue;
  assigned.add(lead);
  const members = byVolume.filter((kw) => !assigned.has(kw) && shared(lead, kw) >= MIN_SHARED);
  members.forEach((kw) => assigned.add(kw));
  console.log(lead, "->", members.join(", ") || "(alone)");
}

Three limits to know. It compares every keyword with the leader only, so members can disagree with each other. It treats example.com/page and example.com/page?x=1 as different URLs unless you clean them first. And it counts URL matches, not meaning, so a SERP dominated by one site’s subpages can fake an overlap. Review the output by eye before building anything.

Soft, moderate and hard clustering

Soft, moderate and hard are three ways to apply the same threshold, and they differ in how strictly keywords inside a group must agree. The Wikipedia entry defines them this way:

  • Soft: start from the highest-volume keyword and group others that meet the threshold with it. Members relate to the leader, not necessarily to each other. The script above works this way.
  • Moderate: compare all keywords with each other. Every keyword has at least one partner in the group with a shared URL, but two random members may share none.
  • Hard: compare all keywords with each other and also consider the matching URLs across pairs. Every keyword in a group shares the same matching URLs.
Soft, moderate and hard clustering differ in how strictly members must agree Three columns. Soft: members only need to match the leader keyword, so groups are large and loose. Moderate: every member needs at least one partner in the group with a shared URL, so groups are medium. Hard: every member shares the same matching URLs, so groups are small and tight but more numerous. Three strictness levels Same threshold, different agreement rule Soft Each member matches the leader only. Largest, loosest groups. Fast first pass. Moderate Each member matches at least one other member. Medium groups. Balanced default. Hard All members share the same matching URLs. Smallest, tightest groups. Risk: fragmentation.

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram based on the soft, moderate and hard definitions in Wikipedia's keyword clustering entry. The "balanced default" label is our judgment, not the entry's.

For a site audit, start soft to see the rough shape, then rerun the borderline groups moderate or hard. A group that survives a hard pass is safe to put on one page.

Manual, scripted or paid tool?

Choose by list size and how often you will repeat the job. Semantic clustering, which groups by meaning using language models, is usually cheap or free and easier to read, but Keyword Insights warns that search engines may show different results for terms that look alike. SERP-based clustering matches how Google behaves, at the price of collecting the results.

RouteCostBest forWeak point
Manual spreadsheetFree, plus your timeUp to about 50 priority terms; learning your marketSlow; you will skip the borderline checks when tired
Script over exported resultsFree to run; you supply the SERP dataHundreds of terms; repeat runsYou maintain it, and URL cleaning is on you
Dedicated SERP toolPer the vendor’s pricing pageThousands of terms; teamsFragmentation if you accept defaults blindly
Semantic or AI groupingOften freeRough ideation before real SERP checksMeaning is not results; verify before building

On paid tools, we are not ranking vendors here. KeyClusters, for example, describes a CSV in, grouped file out workflow with usage billed per keyword and pricing listed on its own page, and Semrush and Keyword Insights have clustering features inside larger suites. Read each vendor’s current pricing yourself, and test a tool against a hand-clustered sample of 30 terms before you trust it with 3,000.

Turning clusters into pages

A cluster is only useful once it has a decision attached: update an existing page, create a new one, or merge. Semrush’s workflow says to check for existing pages first, optimize them if they exist, and create new ones if they do not. Do that with a three-way tag in your sheet.

  • Existing page, same intent: update it. Put the cluster’s lead term in the title, H1 and first paragraph, and use the other terms in subheadings and body copy.
  • Existing page, different intent: do not stretch it. Create a new page and link the two. See search intent for how to read a mismatch.
  • No page: create one. Rank clusters by combined volume, difficulty and business value. Semrush notes that a cluster you can realistically rank for may beat a higher-volume one you cannot.

Then protect the structure. Each page needs one primary term, no two pages should share one, and the cluster members should link to each other with descriptive anchors. The pattern is covered in topic clusters for AI citation, content hubs and internal linking.

Five-step keyword clustering workflow from keyword list to tracked pages Step 1: collect the keyword list with volume and intent. Step 2: get the top 10 URLs for each keyword. Step 3: count shared URLs against a threshold, starting at 3. Step 4: tag each cluster as update, new or merge. Step 5: publish, link the cluster and track it in Search Console. From list to pages in five steps The same loop works by hand or by script 1. List 2. Fetch 3. Compare 4. Decide 5. Track Terms with volume and intent. Top 10 URLs for each term. Count shared URLs; start at 3. Update, new page or merge. Link the cluster; watch Search Console.

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram. The 3-URL starting point follows the vendor figure from KeyClusters cited above; it is a starting point to test, not a rule.

Finish by tracking. Semrush suggests monitoring cluster rankings in Search Console or a position tracker, then using the data to decide on changes. Check whether the cluster’s secondary terms start appearing in your Search Console queries for the page. If a term you grouped never shows up, your threshold may have been too loose. For a printable list of the surrounding steps, use our keyword research checklist.

Where keyword clustering goes next

Keyword clustering is a one-off job only the first time. Rerun it whenever you add a batch of new terms, because results pages change and an old cluster can split or merge. Do it quarterly for active sites, and before any content calendar or migration.

The method also reaches past Google. Semrush notes that AI systems call secondary terms “fan-out queries,” which is the same grouping logic applied to how assistants break a question into sub-searches. A page built to answer a whole cluster is a better candidate to be quoted than one built for a single phrase.

If you want an outside view of which clusters your site is missing, and a page plan built from real results pages, that is part of our AI SEO service.

Frequently asked questions

What is keyword clustering?

Keyword clustering is the practice of grouping search terms that belong on the same page, then assigning each group to one URL. The most reliable test is whether the terms return mostly the same pages in Google's top 10. If they do, one page can serve them all.

What is an example of keyword clustering?

Searching two similar terms and finding that six of the ten ranking URLs are the same means they likely belong in one cluster and on one page. Two terms that look alike but return almost no shared URLs belong on separate pages. Keyword Insights gives the example of 'vaporizer parts' and 'vaporizer accessories', whose results were only 11.8% similar.

What are the types of keyword clustering?

There are two broad approaches: semantic clustering, which groups by meaning using language models, and SERP-based clustering, which groups by shared search results. Within SERP-based clustering, the literature describes soft, moderate and hard variants that differ in how strictly keywords must match each other.

How many shared URLs should keywords have to be in one cluster?

There is no universal number. The threshold is usually called the clustering level, and a higher level gives smaller, tighter groups. One vendor, KeyClusters, states that it groups keywords sharing at least 3 of the top 10 pages, which is a reasonable starting point to test against your own results.

Can you do keyword clustering for free?

Yes. You can compare top-10 results by hand in a spreadsheet for a few dozen terms, or run a short script over exported results for larger lists. The cost is your time and the cost of collecting the results pages, not any clustering software.

What are the four types of keywords?

The four search intent types are informational, navigational, commercial and transactional. Intent is the first thing to check when clustering, because two terms with different intents rarely share a page even when their wording is close.

OK

Olga Kunger

Founder & Lead Strategist, Ambeltek

Olga leads Ambeltek's web development, AI SEO, and GEO work — helping brands rank on Google and get cited by AI engines. More about Olga →

Want this done for your site?

AI SEO programs that rank on Google and earn AI citations. Growth tier from $9k, fixed scope before work starts.