Keyword cannibalization means two or more of your pages target the same search intent, so neither one ranks as well as a single strong page could. It's one of the most over-diagnosed problems in SEO. Many reports flag any two pages that share a keyword. This guide shows how to separate real cannibalization from harmless overlap, and how to decide whether to merge, redirect, canonicalize or differentiate.
Key takeaways
- Several pages ranking for one query is only a problem when they share intent, swap rankings and underperform.
- Use the Pages tab in the Search Console Performance report to see which URLs share impressions for a query.
- Merge pages with the same intent into one stronger page, then 301-redirect the weaker URL and update internal links.
- Use a canonical only when both URLs must stay live, and avoid dates in slugs so pages can be updated in place.
When it's a problem, and when it isn't
Google's John Mueller has said repeatedly that several pages from one site ranking for the same query isn't a problem in itself. Plenty of healthy sites have a category page and a product page both showing for a product term. That's fine.
It's a real problem when all three of these are true:
- Same intent. The pages answer the same question for the same searcher, for example two blog posts both titled some version of "how to choose a web host."
- Rankings swap. Google alternates between the URLs for the main query, so neither builds a stable position.
- Underperformance. Neither page ranks as well as the topic deserves, or the wrong page ranks (a blog post instead of your service page).
If two pages rank for a shared keyword but serve clearly different intents, like "SEO audit checklist" (informational) and "SEO audit service" (commercial), leave them alone.
How to detect it
Method 1: Search Console performance report
This is the most reliable method, because it shows what actually happened in Google rather than what a tool assumes.
- Open Performance > Search results.
- Set the date range to the last 3-6 months.
- Click + Add filter > Query and enter the term (use "Queries containing" for variations).
- Switch to the Pages tab.
If two or more of your URLs have meaningful impressions for the same query, look closer. Then:
- Click one page to filter by it, open Dates, and compare. Use Compare mode or check each URL in turn to see whether one page's impressions rise as the other's fall. A seesaw pattern is the classic sign.
Note how Search Console counts this. In the chart and the Queries table, two results from your site for one query count as one impression, and position is your top result. In the Pages table, each URL is counted separately. That's why the totals don't match. The Pages tab is the view that reveals cannibalization.
Method 2: site: search
site:example.com "web hosting" choose
A quick, rough check. If several near-identical titles come up, you probably have overlap. It doesn't show rankings, only what's indexed.
Method 3: Content inventory
List your pages with their main target query and intent in a spreadsheet, then sort by query. Duplicates jump out, especially on blogs that have published for years without a plan:
| URL | Target query | Intent | Clicks (6 mo) | Backlinks |
|---|---|---|---|---|
| /blog/choose-web-host-2022 | how to choose a web host | Informational | 140 | 3 |
| /blog/web-hosting-guide | how to choose web hosting | Informational | 410 | 11 |
| /services/managed-hosting | managed hosting | Commercial | 95 | 2 |
Rows one and two are a cannibalization pair. Row three serves a different intent and isn't.
Signs that point to cannibalization
- The URL ranking for a query changes week to week
- A thin or old page ranks instead of your best page
- Several posts with similar titles from different years ("Guide to X 2022", "X guide 2024")
- A blog post outranks the matching service page for a commercial query
Choosing the fix
| Situation | Fix |
|---|---|
| Two pages, same intent, both reasonable quality | Merge into one stronger page, then 301 the weaker URL |
| One page clearly better, the other thin or outdated | 301 redirect the weaker page to the stronger one |
| Both must stay live for users (e.g. near-identical product variants) | Canonical from the duplicate to the main page |
| Pages overlap but could serve different intents | Differentiate: retarget one to a distinct intent |
| Page has no value for search but must exist | Noindex it |
| Wrong page ranks for a commercial term | Strengthen the right page with internal links, and de-optimize the wrong one |
Merge and redirect (most common)
- Choose the winning URL. Usually it's the one with more backlinks, clicks or the cleaner URL. Avoid dated slugs like
-2022. - Move any unique, useful content from the losing page into the winner: sections, examples, data, FAQs. Rewrite so it reads as one page, not two pasted together.
- 301-redirect the losing URL to the winner:
Redirect 301 /blog/choose-web-host-2022/ https://www.example.com/blog/web-hosting-guide/
location = /blog/choose-web-host-2022/ {
return 301 https://www.example.com/blog/web-hosting-guide/;
}
- Update internal links that pointed at the old URL so they go straight to the winner, with no redirect hop.
- Take the old URL out of your XML sitemap.
- Request indexing for the winning URL in URL Inspection.
Google treats a permanent redirect as a strong signal that the target should be canonical. Its site-move guidance suggests keeping redirects "generally at least 1 year," and leaving them indefinitely does no harm.
Canonical instead of redirect
Use a canonical when both URLs have to stay accessible, like a product available in two colors on separate URLs with the same description. A canonical is a hint, so if the pages are actually quite different, Google may ignore it. See canonical tags explained.
Don't use noindex on one page plus a canonical on the same page. They send conflicting signals.
Differentiate
Sometimes both pages deserve to exist but are written too similarly. Make the difference explicit:
- Change the angle. "How to choose a web host" (beginner, informational) vs "Managed WordPress hosting compared" (commercial, specific).
- Rewrite titles and H1s so each targets its own query. Our title tag guide helps here.
- Cross-link them with anchors that make the difference clear, like "if you've already decided on WordPress, see our managed hosting comparison."
- Use internal anchors consistently. Don't link "web hosting guide" to both pages.
Fixing the wrong page ranking
When a blog post outranks the service page for a commercial query:
- Add a prominent, descriptive link from the blog post to the service page.
- Point internal links that use commercial anchors at the service page.
- Make sure the service page's title, H1 and content clearly match the commercial query.
- If needed, adjust the blog post's title so it targets the informational version of the query.
See the internal linking strategy for how to set up these clusters.
Preventing it
- Keep a content map: one row per page with target query and intent. Check it before you publish. A keyword grouping tool can turn a Search Console export into topic groups to start the map from.
- Update instead of republishing. Refresh "Best X 2025" at the same URL for 2026 rather than creating a new post.
- Avoid dates in slugs. You can then update a page without changing its URL.
- Watch auto-generated pages. Tag pages, author pages and category pages with near-identical content can compete with your real articles. Noindex thin taxonomy pages if they add nothing.
Frequently asked questions
Is it bad if two of my pages rank for the same keyword?
Not by itself. Google regularly shows more than one page from a site when both are relevant. It only becomes a problem when the pages serve the same intent and are splitting signals, which you see as unstable rankings or the wrong page ranking.
Will merging pages lose traffic?
Done properly, it usually improves results, because signals from both pages consolidate on one URL. Keep the best content from both, use a 301, and update internal links. Expect some fluctuation for a few weeks while Google processes the change.
Should I use a canonical or a 301 redirect?
Use a 301 when the old URL no longer needs to exist for visitors. It's the stronger signal and gives a cleaner experience. Use a canonical only when both URLs need to stay accessible.
Can I just noindex the weaker page?
You can, but you lose whatever signals the page had, like backlinks and internal links. A redirect passes them on. Noindex suits pages that must exist for users but have nothing useful to add in search.
What to do next
Pick your five most valuable queries, check the Pages tab in Search Console for each one, and list every query where two of your URLs share impressions with the same intent. Merge and redirect the clearest pairs first. Run a free audit to check titles and canonicals on the pages involved. Paid plans include a whole-site crawl that flags likely cannibalization groups across the site.
Related reading
- Squarespace SEO Guide: Settings, Redirects and Speed: A practical Squarespace SEO guide: title formats, page SEO fields, URL slugs and URL mappings, image alt text, speed limits, structured data and Search Console.
- Wix SEO Guide: What You Can and Cannot Control: A practical Wix SEO guide: the SEO panel and settings, structured data, robots.txt and meta tags, the URL Redirect Manager, speed and Search Console set-up.
Sources
Written by the MakeItFlow team
We build the website audit these guides are based on. Every fact is checked against the primary sources listed above and this guide was last reviewed on 30 October 2026 . How we research and check
Check your own site in 30 seconds
Run a free audit covering speed, SEO, DNS, email authentication and security headers — and get a prioritised fix list.