A website content plan is the document that answers one question: which page targets which keywords? Without it, you end up with three blog posts competing for the same term, a product page that ranks for nothing, and a homepage stuffed with keywords that belong elsewhere. I’ve seen sites with 200 pages and zero plan - they rank like sites with 20 pages.

The fix is mapping. One cluster of keywords per URL. Every URL has a job. No overlaps.

Why most content plans fail

The typical content plan is a spreadsheet with columns for “topic,” “target keyword,” and “status.” That’s a to-do list, not a plan. It doesn’t answer the hard questions: What happens when two pages target similar keywords? Which page gets the long-tail variants? Where do informational keywords go versus commercial ones?

These gaps create keyword cannibalization - multiple pages competing for the same queries. Google picks one (usually the wrong one), and both pages underperform. The solution isn’t deleting pages after the damage is done. It’s mapping keywords to URLs before you write anything.

The one-cluster-per-page rule

Every page on your site should own exactly one keyword cluster. A cluster is a group of semantically related keywords that share the same search intent. “Content brief template,” “how to write a content brief,” and “content brief example” all belong in one cluster - they’re variations of the same question.

When you assign one cluster per page, you eliminate cannibalization by design. Each URL has a defined set of keywords it’s responsible for. If a new keyword shows up in your research, you either add it to an existing cluster or create a new page for it. There’s never ambiguity about where it belongs.

This doesn’t mean each page targets one keyword. It means each page targets one cluster - which might contain five, 15, or 50 individual keywords. The page’s H1, subheadings, and body copy naturally incorporate those variations.

How to build a website content plan from scratch

Here’s the process I use every time. Four steps, no shortcuts.

Step one - dump every keyword into one list

Pull keywords from your research tool, competitor gap analysis, and Search Console. Don’t filter, don’t organize. You want the raw, messy, complete list with volume and keyword difficulty for each term.

For a typical B2B SaaS site, this means 500 to 2,000 keywords. For an e-commerce site, easily 5,000+. If your list feels small, you haven’t dug deep enough.

Step two - cluster the keywords

Group keywords by semantic similarity and shared SERP results. Keywords that trigger the same search results belong on the same page - Google is telling you it considers them equivalent.

Doing this manually works for 50 keywords. At 500+, you need automation. A keyword clustering tool handles the grouping in seconds and gives you cluster-level metrics like aggregate volume and average KD. The output is the skeleton of your website content plan.

Step three - map clusters to URLs

This is where the plan becomes a plan. Each cluster gets assigned to a specific URL - either an existing page or a new one you’ll create.

For existing pages, check whether the current content actually covers the cluster’s keywords. If your /pricing page is supposed to own the “enterprise pricing” cluster but the page says nothing about enterprise features, that’s a rewrite.

For new pages, decide the page type: blog post, landing page, pillar page, or product page. The intent of the cluster determines this. Informational clusters (“how to do X”) become blog posts. Commercial clusters (“best X tools”) become comparison pages or landing pages.

Step four - set the publishing order

Not all clusters are equal. Prioritize by a combination of keyword difficulty, business relevance, and whether you have supporting content already live. Low-KD clusters with clear commercial intent go first. High-KD vanity terms go last.

Your content roadmap handles the sequencing details - phases, cadence, and timeline. The content plan tells you what maps where. The roadmap tells you when.

Website content plan example - five clusters mapped to five pages

Here’s what a real mapping looks like for a project management SaaS:

ClusterPrimary keywordKeywords in clusterAvg. volumeTarget URLPage type
Project planning basicshow to plan a project231,900/blog/how-to-plan-a-projectBlog post
Gantt chart toolsbest gantt chart software183,400/features/gantt-chartsFeature page
Agile vs waterfallagile vs waterfall142,800/blog/agile-vs-waterfallBlog post
Task management tipstask management best practices311,200/blog/task-management-guidePillar post
Enterprise PM pricingenterprise project management pricing9740/pricingLanding page

Five clusters, five pages, 95 total keywords distributed across them with zero overlap.

Notice the keyword counts vary wildly - 9 to 31. That’s normal. The “task management tips” cluster has 31 keywords because it’s a broad topic with dozens of long-tail variations. The pricing cluster has 9 because enterprise pricing queries are specific and limited. Both are valid clusters that deserve their own page.

The page type column matters. You wouldn’t put “agile vs waterfall” on a product page - the intent is educational. And you wouldn’t bury enterprise pricing keywords in a blog post when you have a dedicated pricing page.

How to handle keywords that don’t fit

Every keyword list has orphans - terms that don’t cleanly fit into any cluster. “Project management certification” might show up in your research but doesn’t match any page you’re building.

Three options:

  1. Park it. Add it to a “future topics” list and revisit in 90 days. Maybe a cluster forms as you add more keywords.
  2. Absorb it. If it’s close enough to an existing cluster and the intent overlaps, fold it in as a secondary keyword. Don’t force it.
  3. Kill it. If the keyword is off-topic for your business, drop it. Not every keyword with volume deserves a page on your site.

The worst move is creating a thin page for every orphan keyword. That’s how you end up with 40 pages that each get three visits per month.

Keeping the plan alive

A website content plan isn’t a one-time deliverable. It’s a working document that changes as you publish, as new keywords emerge, and as Google reshuffles rankings.

Review it monthly. Check Search Console for keywords you’re ranking for that aren’t in any cluster - those need assigning. Look for pages that have drifted from their assigned cluster and are cannibalizing each other. When you add new pages, update the map before you write a word.

The structure is simple. SEO keyword mapping gives you the methodology for connecting keywords to pages at the individual keyword level. The content plan operates one layer above that - at the cluster level. Both need to agree, or you’ll have contradictions that show up as ranking problems six months later.

The minimum viable content plan

If you do nothing else, do this: list every page on your site, assign each page one primary keyword cluster, and check that no two pages share a cluster. That’s a 30-minute exercise that catches cannibalization before it costs you rankings.

From there, add new clusters for planned pages, prioritize them, and start publishing in order. The plan grows with your site. It doesn’t need to be perfect on day one - it needs to exist.