Now optimizing for AI search , ChatGPT · Gemini · Perplexity · Google AI
✦ Keyword Strategy · Workshop

How to Build a Local Keyword Map Without Cannibalization

Short answer: Build a local keyword map with one spreadsheet that assigns every keyword cluster to exactly one page, using a service-by-city matrix and the one-intent rule: if two pages serve the same intent, merge, canonicalize, or differentiate them. Add an AI-search column for conversational queries, and revisit the map whenever you publish.

Here is how keyword cannibalization starts in a trades business: the site launches with a drain cleaning page and a blog post about drain cleaning. Then the SEO hire adds "drain cleaning in Springfield" and "Springfield drain cleaning service" as new pages. Then the blog gets "clogged drain repair" and "drain unclogging tips." Five pages, one intent, and Google has no idea which one to rank, so it ranks none of them well.

The prevention is a keyword map: one spreadsheet that assigns every keyword cluster to exactly one page, before anyone writes or optimizes anything. This post is the workshop version for home-service companies. You will build the service-by-city matrix, learn the one-intent rule with trade examples, get the free detection methods for cannibalization that is already there, and add the AI-search column that maps how people actually ask assistants for contractors.

What A Keyword Map Actually Is (And Is Not)

A keyword map is a spreadsheet with one row per keyword cluster. Each row names the primary keyword, three to five secondary keywords, the search intent behind them, the one page assigned to own that intent, and the page's status: exists, needs work, or does not exist yet. That is the whole tool. Its job is to make targeting deliberate instead of accidental.

What it is not: a wish list of keywords you would like to rank for, and definitely not a page-per-variation generator. The worst keyword maps in trades SEO are the ones that turn "AC repair Dallas," "air conditioner repair Dallas," and "Dallas AC repair company" into three separate pages. That is not a map. That is an instruction manual for cannibalization. As Backlinko puts it in their cannibalization guide, without actively mapping keywords to URLs, you are likely to see cannibalization at some point. The map is what turns "likely" into "never."

1 intent = 1 page

The entire rule of keyword mapping in one line. Keywords that share a search intent belong on the same page. Keywords with different intents earn their own pages.

Build The Service-By-City Matrix

Infographic: Build a Local Keyword Map Without Cannibalization
Keep your pages from competing with each other in local search results.

For a home-service company, the natural shape of the map is a service-by-city matrix. Rows are your money services, columns are the towns you genuinely serve, and each cell is one keyword cluster with an assigned page. Start from revenue, not volume: map the services that pay the bills first.

  • List your money services as rows. For a plumber: drain cleaning, water heater installation, sewer line replacement, leak detection, emergency plumbing. Five to eight rows, not thirty.
  • List the towns you genuinely serve as columns. The ones your trucks reach weekly, with real jobs and reviews to prove it. Not every zip code in the metro.
  • Fill each cell with a cluster, not a keyword. Cell (drain cleaning, Springfield) gets primary "drain cleaning Springfield" plus secondaries like "clogged drain service," "drain unclogging," and "drain cleaner near me." All the same intent, all one page.
  • Assign each cluster to a page. An existing page if one genuinely fits, "needs work" if it exists but targets poorly, "new" if there is a real gap. Empty cells with no proof behind them get deleted, not published.
  • Note the intent per cluster. Transactional ("drain cleaning Springfield") versus informational ("why does my drain keep clogging") tells you whether the cell is a service page or a blog post.

A finished matrix for a typical plumber has maybe forty cells, and only half of them justify a page. That restraint is the point. Compare it to your service pages as they exist today and the gaps will name themselves.

The One-Intent Rule, With Trade Examples

Intent is the decider, not wording. Two phrases with different words but the same intent belong on one page. Two phrases with similar words but different intents belong on two. The test: search both and look at the top ten results. If the same pages keep showing up, it is one intent.

  • One page: "AC repair Dallas," "air conditioner repair Dallas," and "Dallas AC repair company." Different words, one person with a broken AC. One page.
  • Separate page: "AC installation Dallas." Different customer, different pricing, different crew, different timeline. The searcher with a dead unit in August is not the searcher planning a system replacement in October.
  • Separate page: "AC maintenance Dallas." A tune-up is not a repair, and the page that ranks is the one that knows the difference.
  • One page: "toilet repair," "faucet repair," and "garbage disposal repair." Small, similar-intent fixes can live together on a general "plumbing repairs" page without confusing anyone.
  • Separate page: "sewer line replacement." A five-figure job with permits, excavation, and a week of disruption is not a repair, and it deserves its own page, its own proof, and its own keyword cluster.

The expensive mistake is the reverse: splitting one intent into many pages because the keywords look different in a tool. Keyword tools count words. Your map counts intents.

How To Detect Cannibalization On A Live Site

If the site already exists, the map also works as a diagnostic. Three free methods, in order of reliability:

  • Search Console, the Pages tab. Open the Performance report in Google Search Console, filter by one query, then switch to the Pages tab. If two of your URLs are both getting impressions for the same query, you are looking at cannibalization.
  • The site: operator. Search site:yourdomain.com drain cleaning in Google. If three near-identical pages come back, the map would have caught it; now the operator does.
  • Ahrefs "Multiple URLs only." In Site Explorer's Organic Keywords report, the toggle shows keywords where several of your pages rank at once. Ahrefs' glossary entry adds the nuance that matters: only fix it when one page could do better than two.

