On-Page SEO

Keyword cannibalization: how to find it and what to actually do

How to detect keyword cannibalization using Search Console data, and the four fixes — merge, canonical, differentiate or prune — with rules for choosing between them.

Published September 15, 2026 8 min read

Close-up of hands taking notes during an SEO strategy meeting

Cannibalization gets diagnosed far more often than it exists, and fixed far less often than it should be. The confusion comes from a bad definition. Two pages mentioning the same keyword is not cannibalization. Two pages competing for the same query with the same intent, where Google keeps swapping between them, is.

Here is how to tell the difference and what to do about each case.

What cannibalization actually looks like

The reliable signal is instability, not overlap. Pull a query from Search Console, filter to it, and look at which pages have received impressions over the last 90 days.

You have a real problem when:

  • Two or more URLs alternate as the ranking page for the same query across weeks.
  • Both URLs sit in positions 8–20 and neither breaks into the top five.
  • Combined impressions are high but combined clicks are poor, because neither page ever earns a stable position with a decent click-through rate.

You do not have a problem when one URL clearly owns the query and another picks up a handful of impressions. Google is simply choosing correctly, and the second page is irrelevant to that query.

The Search Console query that finds it

There is no cannibalization report, so build one:

  1. Export Search Console performance data with Query and Page dimensions, 90 days.
  2. Group by query and count distinct pages with more than a token number of impressions.
  3. Flag every query where two or more pages each hold a meaningful share of impressions.
  4. Sort by total impressions, because a cannibalized query nobody searches for is not worth an hour of anyone’s time.

That list, sorted by opportunity, is the real cannibalization audit. On a site with a long-running blog it is usually between fifteen and sixty queries, and the top ten account for most of the loss.

The four fixes, and how to choose

Once you have a confirmed case, there are exactly four things you can do. Choosing the wrong one is how sites lose traffic while “fixing” cannibalization.

Merge

Use when both pages serve the same intent and both have some equity.

Combine the stronger material into the better-performing URL, then 301 the weaker one to it. The surviving page should be genuinely better than either predecessor — a merge that just concatenates two thin posts produces one longer thin post.

Update internal links to point at the survivor rather than relying on the redirect. Redirects work, but internal links pointing through a redirect are a signal you left on the table.

Canonical

Use when both pages need to exist for users, but only one should rank.

The classic case is a product available in two categories, or a printable version of a guide. Both URLs are legitimate; only one is the search target. Point the canonical at the target and make sure internal links agree with it.

A canonical is a hint, not a directive. If the two pages differ substantially, Google may ignore it — which usually means you actually needed the next option.

Differentiate

Use when the queries are genuinely distinct but the pages have blurred together.

This is the most common correct answer for B2B and SaaS sites, and it is a content problem rather than a technical one. “What is X” and “best X software” are different intents and deserve different pages. If both of your pages currently try to serve both intents, the fix is to sharpen each one: retitle, restructure, and remove the overlapping middle sections.

Then fix the internal links, because the anchor text you use is telling Google which page targets which query.

Prune

Use when one page has no traffic, no links and no strategic purpose.

Delete it and return a 410, or redirect it if it has any external links. Pruning is underused because it feels like losing something, but a site where a third of the pages have never received a click is a site where crawl budget and topical focus are being diluted by pages that do nothing.

The rule that prevents it recurring

Cannibalization is almost always a symptom of an absent keyword-to-URL map.

The rule is simple: one primary query, one URL, written down before anything is commissioned. Every new page gets checked against the map before it is briefed. If the target query already has an owner, the brief becomes “improve the existing page” rather than “write a new one”.

That single discipline prevents most of it, and it is the reason on-page work here starts with the map rather than with title tags. It is also why a content strategy built around clusters produces fewer collisions than one built around a publishing cadence: clusters force you to declare what each page is for.

What to expect after a fix

Merges and redirects register fastest — usually two to four weeks for the surviving URL to consolidate impressions. Differentiation is slower, because you are asking Google to re-evaluate what each page is about, which takes a re-crawl plus an evaluation period of roughly one to two months.

Do not judge a cannibalization fix on rankings alone. Judge it on whether the combined clicks for the query group went up. Occasionally the surviving page ranks slightly lower than the better of the two originals while earning more total clicks, because the result is finally stable enough to accumulate click-through rate.


If you want this run across your whole query set rather than a handful of terms, the free technical audit includes a cannibalization pass as standard. Send us your domain and you get the findings inside five business days.

Next step

See it on your own URLs

Everything in this guide is part of the audit we run at the start of every engagement. Send your domain and you get the findings, prioritized by effort against revenue impact, inside five business days.

Get my free technical SEO audit

Five business day turnaround. No call required to receive it.