Keyword Cannibalisation on Affiliate Sites: How to Find It and Which Page Should Win
A site has a guide to the best bike lights and, written a year later, a guide to the best bicycle lights. Google treats the two queries as the same thing, sees two pages making the same case, and shows one this week and the other next week, both from the bottom of page one. Each page is competing with the other more than with anyone else.
That's keyword cannibalisation, and on affiliate sites it's nearly always self-inflicted: a batch of guides written from a keyword list with near-duplicates in it.
This post covers how to find cannibalisation in Search Console, the difference between a real conflict and two pages that happen to rank, how to decide which page should win, and the three fixes (merge, re-target, de-optimise), with a note on preventing it in the keyword list. It pairs with the pruning post, which covers the Merge bucket from the other direction.
The short answer
In Search Console, filter the Performance report to one query and look at Pages: two URLs with real impressions is a candidate. It's a problem when neither ranks well or they keep swapping.
The winner is the page with more links, better position history and the closer intent fit. Then merge (same topic), re-target (distinct angle) or de-optimise (needs to exist, shouldn't compete).
How to find it in Search Console
- Per query: Performance → Search results → add a Query filter for the keyword → Pages tab. One URL is fine. Two or more with meaningful impressions is a candidate.
- Site-wide: export the last three months of queries with pages (the Pages tab per query, or a sheet built from the API or a connector). Sort by query; any query with two or more URLs goes on the list.
- Confirm with the date comparison: compare the last 28 days with the previous 28 for that query. If the two URLs trade positions, Google can't decide. If one is stable on page one and the other is nowhere, there's no conflict; the second page is just ranking weakly for a term it mentions.
The content audit post covers the export in more detail; this is the one filter from it that matters here.
When two pages ranking is fine
| Situation | Problem? | Do |
|---|---|---|
| Both URLs on page one, stable | No | Leave it; two results beat one |
| Guide and a review of its top pick, both for the product name | Usually no | Different intents; make sure they link to each other |
| Two guides, positions swap week to week, both page two | Yes | Merge |
| Guide for "X for commuting" also ranking for plain "best X", weakly | Not yet | Write or strengthen the plain "best X" guide; the long-tail page will drop back |
| Hub page and a guide both for the category term | Yes, if the guide is winning | De-optimise the guide for the head term; the hub should own it |
Which page should win
Three signals, in order:
- External links. The page other sites link to is the one to keep, almost regardless of the rest. Links don't transfer perfectly through a redirect, and they never transfer through a rewrite.
- Position history. The page that has held a better position for longer, before the other arrived, is the one Google trusts.
- Intent fit. For a "best X" query, the buyer guide beats the single review, the explainer and the hub. For a product-name query, the review beats the guide. For a category term, the hub or the broadest guide.
Ties go to the page with the better URL and the more recent refresh. The loser is whatever's left, and it gets one of the three fixes below.
The three fixes
Merge
For two pages on the same topic. Fold the loser's useful content (a product the winner doesn't cover, a section it lacks) into the winner, 301 the loser's URL to it, update internal links. The merged page typically settles higher than either did within a few weeks because the signals stop splitting.
Re-target
For a loser that has a real, distinct angle it isn't using. The "best bicycle lights" guide becomes "best bike lights for commuting" or "under $50": new title, new H1, new intro, products re-selected for that reader. It stops competing for the head term and starts ranking for its own. The titles post covers how to pick the new one.
De-optimise
For a page that needs to exist for readers but shouldn't compete: a hub that's outranking its own guide, a review stealing a guide's query. Take the competing keyword out of the title and H1, remove the heading that duplicates the winner's, and point the page's internal links (and its anchor text) at the winner. The page stays; Google's choice gets easier.
Preventing it in the keyword list
Most cannibalisation on affiliate sites is written in, not grown into. Before a batch, group the keyword list: near-synonyms ("bike lights", "bicycle lights", "cycling lights") are one guide with the variants in the body, not three guides.
Long-tail variants ("for commuting", "under $50") are separate guides only if the products and the reader differ. One guide per intent, and the list shrinks by a third with no loss of coverage.
Doing it with AffSERP
AffSERP's Keyword Grouping tool does the prevention step: paste a list and it clusters near-synonyms and variants into one target per guide, so "bike lights" and "bicycle lights" don't become two posts.
For an existing conflict, the re-target fix is a regeneration with the X Best Review tool for the new keyword, which rewrites the title, intro and product selection for that reader rather than editing the old page by hand. Finding the conflict and choosing the winner is the Search Console work above.
FAQ
What is keyword cannibalization?
Two or more pages on the same site competing for the same query, so Google alternates between them or ranks both lower than one would rank alone. On affiliate sites it's usually two buyer guides with overlapping keywords ('best bike lights' and 'best bicycle lights'), or a guide and a review of its top pick both targeting the product name.
How do I find keyword cannibalization in Search Console?
Performance report, Search results, filter to one query, open the Pages tab. More than one URL with meaningful impressions for that query is a candidate. For a site-wide pass, export queries with their pages and look for queries that have two or more URLs, then check whether their positions swap over time in the date comparison.
Is it bad if two pages rank for the same keyword?
Not always. If both sit on page one, that's two results instead of one and you leave it alone. If one is a guide and one is a review and they serve different intents, that's fine too. It's a problem when neither page ranks well, when the positions keep swapping, or when the weaker page is the one Google keeps picking.
Should I delete a cannibalizing page?
Rarely. Merge it into the stronger page and redirect if they cover the same thing; re-target it to a different keyword if it has a distinct angle; de-optimise it (change the title, remove the duplicated heading, point its internal links at the winner) if it needs to exist for readers. Deleting is for a page with nothing to keep and nowhere to point.