The symptom to watch for: two of your pages trading positions for the same query over weeks, with neither ever settling in the top three. That swap is Google telling you it cannot pick a winner, because you built two contestants.

Map built and the cannibalization is worse than you thought? Our free audit scores every page on your site against your money keywords, finds the cannibalization pairs, and hands you the merge list in priority order. Get the free audit →

The Fix Menu: Merge, Canonical, Differentiate

Detection without a fix menu is just anxiety. When two pages compete for one intent, pick one:

  • Merge and 301 redirect. Keep the stronger page (more traffic, more links, better history), fold the useful content from the weaker one into it, and redirect the loser. Backlinko did exactly this with two competing articles and reported a 466% increase in clicks year over year in the eight weeks after. One strong page beats two weak ones.
  • Canonicalize. If both pages must stay live (a location variant with a business reason to exist), a canonical tag tells Google which one is the primary. Weaker than a merge, but honest.
  • Differentiate the intent. Sometimes the pages can both survive if they genuinely serve different intents. Rewrite one to own its angle fully: the service page sells the job, the blog post answers the question. Update the map to record the split.
  • Point your internal links at the keeper. Links with the same anchor text spread across competing pages split your authority. Consolidate them onto the surviving page so every internal signal agrees with the map.
  • Delete what has no reason to exist. Thin legacy pages with no traffic, no links, and no unique content are not worth merging. Remove them, redirect the URL, and let the keeper absorb the intent.

Then update the map. The fix that does not get recorded gets repeated next quarter.

The AI Column: Mapping Conversational Queries

Here is the part no keyword-mapping guide covers, and in 2026 it matters. When someone asks an AI assistant for a contractor, the query is conversational: "who's the best emergency plumber open now near me," not "emergency plumber Springfield." Those conversational queries need a home in your map too.

Add a second column to every matrix cell: the conversational version of the query, and which FAQ or answer block on which page captures it. The service page keeps its keyword cluster for Google; its FAQ block answers the conversational query for AI systems. The same page serves both, as long as you planned for both. Map keywords into your reviews and profile posts the same way, service names written naturally in review replies and posts get indexed by AI systems as corroborating signals.

The professional version of this, testing which of your pages AI assistants actually cite for homeowner questions, is what our AEO and LLM optimization service does monthly. The DIY version is the map column above, plus the deeper protocol in our guide to appearing in Google AI Overviews.

Keep The Map Alive

A keyword map is a workflow, not a document. The maintenance is small:

  • Check the map before approving any new page. If the intent is already assigned, the brief is a collision, not an opportunity. Merge the idea into the existing page or differentiate the angle first.
  • Highlight duplicate keyword assignments. A spreadsheet column with conditional formatting for duplicates turns the map into its own alarm system.
  • Quarterly, run the Search Console sweep from the detection section above. New pages, new blog posts, and new city pages are where cannibalization creeps back in.
  • Revisit intent yearly. Markets change, services get added, and the query that meant one thing last year means something else now. The map gets one honest review a year.

If you are building the site from scratch, pair this map with our DIY local SEO checklist, which turns the matrix into an actual build order.

LM

LeadingMaps

Local SEO exclusively for home-service trades, top-3 Google Maps rankings plus AI-search optimization, measured in calls and backed by a 90-day results guarantee. We only take 5 new clients per month.

FAQ

Keyword Map Questions, Answered.

A keyword map is a spreadsheet that assigns one primary keyword, or one cluster of same-intent keywords, to one page on your site. Every row names the keyword, the target page, and the intent behind it. Its job is to make targeting deliberate: before you write or optimize anything, the map tells you which page owns which search.

One primary keyword and three to five close secondary keywords that share the same search intent. For example, a drain cleaning page might target 'drain cleaning [city]' as primary, with 'clogged drain service,' 'drain unclogging,' and 'drain cleaner near me' as secondaries. Different intent means a different page, not a longer keyword list.

Not always. If the two pages serve different intents, like a service page and a blog post on the same topic, Google can rank both. It becomes cannibalization when two similar pages chase the same intent and one stronger page would win more traffic. Check Search Console: one query sending impressions to two similar URLs is the signal.

Use Google Search Console: open the Performance report, filter by a query, then open the Pages tab to see every URL getting impressions for it. Two similar pages sharing one query is your signal. You can also run site:yourdomain.com plus the keyword in Google and look for near-identical pages in the results. Both methods cost nothing.

No, and this is where most trades keyword maps go wrong. A city gets its own page only when you have genuine local proof there: jobs completed, reviews from residents, local specifics. A city with no proof gets folded into the service page or the service-area hub. Ten thin city pages cannibalize each other; three strong ones do not.

Free audit · delivered in 48 hours

Pages Fighting Each Other And Neither One Winning?

Our free audit scores every page against your money keywords, finds the cannibalization pairs, and hands you the merge list in priority order, plus whether AI assistants name you or your competitor.

  • Cannibalization diagnosis, every query sending impressions to competing pages, mapped to the keeper.
  • AI visibility check, real homeowner prompts across ChatGPT, Perplexity, and AI Overviews, who gets named.
  • Competitor gap analysis, what the top 3 in your market are doing that you're not.

Get My Free SEO Audit

Delivered within 48 hours. Yours to keep.

We only take 5 new clients per month.