Keyword Cluster Tool

Paste a keyword list and group it into clusters based on shared significant words

ℹ
This is a plain co-occurrence heuristic written in JavaScript, not AI or NLP, it groups keywords purely by shared non-stopword tokens. It has no understanding of meaning or synonyms, so semantically related keywords with different words won't be grouped together.

Keywords (one per line)

0 keywords entered
Clustering runs entirely in your browser, the keyword list you paste is never uploaded anywhere.

About this tool

This is a plain-JavaScript heuristic, not an AI or NLP system, it's completely transparent about how it works, so you can trust exactly what it's doing to your keyword list. Here's the algorithm in full: every keyword is lowercased and split into words, common stopwords ("a", "the", "for", "best", and similar filler words) are removed, and each remaining significant word is used as a key in a map pointing to every keyword phrase that contains it. Keywords are then greedily grouped into clusters by their most distinctive shared word, the significant word that appears in the most other keywords in that phrase, so each cluster is named after the theme word tying its members together. Any keyword sharing no significant word with any other keyword falls into an "Other" cluster. That's it, no semantic understanding, no synonym matching, just literal shared-word grouping.

How to use it

  1. Paste your keyword list, one phrase per line (works well with 50-200 short phrases from keyword research tools).
  2. Click "Cluster keywords".
  3. Review each cluster's name and member list, copy a single cluster, or export the whole result as a CSV of cluster,keyword rows.

Tips: this works best as a first-pass sort to speed up manual review, not a final answer, always skim the clusters yourself, since a shared literal word doesn't always mean the keywords are truly related (e.g. "running shoes" and "running a business" would share the word "running" but aren't the same topic).

Is this using AI or machine learning?

No, it's a deterministic word-matching heuristic that runs entirely in plain JavaScript. The same input always produces the same clusters, with no model, training data, or external service involved.

Why did two clearly related keywords end up in different clusters?

Because the tool only matches on literal shared words, not meaning, "sneakers for jogging" and "running shoes" won't cluster together even though they mean nearly the same thing, since they share no significant word. This is the core limitation of a word-overlap heuristic versus true semantic clustering.

How is the cluster name chosen?

Each cluster is named after its most distinctive shared word, the significant (non-stopword) word that appears across the most keywords within that group, since that word best represents the common theme tying its members together.

What ends up in the "Other" cluster?

Any keyword whose significant words don't overlap with any other keyword in your list, usually a one-off phrase or a keyword written very differently from the rest of the list.

Is my keyword list uploaded anywhere?

No, clustering happens entirely in your browser with JavaScript. Nothing you paste is sent to a server or stored anywhere.