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 , 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.

  1. 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".

  2. Filter to one query

    Click the query to open its detail. This filters the whole report to that query only.

  3. Compare URLs

    Switch to the Pages tab. Tick two URLs to compare. For example, /blog/keyword-cannibalization and /guides/keyword-cannibalization.

  4. 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.

  1. 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?

  2. 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.

  3. Audit links and assets

    Which page has stronger backlinks, better internal links, and better on-page assets? Keep the one with durable advantages.

  4. 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.

  1. 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.

  2. 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.

  3. 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".

  4. 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.

  5. 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.

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.
  1. 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.

  2. 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.

  3. 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  1. Pick the guide as the winner

    It converts better and already ranks higher on good days.

  2. 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.

  3. Redirect the blog post

    301 /blog/what-is-keyword-cannibalization to /guides/keyword-cannibalization. Replace internal links across /blog/, /guides/, and /pricing/.

  4. 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

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