How I build topic clusters for B2B SaaS
The exact framework I've used on 18 SaaS engagements. It's less about keyword research and more about disciplined mapping of search intent to where a buyer actually sits in your funnel.
Topic clusters have been around long enough to become a cliché. Everyone "does clusters." Most of what I see when I audit a site is a collection of blog posts, loosely grouped by theme, with a pillar page nobody updates and no real logic connecting them to revenue.
This is the process I actually run. It takes two to three weeks for a typical mid-stage SaaS.
Step 1: Start with the money, not the keywords
Before I open Ahrefs, I interview whoever owns revenue — usually Head of Growth or a founder. One question matters: what do people ask when they're about to buy?
That question surfaces the terms that convert. Everything upstream is built to earn attention from people who will eventually ask those questions.
Output of step 1
- A list of 8–20 "money terms" — the queries where buyers are already decided and just picking a vendor.
- Honest volume numbers (most will be low — that's fine).
- A rough ranking by average contract value of the buyer behind each term.
Step 2: Reverse-engineer the funnel
For each money term, I work backward through the questions a buyer asks on their way to it. This isn't keyword research — it's empathy work.
A real example from a vector-database client:
Money term: "vector database pricing"
Decision-stage: "pinecone vs weaviate vs qdrant"
Evaluation-stage: "how to choose a vector database"
Awareness-stage: "what is a vector database"
Latent-stage: "semantic search architecture"
That's a cluster. Not five posts dumped in a "Databases" category — a sequenced pathway where each page internally links to the next stage down-funnel, and the money term sits at the bottom as the conversion target.
Step 3: Keyword research, finally
Only now do I open Ahrefs/Semrush. For each cluster, I'm looking for:
- Volume modifiers. "vector database pricing" has low volume; "vector database cost comparison" might have 4× more and be the same intent.
- Long-tail satellite queries. Questions in "People also ask." Reddit threads. Forum posts.
- Competitor gaps. Terms where my top 3 competitors are invisible or have weak content.
Each cluster ends up with a pillar page (broad, evergreen) and 4–8 supporting articles. The pillar targets the evaluation-stage term. Supporting articles target latent and awareness terms. Money terms get dedicated commercial pages, not blog posts.
Step 4: Internal linking is the actual strategy
Clusters don't work because you wrote related articles. They work because the articles link in a specific topology:
- Every supporting article links up to the pillar.
- The pillar links out to every supporting article.
- Supporting articles link sideways to 1–2 adjacent articles in the same cluster.
- The pillar links down-funnel to the relevant commercial page.
This is what Google sees as a coherent topical authority signal. It's also what sends a curious reader on a coherent journey from "I'm learning" to "I'm buying."
Step 5: Brief like an editor, not a keyword tool
Every article gets a brief. My briefs look nothing like the ones Clearscope or MarketMuse spit out. They contain:
- The reader — role, seniority, what they already know.
- The question the article must answer in the first 100 words.
- Three insights the writer must bring that the top 5 results don't have.
- The internal links required (by URL, in order of importance).
- Optional: keyword phrases to weave in naturally. Not a required count.
Why this works when "content strategy" usually doesn't
The default mistake is treating content like a flywheel without pressure — publishing into the void, hoping volume eventually compounds. It doesn't, because there's no gradient. Each piece has no more authority than the one before it.
Clusters work because they create directional flow. A ranking on any latent-stage article passes signal up to the pillar, which passes signal down to the commercial page. One ranking lifts the cluster. The cluster lifts the money term.
That's why the engagements where I run this framework consistently show compounding curves, not linear ones. And it's why the SaaS content teams still running "20 posts a month, no connecting thread" are burning budget.