In short
Keyword cannibalisation is when two or more pages on your site try to answer the same search intent, so Google keeps switching between them and neither ranks as well as one combined page would. Sharing a keyword is not the problem: two pages with different intents, or two of your results on the same results page, are normal. You confirm it in Search Console (one query, several pages taking turns) and fix it by choosing one winner, then merging and redirecting, differentiating, or de-optimising the other page.
What keyword cannibalisation really is
The usual definition, that several pages rank for the same keyword, is too broad. Almost every site has pages that share words. The real problem starts when two pages satisfy the same intent: a searcher would be equally happy with either, so Google has to choose between them, and the choice keeps changing.
Compare two pairs on example.com:
/blog/best-running-shoes-flat-feet/and/blog/flat-feet-running-shoes-2026/. Both are lists of recommended shoes for the same reader. That is cannibalisation./guides/running-shoes-flat-feet/and/shop/running-shoes/flat-feet/. One helps you decide, the other lets you buy. They share the keyword but not the intent, so they can both rank.
American sources call it keyword cannibalization, British ones keyword cannibalisation. It is the same thing. There is no cannibalisation penalty. The cost is practical: links, internal links and attention are split between two URLs, and Google may show the weaker one. Google's SEO Starter Guide notes the user side: such pages “can be a confusing user experience”.
Mapping one primary intent to one URL before you publish (see Clustering and the content map) prevents most cases.
When it is not a problem
Many overlaps that SEO tools flag as cannibalisation are healthy. Before you merge anything, rule out these cases.
Two of your results on one results page
If Google shows two of your pages for one query, as a main result with an indented one or as two separate results, you are taking more space, not less. Search Console counts this as one impression for the property: “For example, if two results from the same site appear for one query, they count as a single impression in the chart total.” Nothing to fix.
Different intents behind similar words
A guide, a product category, a comparison and a glossary entry can all contain running shoes. If each one answers a different question, they are not competing. The results page tells you: if Google shows guides for one query and shops for another, the intents differ (see Search intent and SERP analysis).
Brand and navigational queries
For your brand name, Google often shows many of your pages. That is expected. Search Console defines “Branded queries: Search queries that include your brand name, domain, or a brand-specific product or service.” Use the Branded / Non-branded query filter, where your property has it, and exclude brand queries from cannibalisation analysis.
A broad head term
For a short, ambiguous query such as running shoes, Google may mix shops and guides because searchers want different things. Your category and guide taking turns there is not automatically a problem; focus on specific queries with a clear intent.
Long-tail overlap with little demand
A second URL picking up a handful of impressions for a rare query is noise. Google matches pages to many phrasings on its own: “Google's language matching systems are sophisticated and can understand how your page relates to many queries, even if you don't explicitly use the exact terms in them.” Act only on queries with real demand where two or more pages each get a meaningful share of impressions.
What Google officially says
Google's documentation does not use the word cannibalisation. It does describe the pieces you need: how to see which of your pages appear for a query, and how to consolidate pages that say the same thing.
“If you have multiple pages that have the same information, try setting up a redirect from non-preferred URLs to a URL that best represents that information. If you can't redirect, use the rel="canonical" link element instead.”
Google Search Central — SEO Starter Guide“Use permanent redirects to tell Google that a redirected URL is a worse version than the URL it redirects to. Use this only when deprecating a duplicate page.”
Google Search Central — How to specify a canonical URLTwo more points from the same documentation shape every fix below. Redirects are “A strong signal that the target of the redirect should become canonical.” And when you measure, “In general, it's recommended to focus more on trends in impressions and clicks than on position alone.”
Symptoms of real cannibalisation
One symptom is rarely enough. Look for two or three of these on the same query family.
- URL flipping. The URL Google shows for the query changes from week to week. One week page A gets the impressions, the next week page B. Google has no clear winner.
- Both pages stuck. Each page hovers in the middle of the results, while competitors with one strong page sit above you.
- The wrong page ranks. A commercial query shows your blog post instead of the product category, or an old article instead of the updated guide.
- Impressions split. With a query filter, the Pages tab shows two URLs with similar, substantial impression counts.
- Low CTR on the chosen page. Google shows the page whose title fits the query worse, so fewer people click.
- Split links. Backlinks and internal links on the topic go to both URLs, so neither gets all of them.
How to detect it in Search Console
The Performance report shows which of your URLs Google actually displayed for real queries. Work with non-branded queries and at least three months of data.
Query first: which pages appear for this query?
Search Console Help describes exactly this task: “To view the specific pages from your site that Google has shown for a given query:”
- “Click the Queries tab.”
- “Click a query in the table to filter all report data to the selected query.”
- “View the Pages tab to see which URLs were shown.”
Clicking a row is a shortcut for a filter: “OR, click any row in a table to automatically filter data by that row.” If the Pages tab shows one URL with almost all impressions, there is no problem. If it shows two or more URLs with substantial impressions, write the query down as a candidate.
Page first: what else does this page rank for?
Now reverse it. Add a page filter for one of the competing URLs and open the Queries tab. Then do the same for the other URL. Queries that appear in both lists, with real impressions on both, are the overlap. It also shows what each page is uniquely good at.
Query families with regex
“Queries shown in the table are exact matches (non-case-sensitive).” A single query hides the pattern, because demand is spread over many phrasings. Google's tip: “You can use regular expressions to match several similar queries”. A query filter with Custom (regex) such as flat ?feet.*(running|shoes) groups the whole family before you open the Pages tab.
Watch the flipping over time
With the query filter on, compare two periods and look at the Pages tab: the pages that gained and lost impressions between periods are the ones taking turns. “Sort by the Difference column to see queries or pages with significant change from a previous period.”
Read the numbers correctly
- “Data grouped by Pages or Search appearance is aggregated by page.” In the Pages tab, each of your two URLs gets its own impression when both appear, so page totals can be higher than the chart total.
- Position in the chart is the topmost result from your site. A flat average position can hide two URLs swapping places.
- The interface table shows a limited number of rows. For a whole-site check, export the data or use the Search Console API or Looker Studio, then build a query × page table and filter for queries with two or more pages above a sensible impression threshold.
- “Even if a query appears in your list, you might not see your site in results if you run the same query in Google Search. This is because Search results are specific to the time, place, device, and recent history of the person searching.” Do not diagnose cannibalisation from one manual search.
How to detect it with a crawl
A crawl finds overlaps before they show up in Search Console, and explains the ones that already do. Export title, H1, meta description, URL and internal links, then look for:
- Overlapping titles and H1s. Sort by title and by H1 and read the neighbours.
Best Running Shoes for Flat FeetandTop Flat-Feet Running Shoes 2026say the same thing in different words. Google's advice for titles applies here: “a good title is unique to the page, clear and concise, and accurately describes the contents of the page.” - The same head term in several URLs.
/blog/flat-feet-running-shoes/,/guides/flat-feet-shoes/,/faq/running-shoes-flat-feet/. - One anchor text, several targets. Anchor text tells Google what the linked page is about: “This text tells users and Google something about the page you're linking to.” If
running shoes for flat feetlinks to three different URLs across the site, you are voting for all three. - Gaps in the content map. Put each indexable URL next to its primary intent in a spreadsheet. Any intent with two URLs is a candidate.
How to choose the winner page
Every fix starts with one decision: which URL should own the intent. Score the candidates on the same criteria and look at the whole picture, not one number.
| Criterion | What to look at | Where |
|---|---|---|
| Search traffic | Clicks and impressions for the whole query family, not one query | Search Console, query regex + Pages tab |
| Positions | Which URL Google shows more often and higher, over months | Search Console, period comparison |
| Backlinks | Referring domains pointing to each URL | Search Console Links report, backlink tools |
| Conversions | Sales, leads or sign-ups that start on each URL | Your analytics |
| Intent fit | Which page type matches what Google shows for the query | The results page itself |
| URL quality | A clean, durable URL without a year or campaign in it | The URL |
When the scores are close, keep the URL with more backlinks and move the best content into it.
How to fix it
The right fix depends on two questions: do the pages really share an intent, and does the second page have any value of its own?
Merge and 301 redirect
The default fix when two pages cover the same intent and the loser has nothing that needs its own URL.
- Move the useful, unique parts of the losing page (a section, a table, an FAQ answer, a fresher example) into the winner. Do not paste the whole page in.
- Set a permanent server-side redirect from the loser to the winner. Google: “If you need to change the URL of a page as it is shown in search engine results, we recommend that you use a permanent server-side redirect whenever possible.”
- Update internal links so they go straight to the winner, not through the redirect.
- Remove the old URL from the XML sitemap and keep the winner in it.
A merge is a one-way decision. Google's guidance is to “Use permanent redirects when you're sure that the redirect won't be reverted.” If you are not sure the pages should become one, differentiate first and decide later.
Differentiate the intent
When both pages have a reason to exist, give each a clearly different job. Turn one into a buying guide and keep the other as the product category, or make one a comparison and the other a how-to. Rewrite the title, H1 and opening paragraph of each so the difference is obvious, and link between them with descriptive anchors such as shop running shoes for flat feet from the guide and how to choose shoes for flat feet from the category.
Canonical, only for true duplicates
rel="canonical" is “A strong signal that the specified URL should become canonical.” It fits when the second URL is a near-copy that users still need: a printable version, a campaign landing page with the same content, the same article in two sections of the site. It is the wrong tool for two different articles on the same topic. A canonical between pages with different content is usually ignored, and the lessons Canonical tags and Duplicate URLs explain why.
Point internal links and anchors to the main page
Internal links are the signal you control completely. Make the main anchor text for the topic point to one URL everywhere: menus, breadcrumbs, related-posts blocks, in-text links and hub pages. Google's rule: “When linking within your site, link to the canonical URL rather than a duplicate URL.” This alone often settles mild cases.
De-optimise the secondary page
If the second page is worth keeping for a narrower topic, take the head term out of its title, H1, opening paragraph and the anchors pointing to it, and let it target its own long-tail intent. For example, /guides/overpronation-shoes/ stops calling itself the best guide to running shoes for flat feet and becomes a page about overpronation, with a link to the main guide.
noindex, rarely
noindex takes a page out of search, but it does not pass that page's signals to the winner. Google says so about duplicates directly: “We don't recommend using noindex to prevent selection of a canonical page within a single site, because it will completely block the page from Search.” Keep it for pages that should exist for visitors but have no search value, such as internal search results or thin tag pages. Do not use robots.txt either: “Don't use the robots.txt file for canonicalization purposes.”
Do not just delete the loser
Deleting the page and returning 404 throws away its links and leaves visitors at a dead end. Redirect it. Google lists this exact case among the reasons for redirects: “You removed a page and you want to send users to a new page.” The lesson Redirects and site migrations covers redirect types in depth.
| URL | Before: target | Action | After: owns |
|---|---|---|---|
/blog/best-running-shoes-flat-feet/ | best running shoes for flat feet | Winner. Rename to the guide, expand with merged sections | Informational: choosing shoes for flat feet |
/blog/flat-feet-running-shoes-2026/ | same list, newer year | Merge fresh picks into the winner, 301 to it | Nothing (redirects) |
/faq/running-shoes-flat-feet/ | same intent, Q&A format | Move answers into the guide's FAQ, 301 to it | Nothing (redirects) |
/shop/running-shoes/flat-feet/ | flat feet running shoes (mixed copy) | Keep. Commercial title and H1, link from the guide | Commercial: buying shoes for flat feet |
Monitoring after the fix
Write down the date and what you changed, and save a before snapshot: the query family's clicks and impressions, and which pages appeared in the Pages tab. Then check:
- The Pages tab for the query family. Over the following weeks the redirected URL should fade out and the winner should collect its impressions. If the old URL keeps appearing, that is normal for a while: “When you redirect a URL, Google keeps track of both the redirect source (the old URL) and the redirect target (the new URL).”
- Clicks and impressions, not only position. Compare an equal period after the change with the period before, with the same weekdays. Google's method: “To measure the impact of a change, confirm whether your improvement in Search maps closely in timing to your site changes, compared to similar time periods in the past”. A Search Console annotation on the change date makes this easier later.
- URL Inspection of the old URL, to confirm Google has seen the redirect, and of the winner, to confirm it is indexed.
- A recrawl of your site to catch internal links, sitemaps and hreflang that still point to the old URL.
Expect weeks rather than days: Google has to recrawl the old and new URLs before rankings settle. If flipping continues, look for a third page or anchors still split between URLs.
Check titles, canonicals and redirects across your site
OurSEO Tools crawls up to 1,000 pages and records the status code, canonical, indexability and load time of every URL, and its 69-point checklist covers on-page, duplicates, redirects and internal linking.
Common mistakes
- ✕Treating every shared keyword as cannibalisationA guide and a category with different intents should both exist.
- ✕Panicking about two results on one pageTwo of your URLs in the same results is extra visibility.
- ✕Choosing the winner by one metricLook at traffic, links, conversions and intent fit together.
- ✕Redirecting without mergingThe unique parts of the losing page disappear with it.
- ✕Canonical between different articlesUsually ignored; merge or differentiate instead.
- ✕noindex or robots.txt on the loserThe page drops out, but its signals do not move to the winner.
- ✕Leaving internal links on the old URLMenus and related-posts blocks keep voting for the page you retired.
Step-by-step workflow
- Find candidates: non-branded query or regex filter, then the Pages tab; for the whole site, a query × page export.
- Keep real cases: same intent, real demand, two or more pages with substantial impressions.
- Reverse the check: page filter, Queries tab, for each competing URL.
- Crawl titles, H1s, URLs and anchor text of the pages involved.
- Choose the winner and pick the fix with the decision tree.
- Implement: content, redirect, internal links, sitemap.
- Monitor and update the content map so the intent has one owner.
FAQ
Is keyword cannibalisation a Google penalty?
No. Google states that “Having duplicate content on your site is not a violation of our spam policies”. The cost is split signals and Google showing the weaker page.
Can two of my pages rank for the same keyword?
Yes, if they serve different intents, such as a guide and a product category, or if Google shows both on the same results page. That is only a problem when they take turns and neither ranks well.
How do I see which pages compete for a query in Search Console?
In the Performance report, click the query in the Queries tab, then open the Pages tab. Every URL listed there was shown for that query in the selected period.
Should I use a canonical tag to fix cannibalisation?
Only when the pages are true duplicates that users still need. For two different articles on the same intent, merge them and use a 301 redirect, or differentiate them.
Will I lose traffic when I merge pages?
There can be a short period of movement while Google recrawls both URLs. If you merge the unique content, redirect properly and update internal links, the winner usually takes over the queries both pages were sharing.
How long until I see the effect?
Usually weeks, depending on how often Google crawls the pages. Compare an equal period before and after the change, and focus on clicks and impressions for the whole query family.
Sources
- Search Console Help — Performance report (Search results): Overview and basic setup
- Search Console Help — Performance report (Search results): Common tasks and use cases
- Search Console Help — Performance report (Search results): Advanced filtering and comparison
- Google Search Central — How to specify a canonical URL
- Google Search Central — Redirects and Google Search
- Google Search Central — SEO Starter Guide
Quotes checked against the official pages on 30 October 2026.