When two of your own pages fight over the same search
You have a service page about a thing. Someone later wrote a blog post about the same thing. Google now has to pick one for every search, picks differently on different days, and neither builds the track record to win properly. That is cannibalization.
Last updated 2026-09-04 · The Clode team · Guides
The short version
Cannibalization is real when several of your pages appear for the same search, the split is roughly even, and there is enough volume for it to matter. It is a false alarm when one page clearly wins, when the pages serve genuinely different intents, or when they are in different languages. Fix it by choosing one page to win, and making the other point at it.
What it looks like in the data
Take one search term and list every page of yours that has appeared for it. Normally one page holds the great majority of impressions and the others are occasional. That is fine and needs no action.
The pattern worth attention is a genuine split: two pages each taking a substantial share, alternating over time, with neither settling into the position you would expect from the traffic the term should bring. The clicks divide, so neither page accumulates the engagement signals that would push it up, and the term underperforms compared with similar ones where you have a single clear page.
About 1,200 impressions a week
The service page holds about 90% of impressions every week. The blog post is background noise, not a competitor: leave it alone.
About 1,200 impressions a week
The two pages average 45% and 40%, and the lead changes hands week to week. This is the one worth fixing: pick the page that should win.
About one impression a week, four a month
The same kind of split, on four impressions a month. There is nothing to win here, so it is not worth an afternoon.
How to tell a real one from a false alarm
Different intent, similar words.
"Buy X" and "how does X work" deserve different pages. If your two pages serve those two intents, they are doing their job even though the query text looks alike.
Different languages or regions.
A Spanish and an English page for the same product are not competing; they are shown to different people.
One clear winner.
If one page has 90% of impressions, the other is background noise, not a competitor.
Tiny volume.
Two pages splitting a search that brings four impressions a month is not worth an afternoon.
A tool that flags everything is worse than no tool, because you stop reading its list. The filter matters more than the detection.
How to fix it
The fix is a decision, not a technique: pick the page that should win.
Choose by intent and by evidence.
Which page matches what the searcher wants, and which one Google already prefers? When those disagree, Google is telling you something about the page you thought was better.
Merge or differentiate.
Either fold the weaker page into the winner and redirect it, or rewrite it so it clearly targets a different question. Change the title and headings too, since those are the strongest signals of what a page is for.
Fix the internal links.
If your own navigation and body links point at the loser, you are voting against your own decision. This step is skipped more often than any other and it is the one that makes the decision stick.
Wait, then check.
It takes weeks. Watch the split rather than the ranking: success is one page taking nearly all the impressions.
How this works in Clode
Clode's Cannibalization list gives you the evidence for step one: open a conflict and it marks the page to consolidate onto, the one earning the most clicks for that search (impressions break a tie), with every competing page's share of that search's impressions beside it. It answers the last step as well, because a search drops off the list once one page holds 70% of its impressions.
How to find it without a tool
In Search Console: open Performance, filter to one query, then switch to the Pages tab. You will see every page that appeared for it and its share. Repeat for each query you suspect.
That works and it is free. Its limit is obvious after about the fifth query. You cannot check thousands of searches by hand, and the ones you would think to check are rarely where the problem is.
How we do it
Clode runs that comparison across every query and page pair in your data, then filters it down to the conflicts that are actually costing you: enough volume to matter, no single page holding a clear majority, same language, and a genuine overlap of intent. The list is ranked by the impressions and clicks at stake, with the page Google currently prefers marked, so the top of it is the one worth your afternoon.
The window it covers is stated on the page, because the query-and-page detail Google provides is held for a shorter period than site totals. Reporting a narrower window as if it were your whole range would be exactly the kind of quietly-wrong number we build against.