Free tool Keyword clustering tool: group keywords by shared words
Paste a keyword list or a keyword tool export and get it grouped: "check website traffic", "how to check website traffic" and "website traffic checker" end up together under one head term. The grouping reads the keywords themselves, with stemming and a threshold you set. It does not look at search results, and the page explains what that means for your plan.
- Head term per group
- CSV export
- Runs locally
Group keywords
One keyword per line; a volume column is optional (after a tab, after a comma at the end of the line, or a whole export with a header row).
Up to 5,000 lines. A first row with a Keyword, Query or 关键词 column is read as a header; volume comes from a Volume / Search volume column, or Impressions when there is none.
A keyword joins a group when its similarity to the group's head term is at least this. Higher = smaller, tighter groups.
Jaccard: shared ÷ all distinct words. Overlap: shared ÷ words in the shorter keyword, so "utm builder" fully matches "free online utm builder".
The keyword each group is built around. Without volumes, the shortest keyword is used.
Porter stemming treats track, tracking and tracked as one word.
Keywords
37
After removing duplicates.
Groups
5
With two or more keywords.
Ungrouped
5
Keywords left on their own.
Grouped
86.5%
Share of keywords in a group.
Notes
- NoteFirst row read as a header: keywords from "keyword", volume from "volume".
Groups
Each card is a group: the head term first, then its members with their similarity to the head. Groups with the most volume come first.
1.live chat11 keywords · volume 33,550
- live chat 21,000
- live chat software 2,800 100%
- live chat jobs 2,800 67%
- live chats 1,900 100%
- live chat app 900 100%
- best live chat 900 100%
- best free live chat 900 100%
- live chat for website 700 67%
- what is live chat 600 100%
- live chat software for website 600 67%
- website live chat 450 67%
2.check website traffic10 keywords · volume 12,100
- check website traffic 2,600
- how to check website traffic 1,400 100%
- website traffic analysis 1,400 50%
- increase website traffic 1,300 50%
- website traffic check 1,000 100%
- website traffic checker 1,000 50%
- how to check site traffic 900 50%
- analyze website traffic 900 50%
- website traffic analyzer 800 50%
- check site traffic 800 50%
3.statistical significance calculator7 keywords · volume 4,200
- statistical significance calculator 2,300
- statistical significance example 800 50%
- how to calculate statistical significance 450 100%
- significance calculator 200 67%
- statistical significance meaning 200 50%
- calculate statistical significance 150 100%
- statistical significance formula 100 50%
4.utm link creator2 keywords · volume 450
- utm link creator 250
- create utm link 200 50%
5.utm tag builder2 keywords · volume 400
- utm tag builder 300
- online utm builder 100 67%
Not grouped (5)
- utm generator 3,600
- web traffic checker 1,300
- site traffic analysis 900
- stat sig calculator 700
- utm maker 400
Version v1.0Updated Update history
What a group means, and what it does not
A group is a set of keywords that are written alike. That makes it a good starting point for a page outline, a content audit or a tracking list. Whether they belong on one page is a separate question.
Head term
The keyword the group is built around: the highest-volume one, or the shortest if you choose. It is usually the obvious main keyword for a page about the group's topic.
Similarity
The percentage on each member is its similarity to the head term. 100% means the same words after stemming and filtering ("live chats" and "live chat"); 50% means half of the words are shared.
Group volume
The sum of the members' volumes. It is an upper bound on demand, not a traffic forecast: people often search several of these keywords, and one page rarely ranks for all of them.
Not grouped
Keywords that matched nothing at this threshold. Some are different topics; others are synonyms the words do not show ("utm generator" and "utm maker", "web" and "website").
This is lexical clustering: it compares the words in the keywords. SERP clustering instead compares the pages Google ranks for each keyword, and needs those results to be fetched. This tool does not fetch search results, so it cannot tell whether two keywords can rank with one page. Check that on the results pages.
Group a keyword list in three steps
Works with typed lists, keyword tool exports and Search Console query exports.
-
1
Paste the list
One keyword per line, or an export with its header row; the volume column is picked up automatically so each group can be built around its largest keyword.
-
2
Tune the threshold
Start at 0.5. If unrelated keywords end up together, raise it; if obvious variants stay apart, lower it or switch to the overlap coefficient. Tick "split by search intent" to keep how-to and tool keywords apart.
-
3
Check and export
Search the head term of each large group and a member or two. Export CSV, then merge or split groups by hand where the results disagree.
Word sets, similarity and head-term grouping
Each keyword becomes a set of normalised words; groups form around head terms by comparing those sets.
- English: lower case, full-width converted, split into words, stop words removed (the NLTK English list: how, to, for, is…), then stemmed with the Porter algorithm (1980) so tracking → track and calculators → calcul
- Chinese has no spaces, so each run of characters is cut at function words (的, 了, 如何, 怎么…) and turned into overlapping 2-character pieces: 图片压缩 → 图片, 片压, 压缩. A single leftover character is kept as it is
- Optional: generic modifiers (free, online, best, tools, 在线, 免费, 工具…) are dropped. If a keyword is nothing but stop words, its original words are kept
- Keywords are taken in order of head priority (highest volume, or shortest). Each one joins the existing group whose head term it is most similar to, if that similarity reaches the threshold; otherwise it starts a new group. Ties go to the earlier group, so the same list always gives the same groups
- With "split by search intent", a keyword can only join a head term with the same primary intent, using the rules of the search intent classifier
Jaccard
|A ∩ B| ÷ |A ∪ B|
{live, chat} vs {live, chat, softwar}: 2 ÷ 3 = 67%
Overlap
|A ∩ B| ÷ min(|A|, |B|)
{utm, builder} vs {utm, tag, builder}: 2 ÷ 2 = 100%
Join a group
similarity to head ≥ threshold
67% ≥ 50%: joins "live chat"
37 analytics and live chat keywords, grouped
The default list is 37 keywords with US monthly volume from an Ahrefs export (November 2026), grouped with Jaccard at 0.5, Porter stemming and generic modifiers ignored. 32 keywords fall into 5 groups; 5 stay on their own.
| Head term | Keywords | Volume | Worth a second look |
|---|---|---|---|
| live chat | 11 | 33,550 | "live chat jobs" is a job search, not a software search |
| check website traffic | 10 | 12,100 | "increase website traffic" asks how to grow traffic, not how to measure it |
| statistical significance calculator | 7 | 4,200 | "meaning" and "formula" want an explanation; the head wants a calculator |
| utm link creator | 2 | 450 | "utm generator" (3,600) and "utm maker" stay apart: different words, same need |
| utm tag builder | 2 | 400 | Same need as the group above |
| web traffic checker | 1 | 1,300 | Not grouped: "web" and "website" are different words, so it misses the website traffic group |
The words put "live chat jobs" next to "live chat software", while synonyms such as generator, maker and builder are kept apart. That is what lexical clustering can and cannot see. Ticking "split by search intent" moves the calculator away from "statistical significance meaning"; the synonyms still need a human.
How keyword groups mislead
Grouping saves hours of sorting. It does not replace looking at search results.
One group = one page
Keywords that share words can still need different pages: a calculator and an explanation of the same formula, or a product and its job listings. Check the results of the head term and of the members that look different.
Trusting the threshold blindly
There is no correct threshold; it depends on how long your keywords are. Look at the largest group and the ungrouped list, and adjust until both make sense.
Expecting synonyms to merge
Generator and maker, web and website, 解析 and 格式化 are different words to this tool. Merge such groups by hand, or replace synonyms before pasting.
Adding volumes as traffic
Group volume adds up searches, not visitors. People search several variants, and a page usually ranks well for only some of them.
Group the queries your pages already get
Clustering your own search queries shows which topics bring visitors today and which pages they land on.
Search queries
Connect Google Search Console and Bing Webmaster to see queries with clicks, impressions, CTR and position. Export the query table as CSV and paste it here: impressions are used as the volume.
Learn moreQueries by page
The search report also breaks queries down by page, so after grouping you can see which page each group already reaches, or that none does.
Learn moreSite search
What visitors type into your own search box, reported with your page data. Grouping it shows which topics people look for after they arrive.
Learn moreKeyword clustering questions
Still have a question?
Chat with the team behind TapCub — we usually reply within a few hours on business days.
What is keyword clustering?
Putting related keywords into groups so you can plan one piece of content per topic instead of one per keyword. There are two common ways: by the words in the keywords (lexical, what this tool does) and by the overlap of the search results each keyword gets (SERP clustering).
Is this SERP clustering?
No. SERP clustering fetches the search results for every keyword and groups keywords whose top results share pages. This tool only compares the keywords' words, runs in your browser and fetches nothing. It cannot tell you whether two keywords can rank with the same page; check the results for that.
Which threshold should I use?
Start at 0.5 with Jaccard. Short keywords of two or three words change similarity in big steps, so for those try the overlap coefficient at 0.6. Then look at the largest group and the ungrouped list and adjust.
What is the difference between Jaccard and overlap?
Jaccard divides the shared words by all distinct words of both keywords, so long variants score lower. Overlap divides by the words of the shorter keyword, so "utm builder" and "free online utm builder" score 100%. Overlap groups more, and can pull loosely related long keywords into a short head term.
How is the head term chosen?
By default the highest-volume keyword, because it usually names the topic in the words most people use. Without volumes, or if you choose so, the shortest keyword. Each group is built around its head, so the head choice also changes the groups.
Does it work for Chinese keywords?
Yes. Chinese has no spaces, so keywords are cut at function words and split into overlapping 2-character pieces. Pieces that cross a word boundary add some noise, which is why the overlap coefficient often works better for Chinese lists.
How is this different from a word frequency counter?
The word frequency counter counts the words in one text. This tool compares keywords with each other and groups them. To label why people search each keyword, use the search intent classifier; to check a page's text against its keywords, the keyword density checker.
Is my keyword list uploaded?
No. Grouping runs in your browser. The list is not saved, not added to the page address and not sent to TapCub.
Update history
New features, fixes and data refreshes for this tool, newest first.
-
· v1.0
LaunchedFirst release.
Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates
Track the groups once they are pages
After you publish, TapCub shows each page's Search Console queries, visits, sources and conversions together, so you can see whether a group's page catches the keywords you planned it for.