Back to Blog
    Search Console

    Keyword cannibalization: find it in GSC and pick the keeper

    Flowra TeamNov 4, 202613 min read

    Keyword cannibalization is when two or more pages on your site compete for the same search. Google then keeps switching between them, or ranks neither as well as one strong page would. It is not a penalty, and it is not always a problem. It only costs you when the pages serve the same intent and the split holds both of them back.

    To confirm it, filter the Search Console Performance report by the query and open the Pages tab. If two URLs both earn real impressions over time, check the intent. Then score the pages to decide which one to keep, and merge, redirect or differentiate the rest. This guide covers each step using free tools.

    What is keyword cannibalization?

    Cannibalization happens when Google cannot tell which of your pages best answers a query. Common causes:

    • Two blog posts on the same topic, written years apart.
    • A category page and a blog post that both target “running shoes for flat feet”.
    • A guide and a glossary entry for the same term.
    • Near-duplicate URLs created by parameters, tags or a site migration.

    In the data, you see the ranking URL flipping between your pages. Or both pages sit stuck in positions 8 to 20 when one combined page could reach the top five.

    Is keyword cannibalization always bad?

    No. Two of your URLs on page one for the same query often just means you take up more of the results. Two pages that answer different intents, such as a pricing page and a “how it works” guide, can share a query without hurting each other.

    In a September 2025 Bluesky reply, Google’s John Mueller pointed out that Search Console shows data for when pages were actually shown, and added: “IMO it’s not really “cannibalization” if it’s theoretical.” Two URLs showing up for one query is a lead, not proof. Act only when the data shows a cost:

    • The ranking URL swaps back and forth, and the position drops each time it swaps.
    • Neither page reaches page one, but both get impressions.
    • The wrong page ranks, for example an old post instead of the page that converts.
    • External links are split between two pages that say the same thing.

    How to find keyword cannibalization in Google Search Console

    Search Console is the most direct source, because it shows which of your URLs Google actually served for each query. If you are new to the report, start with our guide on how to use Google Search Console for SEO.

    Step by step: filter by query, then open the Pages tab

    1. Open Search Console > Performance > Search results.
    2. Set the date range to Last 3 months. If the query is seasonal, use a longer range (up to 16 months).
    3. Tick Average position above the chart, alongside clicks and impressions.
    4. Click Add filter, choose Query, then Exact query, and enter the search you suspect.
    5. Open the Pages tab under the chart. Every URL listed has appeared in results for that query.
    6. Note each URL’s clicks, impressions and position from the table.
    7. To see whether they swap, add a second filter: Page > Exact URL for the first URL, and read the position line over time. Repeat for the second URL. If one page’s impressions rise in the same weeks the other’s fall, Google is probably switching between them.

    To audit many queries at once, work the other way round. Export the Queries tab for each important page, put the exports side by side, and look for queries that appear for more than one URL.

    When are shared impressions worth acting on?

    Google gives no threshold. This is our own working rule, not an official number. Treat a query as a real candidate when all of these are true:

    Checklist of four conditions a query must meet before shared impressions are treated as real cannibalization.
    If a query fails any test, such as a dozen impressions next to thousands, treat it as noise and leave it alone.
    • The second URL gets at least 20% as many impressions for that query as the first.
    • Both URLs get impressions in most weeks of the range, not just on one stray day.
    • At least one URL ranks inside the top 20, so there is a page-one spot to win.
    • The query matters to you: it has enough impressions to move traffic, or it leads to sales.

    A URL with a dozen impressions next to one with thousands is noise. Leave it alone.

    Two traps in the Search Console data

    Queries and pages are counted differently. Google says data grouped by Queries is aggregated by property, while data grouped by Pages is aggregated by page. So when two of your pages appear in the same results, the query total counts that search once, but each page counts its own impression. If the impressions on the Pages tab add up to more than the query total, both pages were often shown together. That can be a healthy double listing, not a swap.

    Average position means two things. In the chart, average position is the position of the topmost result from your entire site; in the table it is per URL. The chart can say 4 while the table shows one page at 6 and the other at 9. For cannibalization work, read the table.

    Check the intent before you call it cannibalization

    Search the query in a private window and look at what ranks. Then compare it with your two pages:

    • Same intent, similar content: real cannibalization. Go on to choose a keeper.
    • Different intents (one explains and one sells, or one is for beginners and one for experts): usually fine. Make the difference clearer and keep both.
    • Both of your pages on page one together: probably working in your favour. Keep an eye on it, but do not merge.

    Other ways to spot it: site: search and rank trackers

    A site: search. Type site:yourdomain.com "questions to ask your manager" into Google. This lists indexed pages on your site that mention the phrase. The order is not a ranking, but it quickly shows how many pages target the topic, including old ones you forgot about. Run one before you write a new page, too.

    A rank tracker. If your tracker records the ranking URL as well as the position, look for the URL changing from week to week for the same keyword. A position that drops each time the URL changes is the classic pattern. Rank trackers check from one location and device, so confirm in Search Console, which reflects real searches.

    Skip the spreadsheet

    The manual method works, but you have to repeat it one query at a time. The free keyword cannibalization checker runs in your browser with no sign-up. It reads your Search Console query and page data and lists searches split across two or more pages, with a severity rating and the page to keep.

    To skip exports altogether, connect Search Console to Flowra (there is a Free plan). The Keyword Cannibalization report itself is part of the Pro plan. The Free plan covers basic reports: content decay and the top 5 striking distance queries. On Starter and above, the same connection feeds the SEO monitoring dashboard, with 16 months of Search Console and GA4 history.

    Flowra Keyword Cannibalization report listing queries that compete across multiple pages, with severity, page count, best position, impressions and clicks
    Each row is one query split across your pages. Filter by severity, and the summary bar shows the clicks at stake.

    How to choose which page to keep

    Do not keep the newest page by default, or the one you like best. Score both pages on the evidence. Give each page 0, 1 or 2 points per factor, then multiply by the weight.

    FactorWhere to check0 points1 point2 pointsWeight
    External linksSearch Console > Links > External links > Top linked pages, or your backlink toolClearly fewer than the other pageAbout the sameClearly morex3
    Clicks from all queries, last 12 monthsPerformance, Pages tab, no query filterClearly fewerWithin about 20%Clearly morex3
    Position for this queryPerformance, query filter, Pages tabWorse than 2011 to 201 to 10x2
    Intent fitCompare with what ranks for the queryDifferent intentPartly fitsMatches what ranksx2
    Content qualityRead both pagesThin or out of dateAdequateComplete and currentx1

    The maximum score is 22. Links and total traffic carry the most weight because they are the hardest to rebuild. Content you can always copy across. If the scores are tied, compare conversions in GA4, then pick the cleaner URL.

    A worked example

    This case is made up for illustration, not real data. A site has two posts on one query:

    • Page A: /blog/questions-to-ask-your-manager. Older, linked from many more external sites, position 7.8 for the query, and uses the list format that ranks, but parts are out of date.
    • Page B: /blog/one-on-one-meeting-questions. Newer, few external links, position 14, similar total clicks. Better written, with a section on remote teams.
    FactorPage APage B
    External links (x3)2 x 3 = 60 x 3 = 0
    Clicks, all queries (x3)1 x 3 = 31 x 3 = 3
    Position for query (x2)2 x 2 = 41 x 2 = 2
    Intent fit (x2)2 x 2 = 41 x 2 = 2
    Content quality (x1)1 x 1 = 12 x 1 = 2
    Total189

    Keep Page A. Move Page B’s best material, including the remote teams section, into Page A, then redirect B to A. If the totals are within about three points of each other, the pages are evenly matched. In that case, check whether they could serve different intents before you merge them.

    How to fix keyword cannibalization

    FixUse it whenWhat happens to the other page
    Merge and 301 redirectSame intent, and you do not need the weaker pageIts best content moves to the keeper, and its URL redirects there
    Canonical tagBoth URLs must stay live, and the pages are duplicates or near duplicatesIt stays live and points Google to the keeper
    Make the pages distinctThe two pages can serve different intentsEach is rewritten around its own query and angle
    Fix internal linksAlways, alongside any other fixLinks that use the target term point to the keeper
    NoindexNot a cannibalization fix (see below)It drops out of the index without passing signals on

    Steps for a merge and redirect

    1. Copy anything useful from the weaker page into the keeper: sections, examples, FAQs and images.
    2. Add a 301 redirect from the weaker URL to the keeper.
    3. Update internal links across the site so they point straight at the keeper, not through the redirect.
    4. Remove the redirected URL from your XML sitemap.
    5. In Search Console, run URL Inspection on the keeper and click Request indexing.
    6. Wait a few weeks, then compare clicks and position for the query before and after.

    For step 6, you can tag the change in Flowra. It compares the period before and after the change, with a 14 day settling window and an adjustment for movement across the whole site. It is a before-and-after comparison, not a split test, and it will report “This change hurt” just as readily as “This change helped”.

    301 redirect or canonical tag?

    Google treats both redirects and rel=”canonical” as “a strong signal” that the target should become the canonical URL. The difference is what visitors see. A redirect sends people to the keeper. A canonical leaves both pages reachable.

    Choose the redirect when the weaker page has no reason to exist on its own. Choose the canonical when both pages must stay live and say nearly the same thing, such as a campaign landing page that copies an evergreen page. If the two pages genuinely differ, a canonical is the wrong tool: make them distinct instead.

    Do not use robots.txt to choose between them. Google says plainly: “Don’t use the robots.txt file for canonicalization purposes”.

    Why noindex is the wrong fix

    Many guides list noindex as a standard fix. Google disagrees: “We don’t recommend using noindex to prevent selection of a canonical page within a single site”, and it prefers rel=”canonical”. A noindexed page drops out of results, but it does not pass its signals on to your keeper.

    The same logic applies to “de-optimizing” the weaker page by stripping out the keyword. That weakens one page without strengthening the other. Merge, redirect or differentiate instead. Save noindex for pages that should never appear in search at all, such as thank-you pages or internal search results.

    Internal links: the quiet fix

    Internal links tell Google which page you consider the main one. After you choose a keeper:

    • Find anchor text that uses the target query and point those links at the keeper.
    • If you keep the weaker page, link from it to the keeper using the target term.
    • Add a link to the keeper from your pillar or hub page for the topic.

    Prevent it with a keyword map

    A keyword map is a spreadsheet with one row per page and one primary query per row. These columns work well:

    Primary queryIntentURLSecondary queriesStatus
    questions to ask your managerList, informational/blog/questions-to-ask-your-managerone on one questions, 1:1 questionsLive
    one on one meeting templateTemplate, download/templates/one-on-one1:1 agenda templatePlanned

    Before anyone writes a new page, search the map for the query and run the site: search described above. If a page already owns the query, update that page instead of writing a new one. Every quarter, rerun the Search Console check on your top queries, because Google sometimes pairs up pages you never meant to compete.

    What to do next

    Pick your five most valuable queries. Run each one through the Search Console steps above, apply the 20% rule and the intent check, and write down any real splits. Score each pair with the rubric. Then fix the worst split first: merge, redirect, update internal links and request indexing. Put a reminder in your calendar four weeks out to check the result.

    Frequently asked questions

    Is keyword cannibalization a Google penalty?

    No. Google does not penalize a site for having several pages on one topic. The cost is indirect: Google may switch between your pages or rank neither of them well, and links and clicks end up split across them. Fixing it is about consolidating strength, not lifting a penalty.

    How do I find keyword cannibalization in Google Search Console?

    Go to Performance > Search results, add a Query filter with the exact search, and open the Pages tab. If two or more URLs get meaningful impressions across most of the period, filter by each URL and compare their positions over time. Then check the live results to confirm both pages serve the same intent.

    Should I use a 301 redirect or a canonical tag?

    Use a 301 redirect when the weaker page does not need to stay live, because it sends both visitors and Google to the keeper. Use a canonical tag when both URLs must stay reachable and the pages are near duplicates. Google treats both as strong signals when it chooses the canonical URL.

    Can I use noindex to fix keyword cannibalization?

    It is not recommended. Google’s documentation says it does not recommend noindex for stopping a page from being chosen as canonical within one site, and it prefers rel=”canonical”. A noindexed page leaves the index without passing its signals to the page you want to rank.

    Which page should I keep?

    Keep the page with the stronger evidence: more external links, more clicks across all its queries, a better position for the query, and a closer fit with what Google ranks. Content quality matters less, because you can move the better content into the keeper. Score both pages and keep the one with the higher total.

    Does keyword overlap in Google Ads work the same way?

    Not quite. In Google Ads, overlapping keywords in your own account decide which of your keywords and ads shows for a search. They do not split organic rankings. The fix is different too: check the Search terms report and use negative keywords to send each search to the ad group you want.