Get the working resource ↓
SaaS SEO Template 7 min read

SaaS keyword map template

A keyword map structure that survives contact with writers: twelve columns, intent tiers, page assignment, modelled pipeline value and cannibalisation flags.

On this page 9 sections
  1. The twelve columns, and who fills each one
  2. Why one keyword maps to exactly one URL
  3. The modelled pipeline value formula
  4. The priority score, and why it is not just value
  5. Twenty filled rows for a $15K ACV product
  6. The cannibalisation flag, in two formulas
  7. Status, owners and the weekly fifteen minutes
  8. What this template does not solve
  9. Build it this week
  10. Frequently asked questions

The short answer

A SaaS keyword map is a spreadsheet with one row per keyword and twelve columns: keyword, cluster, intent tier, target URL, page type, current position, volume, modelled pipeline value, priority score, writer, status and a cannibalisation flag. The rule that makes it work is one keyword to exactly one URL. Rows without a target URL are not a plan, they are a wish list, and they should be filtered out of the publishing queue.

Key points before you start

Most keyword research dies inside a 400 row export nobody opens twice. The map is the artifact that turns that export into assignments: one keyword, one URL, one owner, one due date. Everything below is the sheet structure, the two formulas that make it police itself, and twenty filled rows for a fictional $15K ACV revenue intelligence product so you can see what a finished row actually looks like.

The twelve columns, and who fills each one

Twelve columns is the point where the sheet stays readable and still carries enough to plan against. Fewer and you lose the value model. More and people stop updating it.

#ColumnTypeFilled byWhat it is for
1KeywordTextSEOThe exact query, lowercase, no year suffix unless the SERP shows one
2ClusterDropdownSEOThe topic group the page belongs to
3Intent tierDropdownSEOT1 buying, T2 evaluating, T3 problem aware, T4 definitional
4Target URLTextSEOThe single slug that will own this query, live or planned
5Page typeDropdownSEOComparison, alternatives, guide, glossary, integration, use case, tool
6Current positionNumberSearch Console exportBlank means net new, 8 to 30 means refresh candidate
7VolumeNumberAhrefs or SemrushMonthly, country specific, no global rollup
8Modelled pipeline valueFormulaSheetAnnual pipeline the row is worth at target position
9Priority scoreFormulaSheetValue divided by effort band
10WriterDropdownEditorA named person, never a team
11StatusDropdownEditorBacklog, briefed, drafting, review, published, refresh due
12FlagFormulaSheetFires on a duplicate URL or a duplicate keyword

Columns 8, 9 and 12 are formulas. Nobody types into them. That matters more than it sounds, because the fastest way to kill a shared sheet is to let three people hand enter a priority number based on vibes.

Why one keyword maps to exactly one URL

This is the rule the whole template exists to enforce. One keyword owns one URL. One URL owns one primary keyword plus the variants that share its intent.

A comparison page can legitimately hold the plural, the year qualified phrasing and the vs reversal, because all three readers want the same page. It cannot also hold the definitional query for the category, because that reader wants a definition and will bounce off a product table. Assigning both to one URL is how you end up with a page that ranks eleventh for two things instead of third for one.

The mechanical payoff is that keyword cannibalization becomes a spreadsheet error rather than a diagnosis you make nine months later from a Search Console query report. When two rows claim the same target URL, the flag fires that day.

The wish list problem

Any row with a blank target URL is not planned work. It is a research note. Keep those in a second tab called Backlog and promote a row into the map only when someone can name the slug it will live at. Teams that skip this end up with 300 row maps where 180 rows have never been assigned to anything, and the map stops being trusted.

The modelled pipeline value formula

Column 8 is the one that changes publishing order. It replaces volume as the sort key.

Monthly sessions = Volume × CTR at target position
Monthly signups = Monthly sessions × Visitor-to-signup rate
Monthly opps = Monthly signups × Signup-to-opportunity rate
Annual pipeline = Monthly opps × 12 × ACV

For the worked example the inputs are: target position 3 with a 10% CTR on commercial queries and 6% on informational ones after AI Overview compression, ACV $15,000, and conversion rates that differ by intent tier. Those tier rates are the part everyone gets wrong by using a single site wide number.

Intent tierExample query shapeVisitor to signupSignup to opportunity
T1 buying[competitor] alternatives, [a] vs [b]5.0%30%
T2 evaluatingbest [category] software, [category] pricing2.0%25%
T3 problem awaresales forecast accuracy benchmark0.6%18%
T4 definitionalwhat is revenue operations0.2%12%

