Why cluster keywords before you write
A keyword list isn’t a content plan. “Keyword grouping tool”, “keyword clustering tool” and “group keywords by topic” are one search with three phrasings, and one good page can rank for all of them. Write three pages instead and they compete with each other, split your links, and risk being treated as near-duplicates. On our own product we ended up noindexing near-duplicate pages; the Versely case study covers what that taught us.
Clustering turns the list into a plan: one group, one page. The group’s label is the main topic, and the other keywords become the phrasings, H2s and FAQs on that page.
How the grouping works
- Each keyword goes through an embeddings model, BAAI’s bge-base-en-v1.5 on Cloudflare Workers AI. It turns text into a list of 768 numbers where phrases with similar meaning end up close together.
- We compare every pair with cosine similarity: 1 means the same meaning, lower means further apart.
- Average-linkage clustering starts with every keyword alone and keeps merging the two closest groups, as long as their average similarity stays above your cut-off.
- Each group is named after its most central keyword: the one with the highest average similarity to the rest. That’s usually the most generic phrasing, which makes a good primary keyword.
Turning groups into pages
- Check intent, not only meaning. “What is search intent” and “search intent tool” are close in meaning but want different pages. Split groups like that by hand.
- Singletons aren’t failures. An unclustered keyword may be a page on its own, or a long-tail question to answer inside a bigger page.
- Outline next. Paste a group label into the blog outline generator and use the other keywords as H2 and FAQ ideas.
Honest limits
The model knows language, not Google. It doesn’t see search volume, difficulty or what currently ranks, and it’s trained mostly on English. Very short or ambiguous keywords (“apple”) group unpredictably. Treat the output as a fast first pass that you review.