Keyword cannibalization happens when two or more pages on your site target the same search intent. Google then has to guess which one to rank. Usually, neither page ranks as well as one focused page would. You fix it by choosing one page to own each intent. Then you merge, re-target or combine the others.
Not every overlap is a problem, though. In this guide, I show you how to tell real cannibalization from harmless overlap, how to find it with tools you already have, and how I choose the right fix for each case.
What Keyword Cannibalization Actually Is
The name is a little misleading. The real issue is not two pages sharing a keyword. It is two pages trying to meet the same search intent (what the searcher actually wants) for the same query.
Take a page about “how to clean a cast iron pan” and a page about “best cast iron pans”. Both mention cast iron. But they serve different needs, so they rarely compete. Two blog posts called “How to Clean Cast Iron” and “Cast Iron Cleaning Guide” are a different story. They answer the same question. Google will usually pick one and treat the other as a weaker option.
Common causes include:
- Publishing a new post on a topic you already covered, often years later, by a different writer.
- Category pages and blog posts both chasing the same buying phrase.
- Location or service pages with almost the same copy, with only the town name changed.
- Tag and archive pages that repeat the same set of posts under a keyword-like heading.
- Articles with a year in the title (“best CRM 2023”, “best CRM 2024”) left live side by side.
In my experience, the first cause is the most common by far. Sites that publish a lot for years almost always have some of it.
Cannibalization vs Duplicate Content
The two overlap but are not the same. Duplicate content is the same or very similar content at more than one URL. Google handles it by choosing a canonical (the main version). Cannibalization can happen between pages with completely different wording that simply answer the same question. If your pages are near copies, the fixes in our guide to how Google handles duplicate content apply as well.
When Multiple Pages Ranking Is Fine
Seeing two of your URLs for one query is not always a problem. Before you change anything, check whether the overlap is actually costing you. I always do this check first, because the wrong fix can hurt more than the overlap itself.
Overlap is usually fine when:
- Both pages rank well together. If your site holds positions 2 and 4 for a query, you own more of the results page. Merging could leave you with one result instead of two.
- The query is broad or has mixed intent. A search like “running shoes” can fairly show a category page and a buying guide. Some people want to shop and some want advice.
- It is a branded query. Searches for your brand name will naturally show your homepage, about page and product pages.
- The overlap is on small long-tail queries. Two pages getting a few impressions each for a loosely related phrase is normal. It is not worth acting on.
Google has also said it generally tries not to show more than two results from the same site in the top results for a query. So two of your pages showing together is expected. It is not a sign that something is broken.
The warning signs look different. Watch for the ranking URL swapping back and forth week to week. Watch for a page you care about being replaced by a weaker one. Or watch for a group of pages that all sit on page two while no single page breaks through.
How to Find Keyword Cannibalization
You do not need a paid tool to find most cases. Search Console, a few manual searches and a simple list of your content will cover most of it.
1. Search Console: Query to Pages
The Performance report is the most reliable source. It shows which of your URLs Google actually showed for a query. If you are new to it, our beginner’s guide to Google Search Console explains the report layout.
- Open Performance > Search results. Set the date range to the last 3 to 6 months, so short-term ups and downs even out.
- Click Add filter > Query, choose Exact query, and enter the term you want to check.
- Switch to the Pages tab below the chart. Every URL listed has shown in search for that exact query.
- Compare clicks, impressions and average position for each URL. Then click one URL to filter by it and switch the chart to a weekly view. Look for times when impressions drop on one page as they rise on the other.
Run this for your most valuable queries first. Those are the terms tied to leads or sales, and any query where a page recently lost ground.
You can also go the other way. Filter by a page, look at its top queries, then check whether any of those queries list a second URL. This is my quick way to check a page that has dropped.
Keep in mind that Search Console hides some rare queries for privacy. Average position is also an average across many searches. Treat it as a strong pointer, not an exact measure.
2. Site: Searches
A site: search shows which of your pages Google links with a phrase. It is a rough check, not a ranking report. But it is fast, and it catches pages that Search Console might not show.
site:example.com cast iron cleaning
site:example.com intitle:"cast iron"
site:example.com/blog/ "seasoning"
If several results look like they answer the same question, add them to your review list. Pay attention to the titles. Two pages with almost the same title tag are a clear warning sign.
3. A Content Inventory
Search data only shows overlap that already affects rankings. A content inventory (a full list of your pages) catches pages that compete so badly that neither one shows up.
Export your URLs from your CMS, sitemap or a crawler into a spreadsheet with these columns:
- URL and title tag
- H1
- Main keyword or topic
- Search intent (informational, commercial, transactional, local)
- Clicks and impressions from Search Console over the last 3 to 6 months
- Number of other domains linking to it, from any backlink tool you use
Sort by the main keyword column. Any keyword with two or more URLs that share the same intent is a candidate. This sheet also becomes the starting point for the keyword-to-URL map I cover later.
How to Fix Keyword Cannibalization: Choosing the Right Option
There are five main fixes. The right one depends on two things. Do both pages deserve to exist? And do they really serve the same intent?
| Situation | Best fix |
|---|---|
| Same intent, both pages have useful content | Merge into one page and 301 redirect the other |
| Similar topic, but the intents can be separated | Make the intents different |
| A weaker page is chasing the wrong term | Re-target it to a different keyword |
| Near-duplicate pages that must both stay live | rel=”canonical” to the preferred page |
| A page users need but search does not | noindex |
Before picking one, decide which page is the “keeper”. Look at the page’s fit with the intent first. Then look at its clicks and sales, its links from other sites, and how complete its content is. The keeper is not always the older page or the one with more traffic. It is the one that best answers the query, or can most easily become that page.
Merge and 301 Redirect
This is the most common fix, and in my experience usually the one that works best. You combine the useful content from both pages into the keeper. Then you permanently redirect the other URL to it.
A 301 redirect tells Google the old URL has moved for good. Google’s guide to consolidating duplicate URLs calls permanent redirects a strong signal for which URL should be canonical. That is what you want when the old page is being retired.
When merging:
- Bring over any section, example or data point the keeper is missing. Do not just delete the weaker page’s content.
- Keep the keeper’s URL unless it is clearly worse, for example a URL with a year or an old product name in it.
- Redirect to the most relevant matching page, not to the homepage.
- Leave the redirect in place for the long term. Removing it later throws away the signals it passes.
- Update internal links so they point straight at the keeper, not through the redirect.
Worked example: a garden supplies shop has “How to Prune Roses” from 2021 and “Rose Pruning Guide for Beginners” from 2024. Search Console shows both URLs for “how to prune roses”. The ranking page switches every few weeks, and both are stuck around positions 8 to 15. The 2021 post has more links from other sites. The 2024 post has better photos and a section on seasonal timing. The fix is to move the timing section and photos into the 2021 post, refresh its title, and 301 the 2024 URL to it.
Differentiate Intent
Sometimes two pages look like rivals but could serve different needs if each one were sharpened. In that case, keep both. Make the difference obvious to readers and to Google.
That means changing more than a word or two. Rework the title tag, H1, introduction and main sections so each page has a clear, separate job. Updating the snippet helps too. Our guide to writing meta descriptions Google actually uses covers how to make each page’s search listing different.
Worked example: an accounting firm has a service page, “Small Business Bookkeeping Services”, and a blog post, “Small Business Bookkeeping: A Complete Guide”. Both rank for “small business bookkeeping”. The service page should own the buying intent: pricing, what is included and a contact form. The blog post should become a do-it-yourself guide aimed at “how to do bookkeeping for a small business”. It should link to the service page for readers who would rather hand the work off.
Re-Target a Page
Re-targeting helps when a weaker page has drifted onto a term another page owns, but still has value of its own. You move it onto a related keyword that no other page on the site covers.
Worked example: a software company has a main page on “project management software”. It also has a blog post titled “Best Project Management Software” that competes with it. Its audience data shows interest from agencies. The blog post can be re-targeted to “project management software for agencies”, with agency-specific points and examples. The main page keeps the broad term.
Re-targeting only works if people really search for the new angle and you rewrite the content to match it. Changing the title alone rarely changes how Google sees the page. This is a mistake I see often.
Use rel=”canonical”
A canonical tag tells Google which version of near-duplicate pages you prefer. The other version stays live for users. It suits cases like a printer-friendly page, a paid campaign landing page that copies a normal page, or product variants that differ only in colour.
<link rel="canonical" href="https://example.com/rose-pruning-guide/">
Canonicals are signals, not commands. If the two pages are very different, Google may ignore the tag and pick its own canonical. So canonicals do not fix two truly different articles on the same topic. Merging or making the intents different does.
Noindex
A noindex tag removes a page from Google’s results completely. Use it for pages that help users but should not appear in search. Examples are thin tag archives, internal search results, or a thank-you page that happens to repeat a target phrase.
Google advises against using noindex to choose a main page within your own site. It blocks the page from search completely instead of combining signals. I treat it as a last resort for cannibalization. And do not combine noindex with a canonical tag pointing elsewhere, because the two send mixed signals.
Internal Links and Anchor Text Fixes
Internal links are one of the clearest signals you control about which page matters for a topic. Many cannibalization problems are partly caused by internal links. Some can be solved by fixing the links alone.
- Find every internal link to the competing pages. A site crawler or the Links report in Search Console will list them.
- Point keyword-rich anchors at the keeper. Anchor text is the clickable words of a link. If ten posts link to the weaker page with the anchor “how to prune roses”, change those links to point at the page you want to rank.
- Give the second page its own anchors. When you split the intents or re-target, link to the second page with anchors that match its new focus, such as “pruning climbing roses”.
- Link from the second page to the keeper. A link in the text from the narrower page to the main one shows how they relate.
- Check menu and footer links. A menu item like “Bookkeeping” that points to the blog post instead of the service page sends a mixed message across the whole site.
After a merge, update links that point to the redirected URL. Google can follow the redirect. But direct links are cleaner, faster for users and easier to look after.
Preventing It With a keyword-to-URL Map
Most cannibalization comes from publishing without checking what already exists. A keyword-to-URL map fixes that. It gives each search intent to exactly one page. If you plan content in groups, my guide to pillar pages and topic clusters shows how to give each page in a cluster its own job.
A simple map has one row per main keyword or intent, with columns for:
- Main keyword and close variations
- Search intent
- The single URL that owns it
- Second pages that support it, and the keywords they own instead
- Date last reviewed
Make the map part of your publishing routine:
- Before writing a new piece, search the map for the target keyword. If a page already owns it, update that page instead of starting a new one.
- When briefing writers, give them the exact keyword and the URLs they must not overlap with.
- Avoid URLs with a year in them for topics that stay relevant. Update the same page each year instead of publishing a new one.
- Review your top queries in Search Console every quarter, using the query-to-pages check, to catch new overlap early.
The map does not need special software. In my view, a shared spreadsheet that everyone who publishes actually checks beats a perfect document no one opens.
What to Expect After a Fix
Rankings rarely settle the day you make a change. Google has to recrawl both URLs, process redirects or canonicals, and look at the page again. On a small site that can take a few weeks. On a large site, pages that are crawled less often may take longer.
Track the target query in Search Console with the same exact-query filter you used to find the problem. Success looks like one URL taking over the impressions for that query, with a steadier average position. If the old URL still appears months later, check three things. Does the redirect return a 301 status? Have the internal links been updated? Is the old URL out of your XML sitemap?
Conclusion
Keyword cannibalization is only a problem when pages chasing the same intent hold each other back. Confirm it with Search Console’s query-to-pages view. Decide which page should own the intent. Then merge, split, re-target or combine the rest, and support the decision with consistent internal links.
A good next step: pull your 20 most valuable queries into Search Console today and run the exact-query check on each one. If you find pages that are close copies rather than different angles, read our guide to duplicate content and SEO before you choose between a redirect and a canonical.