A T1 keyword at 320 searches a month outvalues a T4 keyword at 9,000. Run the arithmetic and the gap is roughly 14x. That single fact is why the sort column matters, and it is the same logic behind building bottom of funnel SEO for SaaS pages before anything educational.

Editable working copy

Download this template

Save an editable working copy of the framework on this page. Add your own owners, evidence and decisions.

We never sell your data. Your resource opens here after submission.

The priority score, and why it is not just value

Value alone pushes every engineering dependent page to the top, and those take three months. Divide by an effort band to get something a team can actually sequence.

Priority score = (Annual pipeline value ÷ 1000) ÷ Effort points

Effort points: 1 = writer only, no new assets
 2 = needs SME interview, screenshots or original data
 3 = needs engineering, a data feed or a new template

Sort descending on priority, then hand the top fifteen rows to the editor. Anything scoring under 5 goes back to the backlog tab. If you want the traffic side modelled properly before you commit headcount, run the set through the organic traffic forecast calculator and the SaaS SEO ROI calculator rather than trusting the sheet’s own straight line.

Twenty filled rows for a $15K ACV product

The company here sells revenue intelligence to RevOps leaders at Series B to Series D software companies. It competes with Gong on conversation data and with Outreach and Salesloft on workflow. Volumes are plausible planning figures, not lookups.

KeywordTierTarget URLPage typeVolAnnual pipelineEffortPriority
gong alternativesT1/alternatives/gong/Alternatives1,900$153,900277
outreach vs salesloftT1/compare/outreach-vs-salesloft/Comparison880$71,280236
gong pricingT1/compare/gong-pricing/Pricing teardown2,400$194,400297
apollo alternativesT1/alternatives/apollo/Alternatives3,100$251,1002126
revenue intelligence softwareT2/revenue-intelligence-software/Category page1,300$23,400212
best sales forecasting toolsT2/best/sales-forecasting-tools/Ranked listicle2,900$52,200226
conversation intelligence pricingT2/guides/conversation-intelligence-pricing/Pricing explainer720$12,960113
revenue operations softwareT2/revenue-operations-software/Category page1,600$28,800214
salesforce forecasting limitationsT2/guides/salesforce-forecasting-limits/Problem page260$4,68015
salesforce integrationT1/integrations/salesforce/Integration480$38,880313
hubspot integrationT1/integrations/hubspot/Integration390$31,590311
attio integrationT1/integrations/attio/Integration90$7,29032
sales forecast accuracy benchmarkT3/research/forecast-accuracy-benchmarks/Research590$6,88432
pipeline coverage ratioT3/guides/pipeline-coverage-ratio/Guide1,400$16,330116
quota attainment benchmarksT3/research/quota-attainment/Research810$9,45033
deal scoring modelT3/guides/deal-scoring-model/Guide480$5,60023
crm data hygieneT3/guides/crm-data-hygiene/Guide1,100$12,830113
sales pipeline templateT3/templates/sales-pipeline/Template6,600$76,982238
what is revenue operationsT4/glossary/revenue-operations/Glossary9,900$25,660126
mrr forecastingT4/glossary/mrr-forecasting/Glossary2,100$5,44315

Total modelled annual pipeline across the twenty rows is roughly $1.14M. Look at what the sort produces. Apollo alternatives at 3,100 searches beats the 9,900 search definitional query by a factor of ten, and the three integration pages carry real value but drop down the queue because they need engineering. That sequencing decision is the map’s whole job.

These are modelled numbers, not forecasts

Every figure in column 8 depends on hitting the target position, which most rows will not do in year one. Treat the column as a ranking device for deciding order, not as a revenue promise. If you put the $1.14M total in a board deck without the position assumption attached, you will be explaining yourself in two quarters.

The cannibalisation flag, in two formulas

Column 12 holds one formula that catches both failure directions. In Google Sheets, with keywords in column A and target URLs in column D:

=IF(AND(D2<>"", COUNTIF($D$2:$D, D2)>1), "DUPE URL",
 IF(COUNTIF($A$2:$A, A2)>1, "DUPE KEYWORD",
 IF(D2="", "NO TARGET", "")))

Conditional formatting on that column, red for DUPE URL, amber for NO TARGET. Then add a second check that runs against reality rather than the plan: pull the Search Console query export monthly, and flag any query where two URLs both received clicks in the same month. The sheet catches planning collisions. The export catches the ones that already shipped.

Editable working copy

