Keyword cannibalization:
two posts, one search, no winner
You wrote about the same thing twice. Google now has to choose, has no clear reason to prefer either one, and ends up ranking both lower than a single page would have ranked alone. Nothing looks broken from the outside, which is why this one goes unnoticed for years.
Keyword cannibalization happens when two or more pages on the same site compete for the same search intent. Google splits between them the links, the clicks and the relevance signals that would have made one of them strong, alternates which one it shows, and usually places both below where a single consolidated page would have landed. It is diagnosed in Search Console by filtering one query and checking whether more than one of your URLs receives impressions for it. The fix is almost never deleting: it is consolidating into the URL that already carries the most authority and redirecting the other one with a 301, so its accumulated signals transfer instead of disappearing.
How to know if it is happening to you
Four checks in Search Console, in order. The first one takes two minutes and rules out most false alarms.
-
Filter one query and look at the pages behind it
Performance → Search results → add a query filter → open the Pages tab. You are looking at which of your URLs Google associates with that exact search. One URL is healthy. Two or more receiving real impressions is the overlap you came for.
A page picking up a handful of residual impressions is normal and not worth touching. -
Compare two periods and look for the swap
The strongest confirmation is not the overlap itself, it is the instability. Compare the last three months against the previous three for that query. If the URL Google shows changes from one period to the other, it is telling you outright that it cannot decide.
A stable URL that simply ranks low is a different problem, and it has a different fix. -
Check whether the intent is really the same
Open both pages and ask what the reader wanted when they searched. Someone comparing options and someone ready to buy are two different people, and they can each have their own page without either one hurting the other. The problem is not two pages on the same topic. It is two pages answering the same question.
This check kills more suspected cases than it confirms. Run it before touching anything. -
Look for the expensive version: post against category
In an online store the two competitors are often a blog post and a catalog page. Check whether the URL ranking for your commercial terms is the post rather than the category. When it is, you are getting the visit and losing the sale, because the page Google chose is the one that does not sell.
This is the case a generic scanner cannot resolve: it can see the overlap, but not which of the two should win commercially.
What Google does with two pages it cannot separate
Splitting the signals is not a metaphor. It is what pushes both pages down.
Two pages splitting one signal do not add up. They divide.
One URL keeping the history, and a destination in your store at the end of it.
The four causes, in the order they actually show up
1 · You already wrote it, and you forgot
The most common one by far, and the least glamorous. A store that has been publishing for three or four years accumulates near-duplicates because nobody keeps the inventory in their head: someone writes "how to choose X" in 2022 and "which X to buy" in 2024 without ever opening the first one. Neither post is bad. They are just the same post twice.
2 · The post competing against your own category
The expensive one, and the one specific to an online store. Your category page and a blog post both target the same commercial term, and Google frequently keeps the post, because it looks more like an answer than a shelf. You get the visit and lose the sale.
Which of the two should win is not a technical question. It depends on whether whoever types that search is still learning or already reaching for their card, and that is a judgment call about your catalog, not about your HTML.
3 · Tag and filter pages nobody decided to create
Many CMSs generate an indexable page for every tag, every author and every filter combination. Nobody wrote them and nobody reviews them, but Google indexes them and they compete against the posts they list. It usually gets fixed at the configuration level, not by writing anything.
4 · One question chopped into three posts
The editorial-calendar version of the problem: a single search intent split into three thin articles to hit a publishing quota. Each one covers a third of the answer, none of them deserves the first position, and the three of them together would have.
What to do with each case
| What you are looking at | What to do | |
|---|---|---|
| Same intent, one page clearly stronger | One ranks and the other barely registers | Consolidate into the strong one and 301 the weak one. Move over anything the weak one covered better before redirecting |
| Same intent, both mediocre | Positions swapping between them period to period | Pick the URL with the better history, merge both into it, redirect the other |
| Post against category | A commercial search returning your post | Decide by intent. If the search is transactional, the category wins and the post links to it prominently |
| Different intent, similar topic | One explains, the other sells | Leave both. Make the difference explicit in the title and link them to each other |
| Tag or filter pages | URLs nobody wrote on purpose | Handle it in configuration: noindex on what adds nothing, and leave indexed only what a reader would actually search for |
| Three thin posts, one question | Each one covers a third of the answer | Merge into the one with the most history and redirect the other two. One complete page beats three partial ones |
Positions oscillate on their own. A query whose ranking URL moves once, or that swings two or three places from one week to the next, is showing you normal variance and not a structural problem. Before you conclude anything, look at three months, not seven days.
And two pages on the same topic are not a defect by default. If one explains how to choose and the other lists what you sell, they are covering two different moments of the same purchase and they hold each other up. Consolidating them would cost you the informational entry point. The test is always intent, never topic.
Frequently asked questions
What is keyword cannibalization?
It is when two or more pages on the same site compete for the same search intent. Google has to pick one and it does not have a clear reason to prefer either, so it alternates between them, splits the signals that would have made one of them strong and usually ranks both lower than a single consolidated page would have ranked on its own.
How do I know if I have keyword cannibalization?
In Search Console, filter Performance by one query and open the Pages tab. If two or more of your URLs receive impressions for that same query, they overlap. The strongest confirmation is instability: compare two periods and look for the URL that ranks for that query changing from one to the other. A single stable URL with a clear position is healthy, even if another page picks up a few residual impressions.
Does having two pages on similar topics always mean cannibalization?
No, and this is where most of the false alarms come from. Two pages on the same topic but different intent —one explaining how to choose a product and another listing the products— are not cannibalizing, they are covering two moments of the same purchase. The problem is not similar topics, it is the same intent with no clear winner.
In an online store, can a blog post cannibalize a category page?
Yes, and in an online store this is the most expensive case of all. When a post and a category compete for a commercial term, Google often keeps showing the post, which is the page that does not sell. You get the visit and lose the purchase. Deciding which of the two should win is a commercial call, not a technical one: it depends on whether that search is someone still learning or someone ready to buy.
Should I delete the post that ranks lower?
Almost never as a first move. Deleting throws away the links and the history that page accumulated. Consolidating is better: keep the URL that already has the most authority, move into it whatever the other one covered better, and redirect the weaker one with a 301 so its signals transfer instead of disappearing.
How long does it take to see results after consolidating?
Google has to recrawl both URLs and process the redirect, so it is a matter of weeks, not days. Give it at least four to six weeks before judging the outcome, and compare the same period against the previous year rather than against last week, because seasonality in an online store moves traffic more than the change you just made.
Find out which of your posts are competing with each other
The free diagnosis reads your blog and your Search Console data and tells you which posts overlap, which ones are losing traffic and how many link to your catalog. Then it writes the fix for each one, ready for you to review.
Get my diagnosisno card · the diagnosis is free · we email you once