Keyword Cannibalization: How to Spot It in Search Console and Fix It
The tell most guides miss: a page that keeps its ranking but loses almost all its impressions. We found exactly that on our own site this month. Here is the check, and the four fixes.
Real numbers from our own Search Console: the page kept its rank and lost its audience to a sibling.
This sits under our SEO guide, which covers the fundamentals. Most cannibalization advice tells you to type site:yourdomain.com keyword into Google and panic if two pages show up. That test finds overlap. It does not find damage.
The damage shows up in Search Console, and it has a specific shape. This post walks through that shape using numbers from our own site, then gives you the four fixes with the risk attached to each.
What is keyword cannibalization?
Keyword cannibalization (or cannibalisation, if you write British English like we do) is two or more of your URLs competing for the same query and the same intent. Google usually wants to show one of them. When it cannot decide, it rotates between them, and the ranking signals you built get split across pages instead of stacking on one.
Content cannibalization is the same problem seen from the writer's side. Someone publishes "cold brew recipe" in March and "how to make cold brew at home" in July, and nobody checks that the first one exists.
Take a hypothetical Pune D2C coffee brand. It has a product page for its cold brew bags, a blog post on the recipe, and a second, newer blog post on the same recipe. The product page and a recipe post can live together: one sells, one teaches. The two recipe posts are the problem.
Is keyword cannibalization always bad?
No. And this is where a lot of audits overreach.
Google's own ranking systems guide says its site diversity system means it "generally won't show more than two web page listings from the same site in our top results". Two results from your domain on one page is allowed, and it can be a very good outcome.
There is also no "cannibalization penalty" in Google's documentation. The canonicalization page on Search Central says plainly that "some duplicate content on a site is normal and it's not a violation of Google's spam policies." What Google does instead is pick one page as canonical and crawl the others less often. You are not punished. You are filtered.
So two pages ranking for one keyword is a problem only when at least one of these is true:
- Both pages serve the same intent, so a searcher would be equally happy (or equally annoyed) with either.
- Google keeps switching between them, and the one it picks is the weaker page.
- Neither page breaks into the top positions, while a single stronger page plausibly would.
If your service page and your how-to post both appear for a query, and one is for buyers and the other for learners, leave them alone. Our search intent guide covers how to tell those intents apart.
What cannibalization looks like in Search Console: our own data
In September 2026 we ran this check on digitalhangover.in. We had built up roughly twenty pages about cost, pricing and packages. Each one was written for a slightly different angle. To Google, many of them answered the same question.
Here is what our own Search Console data showed, comparing 1–14 September 2026 with 18–31 August 2026:
- One pricing page held its average position: 7.8 before, 7.6 after. Its impressions fell from 1,393 to 30. That is roughly a 98% drop, on a page whose ranking did not move.
- Over the same period, a sibling page's impressions rose.
- Two "packages" pages fell to near-zero impressions.
- The cost and pricing cluster as a whole went from 40 clicks to 24, a loss of 16. The rest of the site gained 7 clicks.
The first line is the one to remember. A page that holds its rank but loses its impressions has usually been de-selected in favour of a sibling. That is what cannibalization looks like in Search Console.
Why does rank hold while impressions collapse? Because of how Search Console calculates position. Google's Search Console Help page on performance data explains that average position uses the topmost position a link occupied, averaged across the queries where it appeared. If Google stops showing a page for most queries, those queries simply drop out of the average. The page still ranks 7.6 for the few searches it is shown on. It just is not shown on many.
A falling average position is easy to spot and most people check for it. A steady position with vanishing impressions looks healthy on a rank tracker, which is why it gets missed.
How to find keyword cannibalization in Search Console, step by step
You need Search Console access for the property and about fifteen minutes per topic cluster. If the property is not set up yet, start with our Google Search Console guide.
- Open Performance → Search results. Set the date range to the last 28 days, and make sure Clicks, Impressions and Average position are all ticked.
- Filter by query. Click + Add filter → Query and use "Queries containing" with your core term. For a cluster, switch to Custom (regex), which uses RE2 syntax per Google's filtering help. For our case that was something like
(cost|price|pricing|packages). - Open the Pages tab under the chart. Every URL listed here got impressions for the filtered queries. More than one URL with meaningful impressions is your candidate list, nothing more yet.
- Add a date comparison. Date filter → Compare, and pick two equal periods. We used two 14-day windows. Google's help page suggests weekly or monthly granularity to smooth out day-of-week swings.
- Run the held-position, lost-impressions check. For each URL, look at position and impressions side by side. Position flat (within about a place) while impressions drop hard is the signature. Note which sibling gained impressions in the same window.
- Flip the view to confirm. Click one suspect page to filter by it, then open the Queries tab. If the queries it lost are the same ones its sibling gained, you have cannibalization, not a seasonal dip.
- Read both pages as a searcher would. Open the two URLs side by side and ask whether someone typing that query would want either one. Same answer means same intent. That decides the fix.
One caution. A two-page swap on a query with ten impressions is noise. Look for the pattern across a cluster, where the numbers are large enough to mean something.
How to fix keyword cannibalization: 4 fixes and when to use each
There is no single right fix. The table below is the one we use to pick, and it is worth bookmarking before you start deleting pages.
| Fix | Use it when | The risk |
|---|---|---|
| Merge + 301 redirect | Two pages serve the same intent and neither needs to exist on its own. Fold the best parts of the weaker page into the stronger one, then redirect. | Hardest to undo. Any query that only the removed page ranked for can drop while Google reprocesses. Update internal links so they point straight at the survivor, not through the redirect. |
| rel="canonical" | Both URLs must stay live for users (a filtered product view, a print version, a campaign landing page), but only one should rank. | Google treats it as a signal, not a command. If the two pages differ a lot, Google can ignore it and pick its own canonical. |
| Differentiate the intent | The pages overlap by accident but could each serve a distinct need: one for learners, one for buyers; one for a city, one national. | Needs a proper rewrite of titles, H1s and body, not a tweak. A half-rewrite leaves both pages in the same fight. |
| De-optimise + internal links | The weaker page has its own value but keeps winning the wrong query. Strip the target phrase from its title and headings, and point internal links with that anchor at the page you want. | Slowest to show results. It relies on Google re-crawling and re-weighing both pages, and you may lose the weaker page's traffic for that query on purpose. |
Merge and 301: the default for true duplicates
For our hypothetical Pune coffee brand, the two cold brew recipe posts are a clean merge. Keep the URL with more links and clicks, move the best steps and photos from the other into it, and 301 the loser.
Google's page on consolidating duplicate URLs lists redirects as "a strong signal that the target of the redirect should become canonical". It also notes the signals "can stack": a redirect plus updated internal links plus the survivor in your sitemap all point the same way.
Canonical: when both pages have to stay
A canonical tag tells Google which of two near-identical URLs you prefer, while both stay reachable. It fits variants, not two different articles. Pointing a canonical from one full blog post to a different full blog post is, in our view, a misuse, and Google can override it when the pages differ. The mechanics are in our canonical tags guide, so we will not repeat them here.
Differentiate: often the right call for service and location pages
Sometimes both pages deserve to exist. A national SEO services page and a Mumbai SEO page can both rank if one is about scope and process and the other is about local proof and local terms. The fix is to make each page obviously about something the other is not, starting with the title tag.
De-optimise and re-point internal links
This is the quiet fix, and in our experience the most underused one. Many cannibalization cases are self-inflicted by internal links: ten blog posts all link to the wrong page with the exact keyword as anchor text. Change the anchors and targets, and you have told Google which page you mean. Our internal linking guide covers anchor choice in more detail.
Mistakes that make cannibalization worse
We see the same four errors again and again, including in our own history.
- Deleting without redirecting. A 404 throws away whatever links and history the page had. Redirect to the closest match or merge first.
- Noindexing the weaker page as a shortcut. It takes the page out of results, but it sends no signal about which page should replace it. A redirect or canonical does; Google lists both as strong canonical signals and does not list noindex.
- Fixing on one week of data. A single week can reflect a holiday or a core update. Compare two equal windows and check the query view before acting.
- Writing the next page without checking. Before any new post, search Search Console for the target query. If an existing URL already gets impressions for it, update that URL instead.
That last one is how we got twenty pricing pages. Each looked distinct in a content plan. Search Console showed Google did not agree.
What to do next
Run the step-by-step check on your one most commercially important cluster this week. Not the whole site. If you find the held-rank, lost-impressions pattern, pick a fix from the table based on intent, not on which option feels least risky.
This post covers one audit item in depth. If you want a second pair of eyes on a cluster that is splitting its traffic, our SEO services team runs this exact diagnosis as part of every audit, and we will tell you when the right answer is to leave two pages alone.
Frequently asked questions
What is keyword cannibalization in SEO?
Keyword cannibalization is when two or more pages on the same site target the same query and the same search intent. Google usually shows one of them, so it rotates between the pages or picks the weaker one, and the ranking signals you built get split instead of combining on a single strong page.
Does Google penalise keyword cannibalization?
No. Google's Search Central documentation says some duplicate content on a site is normal and is not a violation of its spam policies. Google chooses one page as canonical and crawls the duplicates less often. The cost is lost visibility and split signals, not a penalty.
How do I check for keyword cannibalization in Google Search Console?
Open Performance, filter by the query (or a regex for a cluster of queries), then open the Pages tab to see every URL getting impressions for it. Compare two equal date ranges. A page whose average position stays flat while its impressions drop sharply, as a sibling page gains, is the clearest sign.
Should I use a 301 redirect or a canonical tag to fix cannibalization?
Use a 301 redirect when the weaker page does not need to exist and you can merge its content into the stronger one. Use a canonical tag when both URLs must stay live for users, such as filtered or campaign versions of one page. Google treats a canonical as a signal it can override if the pages differ a lot.
Can two pages from my site rank for the same keyword?
Yes. Google's ranking systems guide says its site diversity system generally shows no more than two listings from one site in the top results, so two is allowed. If the pages serve different intents, for example a service page and a how-to guide, both ranking is usually a good outcome and needs no fix.
Find out which of your pages are competing
We map every query cluster to one owner page, then tell you which to merge, redirect, rewrite or leave alone.
Make Digital Hangover a preferred source
One tap tells Google to show more of our SEO and marketing coverage in your Top Stories.
