SEO · 9 min read
How to Fix Keyword Cannibalization on a Service Site
Summary
Your service page, city page and blog post all chase one query, so Google keeps swapping them. Here is the 20-minute check and the fix by page type.
By Hyder Shah, Founder & CEO · Published July 13, 2026 · Updated July 13, 2026
Most cannibalization advice is written for publishers with 400 blog posts. You are not that. You run a service business with maybe 40 pages, and the pages fighting each other are the ones that make you money: the service page, the emergency variant, the city page, and one blog post from 2024 that somehow outranks all three.
That is a different problem with a different fix. Here is how to prove it, decide what each page deserves, and stop creating the problem next quarter.
What does keyword cannibalization look like on a service-business site?
It looks like one query returning a different URL of yours every few weeks, with position bouncing between roughly 5 and 20 while nothing on the site changed. That URL rotation is the tell. A page that is genuinely losing to a competitor drifts down slowly. A cannibalized page teleports, because Google is re-picking which of your URLs to show.
The classic service-business version, using a plumber as the example:
| Page type | Example URL | What it actually targets | The collision |
| Core service page | /services/drain-cleaning | 'drain cleaning' | Broad, commercial |
| Urgency variant | /emergency-drain-cleaning | 'emergency drain cleaning' | Same service, hotter intent |
| City page | /drain-cleaning-austin | 'drain cleaning austin' | Same service, geo-qualified |
| Blog post | /blog/how-to-clear-a-clogged-drain | 'how to clear a drain' | Informational, DIY |
Three of those four are legitimately different pages. The collision usually starts when the city page copies the service page's body text, or when the blog post opens with 800 words explaining what drain cleaning is — which is the service page's job. Now Google has two documents making the same argument and has to pick.
Why do your service page, city page and blog post all target the same query?
Because they were written at different times by different people with no map, and each one was independently optimized for the fattest keyword in the vertical. Nobody sat down and assigned one intent to one URL.
Three things reliably cause it:
- Template cloning. Your 12 city pages are the service page with the city name swapped. Identical H1 pattern, identical body, one word different.
- Blog posts that sell. An informational post that ends with 400 words of 'why choose us' and a quote form has quietly become a second service page.
- Agency deliverables. A previous agency was paid per page. So you got a page for 'drain cleaning', another for 'drain cleaning services', and another for 'drain cleaning company' — three URLs, one intent.
The prevention rule is one line long: one buyer intent, one URL. Not one keyword — one intent. Keyword variants belong on the same page. Ahrefs' 2017 study of 3 million search queries found the average #1 ranking page also ranked in the top 10 for nearly 1,000 other relevant keywords, with a median around 400 (Ahrefs). You do not need a URL per phrasing. One strong page harvests the variants for free.
How do you prove it in Search Console in 20 minutes?
Open Search Console, set the date range to the last 3 months, and run a page-level check on your 10 most commercial URLs — that is roughly 20 minutes on a 40-page site, no spreadsheet required. You are looking for one thing: the same query showing impressions on two different pages.
The sequence:
- Performance report, Pages tab. Click your service page URL. It filters everything to that page.
- Switch to the Queries tab. Note the top 10 queries by impressions. Screenshot it or paste it somewhere.
- Clear the page filter. Now filter by one of those queries instead, and switch to the Pages tab.
- If two or more of your URLs show impressions for that query, you have overlap. That is the raw signal.
- Sanity-check severity: overlap only matters if the impressions are meaningful on both URLs and the average position for that query is unstable or stuck outside the top 10.
Do not stop at overlap. Ahrefs makes the point bluntly in its own guide: real cannibalization needs competing pages and demonstrable harm to organic performance, not merely keyword overlap (Ahrefs). Two of your pages picking up impressions for a query while the main one sits at position 4 and books calls is not a problem to solve. Leave it alone.
Also check the Page Indexing report for 'Duplicate, Google chose different canonical than user'. That is Google telling you, out loud, that it disagrees with your page choices. If you would rather have someone else run this pass, that is exactly what our technical SEO audit covers.
Merge, differentiate, canonical, de-optimize or noindex — which does each case need?
There are five repairs, and the right one is decided by page type, not by keyword overlap percentage. Here is the decision table we work from:
| Situation | Repair | Mechanics | When it backfires |
| Two near-identical service pages ('drain cleaning' vs 'drain cleaning services') | Merge | Keep the stronger URL, fold the useful content in, 301 the weaker one, update internal links | Never — this is almost always right |
| Service page vs city page with duplicated body copy | Differentiate | Rewrite the city page around local proof: neighborhoods, permits, response times, local pricing | If you cannot write anything genuinely local, the city page should not exist |
| Same service reachable at two URLs (tracking params, /services/x and /x) | Canonical | rel=canonical from the duplicate to the primary | If the pages are actually different, canonical throws away the weaker page's rankings |
| Blog post outranking the service page for a commercial query | De-optimize | Strip the commercial keyword from the post's title, H1 and first paragraph; link down to the service page | If the post earns links and traffic, do not gut it — just re-point its intent |
| Old landing pages, expired promos, duplicate thin city pages with zero impressions | Noindex or delete | noindex, or 410 if there is nothing to save | If the page has backlinks, 301 it instead of killing it |
Verdict: merge is the default and canonical is the most over-used. A canonical tag is a hint, not an order. Google ranks canonicalization signals in order of strength — a redirect is 'a strong signal that the target of the redirect should become canonical', rel=canonical is likewise 'a strong signal', and sitemap inclusion is only 'a weak signal' (Google Search Central). Google also says these methods stack and become more effective combined. If two pages are truly the same page, redirect one; do not leave both live behind a canonical and hope.
When you merge, use a permanent server-side redirect. Google's docs state that 301 and 308 status codes mean the page has permanently moved, and calls permanent server-side redirects the best way to make sure Search and people land on the right page (Google Search Central). Meta refresh is the fallback, not the plan.
Merging works. In Ahrefs' own write-up of consolidating two guides on the same topic, they report that after redirecting one into the other, only one page gets traffic, 'but it gets way more traffic than both pages (combined) did beforehand' (Ahrefs).
When are two pages on the same topic actually fine?
Two pages on the same topic are fine whenever they answer two different questions from two different buyers — and on a service site that is most of the time. Overlapping words are not the test. Overlapping intent is.
Fine to keep separate:
- A service page ('we do it') and a how-to post ('here is how it works') — different buyer, different stage.
- A service page and a city page — as long as the city page carries real local substance and not a find-and-replace of the service page. We cover what that looks like in location pages for service-area businesses.
- A pricing/cost post ('what does drain cleaning cost') and the service page — cost queries are research intent and convert into the service page later.
- Two genuinely different services that share a word ('drain cleaning' vs 'drain repair').
The honest test: open both pages, read the H1 and the first paragraph, and ask which one you would hand to a buyer who typed the query. If you hesitate for more than a couple of seconds, Google is hesitating too — and Google resolves that hesitation by rotating your URLs.
Why does a page drop from 3 to 19 with no update?
A clean drop from position 3 to the high teens, with no site change and no core update, usually means Google swapped which of your URLs it ranks — the query did not leave, your page did. Filter that query in Search Console and switch to the Pages tab. If a second URL of yours suddenly picked up impressions on the same date, that is a URL swap, not a ranking loss.
Two other things cause the same-looking drop, and you should rule them out before you go redirecting things:
- Intent shift in the SERP. Google re-decided what the query means — the top 10 filled with directories or map results and your page type no longer matches. Nothing to merge here; the fix is a different page format.
- Content decay. Competitors updated, you did not. Slow slide, not a teleport, and usually across many queries at once rather than one.
The distinguishing signal is shape. Cannibalization is jagged — up 4, down 14, back up. Decay is a slope. If you are staring at a graph that could be either, our post on why your service business isn't ranking walks the wider diagnostic tree.
How do you stop cannibalization before you publish the next page?
You stop it with a one-page keyword-to-URL map that every new page has to pass through — a spreadsheet with one row per URL and one column for the single intent that URL owns. Two minutes per page, and it prevents the entire problem.
The rules we apply before any page ships:
- One intent, one URL. If the intent already has an owner, the new content becomes a section on that page, not a new page.
- Site-search first. Google site:yourdomain.com plus the target keyword before writing. If a page already ranks for it, you are about to compete with yourself.
- Internal anchor discipline. Anchor text is a vote. If half your internal links say 'drain cleaning' and point at the blog post, you told Google the blog post is the drain-cleaning page. Point commercial anchors at the commercial page, always.
- City pages need local substance or they don't ship. Templated geo pages are the number-one source of self-competition on service sites. See our guide to on-page SEO for service pages for what a page has to carry.
- Quarterly re-check. Twenty minutes in Search Console, ten commercial URLs. Cheaper than a merge you have to undo.
One more thing, and it matters more than any of the above: cannibalization is a symptom of publishing without a map. Most sites that have it got it from an agency paid per page, or from a content plan that counted posts instead of intents. Fixing the pages without fixing the process just buys you 18 months.
If your rankings keep swapping between URLs and you want the overlap mapped, the primary pages picked, and the redirects written for you, that is the first thing our SEO audit does. Month-to-month, no lock-in, and you keep everything we build. Get my free audit.
Where does this fit in your stack?
If you're running a US service business, the playbook in this post pairs with our full services lineup and applies cleanly across our supported industries and US locations. If you want help implementing it, book a free strategy call — we'll review your current setup and prioritize the next three moves.
For the deeper engagement details, see our SEO service. New to the terminology here? Our SEO & marketing glossary defines every acronym in this post.
What are the most common questions about this topic?
Common questions readers send us about this topic.
What is keyword cannibalization in plain English?
It is when two or more of your own pages go after the same search query with the same buyer intent, so Google has to choose between them. Instead of one strong page ranking, you get two mediocre ones swapping places. The clue is instability: the same query returns a different URL of yours every few weeks and neither page settles into the top 10.
Do two pages targeting the same keyword split my rankings?
Not the way most people describe it. Google does not divide your authority in half and hand each page a share. What actually happens is that Google picks one URL per query, and if your two pages are close in quality it keeps re-picking. That churn is what costs you. Ahrefs argues cannibalization only counts as a problem when overlap is paired with demonstrable harm to organic performance.
Should I merge my service page and my city page?
Usually no. A city page earns its place if it carries real local substance: neighborhoods served, response times, local pricing, permits, actual proof of working there. If your city page is the service page with the city name swapped in, do not merge it — rewrite it or delete it. Merging is for two pages chasing the same non-local intent, like a service page and a near-duplicate services page.
How can I tell which page Google prefers for a query?
Filter that query in the Search Console performance report, then switch to the Pages tab. The URL with the impressions is the one Google is choosing. Also check the Page Indexing report for the status 'Duplicate, Google chose different canonical than user' — that is Google explicitly telling you it disagrees with your canonical choice and which URL it picked instead.
Does a canonical tag fix cannibalization?
Only when the two pages are genuinely the same page reachable at two URLs. Google's documentation calls rel=canonical a strong signal, but a signal is not an instruction — Google can still choose a different canonical. If the pages truly duplicate each other, a 301 redirect is the stronger and cleaner move. If they are different pages competing on intent, a canonical throws away the weaker page's value instead of fixing anything.
Is it cannibalization if a blog post outranks my service page?
It is a problem if the query is commercial and the post is eating the click that should hit your sales page. The fix is de-optimization, not deletion: strip the commercial keyword from the post's title, H1 and opening paragraph, keep the informational content, and link down to the service page with a descriptive anchor. If the post ranks for an informational query and passes readers along, leave it alone.
Why do my rankings keep swapping between two URLs?
Because Google is re-evaluating which of your URLs best answers that query and keeps changing its mind. That happens when two of your pages are close in relevance and quality for the same intent. Every swap resets whatever ranking momentum the winning page had. Pick a primary page, merge or de-optimize the other, and repoint your internal anchor text so you stop casting votes for both.
How long does it take to see results after fixing cannibalization?
Expect several weeks, not days. Google has to recrawl the redirected or de-optimized URLs, process the consolidation, and re-rank the surviving page. Keep permanent redirects in place indefinitely — Google's docs say the redirect type you choose should reflect how long you expect it to stay in place, and that a permanent redirect signals the target should become canonical. Track the primary URL's impressions and average position for the target query rather than watching a rank tracker daily.
About the author
Hyder Shah
Founder & CEO, Foundgrove
Hyder Shah is the founder of Foundgrove, an SEO and GEO agency for US service businesses. See our editorial policy for how these guides are researched and reviewed.
Related reading
Other tactical pieces from the Foundgrove blog.
- SEO · 12 min read
On-Page SEO for Service & Location Pages: 2026 Playbook
Service pages rank or die on-page: here's the title/H1 formula, keyword architecture, internal anchors, and the doorway-page line for location pages.
Read the seo playbook → - SEO · 12 min read
Location Pages for Service-Area Businesses: Rank in More Cities
Service-area businesses rank in cities they don't have an office in by building location pages with genuine local content, not template clones.
Read the seo playbook → - SEO · 12 min read
Why Isn't My Service Business Ranking in Google?
Ten diagnostic categories for service businesses that aren't ranking. How to diagnose each in 15 minutes with free tools. What to fix first.
Read the seo playbook → - SEO · 8 min read
How to Run a Content Audit on a Service Website
Most content audits die in the spreadsheet. Here's the one-afternoon version for a 60-page service site, with exact keep, refresh, merge and delete rules.
Read the seo playbook → - SEO · 8 min read
Alternate Page With Proper Canonical: Fix or Ignore?
Google says this status needs no action. That is right about half the time. Here is the two-minute test that tells you which half your page is in.
Read the seo playbook → - SEO · 9 min read
SEO-Friendly URL Structure for Service Business Sites
Most service sites bury pages four folders deep, then pay for it in a redirect migration. Here is the flat URL architecture to build instead.
Read the seo playbook →
Want help applying this to your business?
Book a free 30-minute call. We'll review your current acquisition stack and show you the three highest-leverage moves for your industry and state. Or read how our SEO service works.