Get this checklist as a working file

Save the checks on this page as a working copy and assign an owner, status and evidence for each action.

We never sell your data. Your resource opens here after submission.

Status, owners and the weekly fifteen minutes

Column 10 takes a person’s name. Not Content Team, not Agency. A named human, because unowned rows sit for a quarter and then get rediscovered in a planning session as though they were new.

Status moves through six values: Backlog, Briefed, Drafting, Review, Published, Refresh due. The last one is the important one and almost nobody includes it. Set a formula that flips any published row to Refresh due when its position drops more than five places or twelve months pass, whichever comes first. That single column is what stops a map from becoming a record of things you did in 2026.

Run the review weekly, fifteen minutes, three questions. What moved from Drafting to Review. What flags fired. What changed position enough to reorder the queue. The cadence side of this is covered properly in lesson 3 on cadence, distribution and targets.

What this template does not solve

It will not tell you whether the cluster is worth entering. A map built on a category where your product does not fit will produce beautifully sequenced pages that convert at 0.1%. Work out coverage first, which is what lesson 2 on building the coverage map is for, then map keywords inside the clusters that survive.

It also handles programmatic page sets badly. Four thousand integration URLs do not belong as four thousand rows. Represent the whole set as one row with a pattern in the target URL column, then manage the specifics through the programmatic page brief template where indexation thresholds and kill criteria live.

The honest cost: a first build takes a focused day for 200 keywords, and the maintenance runs about an hour a week. Teams that treat it as a one time exercise get three useful months out of it before the position column goes stale and people quietly revert to arguing about topics in Slack.

Build it this week

Copy the twelve columns into a new sheet. Paste your existing keyword export into a Backlog tab, not the map. Promote only the rows where you can name the target URL today, add the three formulas, then sort by priority and brief the top ten. If you want the whole thing sequenced against a start date, the 90 day SaaS SEO plan slots this map into week one, and the keyword map lesson walks through the build with a screen share. The broader programme context sits in the SaaS SEO hub.

Editable working copy

Download this template

Save an editable working copy of the framework on this page. Add your own owners, evidence and decisions.

We never sell your data. Your resource opens here after submission.

Frequently asked questions

What is a keyword map in SEO?

A keyword map is a spreadsheet that assigns every target keyword to exactly one URL on your site, along with the page type that will serve it, who is writing it and when. It converts a keyword research export into a publishing plan. Without one, two writers eventually build two pages for the same query and both underperform.

How do you build a keyword map for a SaaS website?

Export your keyword set, group into clusters, tag each keyword with an intent tier, then assign a single target URL per keyword. Model pipeline value from volume, expected click through rate, signup rate and ACV. Sort by that value, add an owner and a due date to the top rows, and run a duplicate check before anything enters the writing queue.

Should one URL target multiple keywords?

One URL should own one primary keyword and as many secondary variants as sit inside the same intent. A comparison page can rank for the plural, the year qualified version and the alternatives phrasing. It should not also be assigned a definition query or a use case query, because those readers want a different page and the copy cannot serve both well.

How do you prioritise keywords in a keyword map?

Score each row on modelled pipeline value divided by effort. Pipeline value comes from volume times expected click through rate times visitor to signup rate times signup to opportunity rate times ACV. Effort is a three point band covering research depth and engineering dependency. Publish top scores first and revisit the ranking every quarter as positions change.

What is keyword cannibalisation and how does a map prevent it?

Cannibalisation happens when two of your URLs compete for the same query, splitting links and click signals so neither ranks well. A keyword map prevents it structurally: because every keyword carries one target URL, a COUNTIF formula can flag the moment a second row claims that URL or a second URL claims that keyword, before either page gets written.

How many keywords should a SaaS keyword map contain?

For a first year programme, 150 to 400 mapped keywords is a working range, covering roughly 40 to 90 URLs. Beyond that the map becomes a maintenance job nobody does. Keep a separate research backlog sheet for everything you have not committed to, and promote rows into the map only when they get a target URL and an owner.

Do I need a keyword map if I use a content calendar?

Yes, because they answer different questions. The calendar says what ships when. The map says why that page exists, what query it owns, what it is worth and which URL it must not overlap with. Teams that run only a calendar end up with a well scheduled set of pages that collide with each other in the index.

The saas-marketing.net editorial team Research and editorial

We research, write and maintain every page on this site. The library explains marketing decisions through practical frameworks, explicit assumptions and references. Corrections can be requested through the contact page.

Published September 11, 2026. Last updated .