Coding Script or NotebookGoogle ColabFree

Free Keyword Clustering Tool (SERP-Overlap + Embeddings Hybrid)

ForKeyword researchSearch intent

By Lazarina Stoy· Updated 24 Oct 2026

Keyword clustering tools usually make you pick a side. Embedding-based clustering groups keywords by meaning, which is free and fast but can’t tell you whether Google treats two similar-sounding searches as the same query. SERP-overlap clustering groups keywords that share ranking URLs, which is the best evidence that one page can rank for both, but it needs SERP data for every keyword. This free Google Colab notebook runs both methods, shows you where they disagree, and combines them into a hybrid that uses SERP evidence where you have it and meaning where you don’t.

Who it’s for

SEOs, content strategists and agencies who want a keyword map without paying for a clustering SaaS, and anyone who wants to see how the method works rather than trust a black box. You don’t need to code: you upload a CSV, change a few settings and run the cells.

How to use it

  1. Open the notebook in Colab and run it once on the sample data to see the output.
  2. Upload your keyword CSV (keyword and volume) and, if you have it, a SERP export with the top 10 URLs per keyword. There is also an optional DataForSEO fetcher for missing SERPs.
  3. Run the embeddings step: a small Sentence-BERT model plus hierarchical clustering with a distance threshold, so you don’t have to guess the number of clusters (HDBSCAN is included as an alternative).
  4. Run the SERP-overlap step: keywords join a cluster when they share at least three top-10 URLs with its highest-volume keyword (a hard clustering approach).
  5. Review the disagreement tables, then run the hybrid, which blends both similarity scores into one.
  6. Export the results and import the Excel file into Google Sheets.

What you get

  • A keyword-level sheet with the hybrid cluster, cluster label, primary keyword flag, intent hint and the cluster each individual method chose
  • A cluster summary with the label (highest-volume keyword), the most central keyword, total volume and a volume-weighted search intent mix
  • Two diagnostic tables: keywords with similar meaning but different SERPs (likely different intent, so separate pages) and keywords with different wording but the same SERPs (one page can target both)
  • Adjustable thresholds and a SERP weight, so you can choose stricter, intent-led clusters or broader, topic-led ones

Limits and costs

The notebook is free and the sample run needs no API key; it runs on a CPU in a minute or two. Fetching SERPs through DataForSEO is optional and costs about $0.002 per keyword in live mode at the time of writing. SERPs change with location, device and time, so overlap from one snapshot is a strong signal rather than a fact. The default model is English, the thresholds were tuned on short English keywords, and the intent hint is a set of simple rules for a human to check. The sample data is synthetic: invented volumes and fictional URLs.

For the theory behind it, read my guide to keyword clustering with KeyBERT, and learn clustering properly in the Introduction to Machine Learning for SEO course.

What’s included

  • Three methods in one notebook: embeddings, SERP overlap and a hybrid of both
  • Runs free on a CPU; SERP data optional (DataForSEO fetcher included)
  • Shows where meaning and SERPs disagree, so you know when to split a page
  • Names each cluster, picks a primary keyword, adds an intent hint and volume totals
  • Exports CSV and an Excel file ready to import into Google Sheets