Keyword cannibalization: two pages, one search, and how to fix it
Two of your pages show for the same query and take turns. Your average position looks worse than it should, and CTR drifts. Here is how to spot it in Search Console, choose the winner, fold the loser, and when to keep two pages because the intents differ.
By Théophile Louvart, founder of Porteur · Updated 13 September 2026 · Markdown
What keyword cannibalization looks like in Search Console
You search for one query in the Performance report and see two URLs alternate at the top. The winner flips day to day or week to week. Total impressions look fine, but clicks underperform.
Open the query view
In Search Console, Performance, set Search type to Web. Set Date to Last 28 days. Click the Queries tab. Find the query, for example "keyword cannibalization".
Filter to one query
Click the query to open its detail. This filters the whole report to that query only.
Compare URLs
Switch to the Pages tab. Tick two URLs to compare. For example, /blog/keyword-cannibalization and /guides/keyword-cannibalization.
Check impressions, clicks, position, CTR
Look for crossovers. If the lines for position cross often, or both pages get impressions on the same days with low CTR, you have cannibalization.
You may not see every query. The query dimension omits rare and anonymised queries, so its totals are lower than the site or page totals. That is normal as of 2026.
Why two pages for one query can cost rank and clicks
Google tries to show one best page per site for a query. Two similar pages dilute signals. Links, internal links, and behavioural signals split between them. The wrong page can win on some days.
- Lower average position: the mean of good and bad days drags down.
- Lower CTR: the weaker snippet can show more often, cutting clicks.
- Crawl and index waste: Google keeps re-evaluating near-duplicates.
- Confused internal links: mixed anchors tell Google both pages are about the same thing.
If you fix it, one URL concentrates relevance. It tends to stabilise. Your chart for that query shows one line rising, the other fading to zero impressions. CTR normalises because the better page wins more often.
Choose the winner and the role of each page
You need one canonical page to own the head query. Any other page should support it or target a different intent. Decide before you edit anything.
Check performance by URL
On the query view, Pages tab, compare the two URLs over the last 28 and the previous 28 days. Which gets more clicks or holds a better position when it shows?
Read the pages side by side
Is the coverage overlapping? If both answer the same intent, pick the stronger or more suitable template. For example, prefer /guides/keyword-cannibalization over /blog/what-is-keyword-cannibalization if the guide is structured to convert.
Audit links and assets
Which page has stronger backlinks, better internal links, and better on-page assets? Keep the one with durable advantages.
Assign roles
Winner: the canonical that targets the head query. Loser: merge into the winner, or retarget to a distinct intent. Update anchors on the rest of the site to point to the winner.
Merge overlapping pages and redirect the loser
If both pages serve the same intent, merge content into the winner and 301 redirect the loser. This is the cleanest fix for small sites. It removes ambiguity and preserves equity.
Draft the merged page
Open the winner, pull across the best sections and examples from the loser. Trim repetition. Keep the H1, title, and URL of the winner if they already match the query. For example, keep /guides/keyword-cannibalization.
Update on-page SEO
Check the title is under about 60 characters, the meta description reads naturally, and headings map to subtopics the query needs. Fix thin or vague sections.
Replace internal links
Search your site for links to the loser and retarget them to the winner. Use consistent, specific anchors, for example "keyword cannibalization guide" rather than "click here".
Set a 301 redirect
Redirect the loser URL to the winner. Test it. Ensure it is a direct 301, not a chain. Update sitemaps if the loser was listed.
Remove duplication signals
Remove the loser from navigation, related posts, and XML sitemaps. If you must keep the loser live briefly, add a rel=canonical to the winner until you can redirect.
A fixed page looks like this: /guides/keyword-cannibalization holds all the depth. /blog/what-is-keyword-cannibalization 301s cleanly. All internal links point to the guide. The Pages tab now shows one URL for the query.
Use canonicals and internal links when you cannot redirect
Sometimes you cannot delete the loser. You need a version for print, UTM testing, or a regional path. Use a canonical and align your internal links to mark one page as the source.
- Add a rel=canonical on the loser that points to the winner’s absolute URL.
- Add a self-referencing canonical on the winner.
- Ensure the loser is not linked from navigation.
- Point most internal links, including breadcrumbs, to the winner.
- Keep content on the loser minimal or blocked where appropriate, for example noindex on staging clones.
Canonicals are a hint, not a directive. If the loser is more linked, Google can pick it anyway. That is why redirects and internal links matter more on small sites as of 2026.
When two pages are legitimate because intents differ
Not all overlap is bad. You can rank two pages when they solve different tasks behind the same words. The queries look the same, but intents differ in structure, format, and CTA.
- Head vs long-tail: "/guides/keyword-cannibalization" vs "/tools/keyword-cannibalization-checker". One teaches, one lets someone act.
- Journey split: "/blog/what-is-keyword-cannibalization" for definitions vs "/guides/how-to-fix-keyword-cannibalization" for the fix.
- Product vs education: "/pricing" for "keyword cannibalization tool pricing" vs "/guides/keyword-cannibalization" for the head term.
Check the results page
Search the head term. If the top results mix definitions, checkers, and product pages, there is room for multiple intents. If all top results are guides, fold your duplicates.
Differentiate on page
Make the intent obvious in the title and H1. Change structure, not just wording. For example, a checker has a form above the fold and short help. A guide has steps and FAQs.
De-duplicate anchors
Use clear anchors for each. Link to the guide with "learn keyword cannibalization" and to the tool with "check cannibalization". Avoid reusing the same anchor for both.
Prevent cannibalization with a simple map
Small sites get into trouble by publishing fast without a map. Keep a one-page sheet that assigns a primary query and role to each URL. Update it before you ship new pages.
- One URL, one primary query and intent.
- A home for each subtopic as a section, not a new URL, unless intent differs.
- A rule for titles: keep the head term on the canonical page. Variants belong in headings.
- Anchors: standard text for internal links to each canonical page.
- Redirect policy: when you retire a page, point it to the closest canonical.
Before you publish "/blog/keyword-cannibalization-examples", check if "/guides/keyword-cannibalization" already covers examples. If yes, add a section there and link to it from the blog index instead of shipping a new URL.
Measure the fix in Search Console
After a redirect or canonical change, give it a few crawls. On a small site this can be days to a couple of weeks. Watch the query view, not just sitewide charts.
Query view, last 28 vs previous 28
On the query, compare the last 28 days against the 28 before. You want to see the winner’s impressions and clicks rise, and the loser’s fade to near zero.
Pages tab shows one URL
For that query, the Pages tab should list only the winner after the change. If both still show, recheck internal links and redirects.
CTR stabilises
A stable, relevant snippet tends to lift CTR. If CTR stays low, fix title and meta description to match the query and intent.
Indexing states
Check the Page indexing report for the loser. If it shows as "Alternate page with proper canonical tag" or is excluded after a 301, the signal is clean.
Worked example: one query, two URLs, one winner
Your site shows two pages for "keyword cannibalization": /blog/what-is-keyword-cannibalization and /guides/keyword-cannibalization. Performance, query filter set, Pages tab shows both. The blog post averages position 12, the guide averages 9, but the lines cross often. CTR is low on both.
Pick the guide as the winner
It converts better and already ranks higher on good days.
Merge content
Move the strongest examples and the FAQ from the blog into the guide. Keep the guide’s URL and H1. Tighten the intro and add a step-by-step fix.
Redirect the blog post
301 /blog/what-is-keyword-cannibalization to /guides/keyword-cannibalization. Replace internal links across /blog/, /guides/, and /pricing/.
Watch the query chart
Over the next 28 days, the guide holds position 6 to 8 steadily. The blog drops to zero impressions. CTR improves because the same good snippet shows more often.
If you later build a small tool, ship it to /tools/keyword-cannibalization-checker with a distinct intent and anchors like "check cannibalization". The guide keeps the head term. The tool ranks for action verbs and long-tail variants.
Common traps to avoid
- Splitting guides into part 1 and part 2 on the same head term.
- Publishing a glossary term and a blog post that both target the head term with near-identical intros.
- Creating location pages for cities when the offer is identical and the intent is not local.
- Letting UTM or filtered URLs get indexed. Always canonicalise to the clean URL.
- Relying only on rel=canonical while internal links still point to the loser.
Questions
You have /guides/keyword-cannibalization and /blog/what-is-keyword-cannibalization. Both target the same informational intent and both show for “keyword cannibalization”. They alternate in Search Console, dilute links, and depress CTR. Merge them, keep one URL, and redirect the other.
Pick the best URL for the query. Move unique value from the weaker page into it. Replace internal links to point to the winner. 301 redirect the loser. If you cannot redirect, add a rel=canonical to the winner and reduce links to the loser, but redirects are stronger as of 2026.
Performance report, filter to one query, then switch to the Pages tab. If two URLs for that query get impressions and their position lines cross or alternate, that is cannibalization. Compare the last 28 days with the 28 before to confirm the pattern.
No. If the intents differ clearly, keep both pages. For example, a guide vs a tool. Make the difference obvious in title, H1, structure, and CTA. Use distinct internal link anchors. If intents match, merge and redirect.
Use a 301 redirect when two pages target the same intent. It consolidates signals cleanly. Use rel=canonical only when you must keep both URLs live, such as print versions or parameters. Back it with internal links to the canonical page.
Allow a few crawls. On a small site this is often days to a couple of weeks. Watch the query view for one URL gaining impressions while the other falls to zero. Check the Page indexing report for the loser to confirm exclusion or proper canonical.
Sources
Check my site, free
Want to see where two of your pages fight for one query, and which should win next, from a single URL in about thirty seconds, free? Try the check from Porteur.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideThe Search Console performance report, column by column
- GuideWhat an impression means in Search Console, and what it does not
- GuideCanonical tags: what they do and the mistakes that cost rankings
- GuideAlternate page with proper canonical tag: what Search Console means
- GuideSearch intent: what the results page tells you to build
- GlossaryStriking distance
- GlossaryDuplicate content
- GuideGoogle is not indexing your site: find the reason in Search Console