What an SEO topic cluster actually is
A topic cluster is a group of keywords that all serve the same underlying question or buyer intent. Tagging them lets you treat the group as one unit instead of twenty separate briefs. The label matters less than the discipline of applying it consistently. We tag every keyword in our own tracker with a topic column the moment it enters the list. That single habit is what makes everything in this piece possible to compute rather than guess at, and it is also why the numbers below took one query instead of an afternoon of manual sorting.
Before you start, you need three things: a keyword list with search volume, a way to tag each keyword with a topic, and a place to query the result. We use a single Supabase table and plain SQL. A spreadsheet with a pivot table works the same way. Budget about an hour for the first pass on a list our size, then a few minutes a week to keep new keywords tagged.
How to Build SEO Topic Clusters: Step by Step

Our own five-step sequence, pulled 2026-10-29.
Step 1: Tag every keyword with one topic label
Go through your keyword list and assign exactly one topic to each term. Resist the urge to split a borderline keyword across two topics. In our table, every one of the 274 keywords carries a single topic value, from ai-search to paid-media, which is what lets the next steps run as one query instead of manual sorting.
Step 2: Group and sum by topic
Once every keyword has a topic, group by that column and sum the search volume. Here is the exact query we ran against our own table, trimmed for length:
SELECT topic, count(*) n, sum(volume) total_volume
FROM seo_keywords
GROUP BY topic
ORDER BY total_volume DESC;
-- output (top 3 rows)
-- ai-search | 18 | 27290
-- b2b-marketing | 40 | 20030
-- market-sizing | 4 | 14210
That one query turned an unsorted list of 274 keywords into 14 ranked clusters in under a second, with no manual tagging work beyond step 1.

Source: seo_keywords table (Supabase), pulled 2026-10-29, n = 274 keywords across 14 topic clusters.
Step 3: Check how weak the competing content is, per cluster
Volume tells you size. It does not tell you whether a cluster is winnable. We join our keyword table to our competitor page audit table and compute, per cluster, how often the pages currently ranking cite any original data of their own. Across every cluster we checked, the average competing page cites fewer than one first-party data point. The icp-persona cluster is the closest to an exception at 0.50 average first-party phrases per page, still less than one per page.

Source: seo_keywords joined to seo_competitor_pages (Supabase), pulled 2026-10-29, n = 897 audited pages.
Step 4: Prioritize clusters where size and weakness overlap
Rank clusters by combined volume, then cross-reference against the first-party data gap from step 3. A large cluster sitting on top of thin competing content is worth building first. A large cluster where competitors already cite original research is a harder fight, even if the volume number looks appealing on its own.
Step 5: Build content as a set, not as single pages
Once a cluster is prioritized, plan the pages inside it together: one anchor page and several supporting pages that link back to it with descriptive anchor text. We used this exact approach for our own keyword research process for B2B SaaS, which sits inside our seo cluster alongside the backlink and technical audit work we publish under the same technical SEO audit checklist.
| Cluster | Keywords (n) | Combined volume | Low competition (n) |
|---|---|---|---|
| ai-search | 18 | 27,290 | 14 |
| b2b-marketing | 40 | 20,030 | 36 |
| market-sizing | 4 | 14,210 | 3 |
| demand-gen | 16 | 14,060 | 16 |
| content | 19 | 8,950 | 18 |
| strategy-icp | 22 | 8,860 | 21 |
| abm-demand | 22 | 8,520 | 14 |
| seo | 66 | 7,950 | 63 |
| marketing-ops | 8 | 4,640 | 8 |
| analytics | 25 | 4,450 | 22 |
| icp-persona | 11 | 3,910 | 9 |
| voice-of-customer | 6 | 3,510 | 3 |
| sales-enablement | 8 | 2,940 | 8 |
| paid-media | 9 | 750 | 7 |
Source: seo_keywords table (Supabase), pulled 2026-10-29, n = 274 keywords.
Troubleshooting common problems
| Problem | Likely cause | What we do |
|---|---|---|
| A keyword seems to fit two clusters | The topic taxonomy is too broad or too narrow | Pick the cluster matching buyer intent, not surface wording, and keep a short rule written down for next time |
| One cluster has only one or two keywords | The topic is really a subtopic of a bigger cluster | Fold it into the parent cluster unless it has its own distinct search intent |
| Cluster ranks high on volume but every page already cites original data | The competitive bar is already high | Deprioritize it or budget for a genuinely new data angle before committing |
What we found
The clearest finding is how thin the competing content is almost everywhere, not just in a few easy pockets. Across all 948 competitor pages we have audited for our tracked keyword set, the first-party data average never climbs above 0.50 per page in any single cluster. That is a structural opening for any B2B SaaS team willing to publish real tables and real charts instead of restating definitions, and it is the same gap our content strategy work is built to close for clients.
The second finding is more mundane and more useful day to day: once the topic tagging exists, the clustering itself takes one SQL query. Almost all of the actual effort in this process is the discipline of tagging consistently in step 1, not the analysis that follows it. Teams that skip the tagging step tend to redo this kind of analysis by hand every quarter, which is slower and far more error-prone than running the same query again.
Checklist recap
Tag every keyword with one topic. Group and sum volume by topic. Check first-party data gaps per cluster against your competitor audit. Prioritize where size and weakness overlap. Build pages as a linked set, not as isolated articles.
FAQ
How many keywords does a topic cluster need?
There is no fixed minimum. Our smallest cluster, market-sizing, holds 4 keywords and still carries 14,210 in combined monthly volume because the individual terms are high volume. A cluster with many low-volume keywords can still be worth building.
Should every cluster get its own category on the site?
Not necessarily. We map clusters to content planning first and site categories second, since a category structure that changes often creates broken navigation and diluted internal links. A cluster can exist purely as an internal planning construct without ever appearing as a visible category to a site visitor.
How often should topic clusters be revisited?
We re-check ours whenever we add a meaningful batch of new tracked keywords, which in practice has been every few weeks rather than on a fixed calendar.
Want your own keyword list clustered this way? Book time with us and bring the export.
Share this article
Ready to audit your organic growth opportunity?
$2,500 flat. 5 business days. Six deliverables tied to pipeline , not rankings. No retainer required.
Get the Organic Growth Audit →