seo-cluster

seo-cluster

Team Pick
SEO & AEO
Agrici Daniel
Topic clustering built on SERP overlap, so two keywords group together because Google ranks the same pages for both and not because the words look similar.
REPO
AgriciDaniel/claude-seo
INSTALL
Claude Code plugin
NEEDS
A keyword list
Last updated
August 4, 2026

Preview

seo-cluster

What it is.

You give it a keyword list. It fetches the top 10 results for every term, groups the keywords that share results, and returns hub-and-spoke clusters with an internal link matrix and an interactive visual.

Because the grouping is measured and not guessed from wording, two keywords landing in one cluster answers whether you write one page or two. That is the cannibalization check most content plans never run.

What you get.

  • Clusters grouped by shared top-10 results
  • A hub-and-spoke structure with the parent page named
  • An internal link matrix across the cluster
  • An interactive visualization of the architecture
  • A cannibalization read, since overlapping clusters show up as one group
HOW TO USE IT

How to set it up.

1

Install the Claude SEO plugin and run /seo setup.

2

Bring a keyword list. Volume is useful and the clustering itself keys off search results, so a raw list works.

3

Let it pull the top 10 for each term before clustering. That fetch is the whole basis of the grouping.

4

Read the clusters for overlap first. Two terms landing in one cluster means one page, which is the cannibalization answer.

5

Take the hub page from the cluster and treat the spokes as separate briefs.

6

Build the internal links from the matrix it gives you instead of deciding them per post later.

Pricing Plans

Free. MIT license.

Included inside the Claude SEO plugin. Checked against the repo in July 2026.

Use cases

One page or two

Two keywords look like siblings and the writer wants two briefs. Feed it the list; if Google ranks the same pages for both, they land in one cluster and the answer is one page.

Designing a hub upfront

A content hub is planned and nothing exists yet. Hand over the keyword list; back comes the hub page with its spokes as separate briefs, plus the internal link matrix to build from.

Finding competing pages

Rankings wobble across a set of older posts. Cluster the terms those pages target; existing pages that fall into one group are fighting each other, and the grouping shows which to merge.

The quarterly re-cluster

Search results move even when your list doesn't. Re-run the same keywords each quarter; clusters that split or merged tell you where the architecture needs revisiting.

Best for

Deciding one page or two

SERP overlap answers this directly, which text similarity cannot.

Planning a content hub

You get the parent page, the spokes and the link matrix as one output.

Cleaning up cannibalization

Existing pages that fall in one cluster are competing, and the grouping makes that visible.

Read the source

Published by Agrici Daniel. Opens in a new tab.
Open the Tool

Questions about seo-cluster

How does it group keywords?
Will it tell me if two pages compete?
What does it output?
How often should I re-run it?

Questions about SEO & AEO

Should keywords be grouped by wording or by results?
How many keywords should one page target?
Strengths
  • Clusters on measured search results instead of on text similarity.
  • Outputs an internal link matrix, so the architecture arrives with the grouping.
  • Spawns automatically inside a full audit when content strategy signals appear.
  • MIT licensed and part of the same plugin install.
Limitations
  • It needs a live results fetch per keyword, so a very large list is slow and heavy.
  • It gives architecture and not copy. Briefs come from seo-content-brief.
  • Clusters reflect the search results on the day you ran it.
Skip this if
  • Skip it if your topics are already grouped on how the results overlap.

The team behind these plays.

We build inbound GTM engines for B2B software teams, and these are the plays we build from. Tell us the pipeline target and we'll show the plan under it.