You published a guide to choosing a bicycle lock, later "The best bike locks for city commuting", then a product page titled "Bike locks". Now a search for "bike lock" shows a different one of your pages each week. In the SEO community this pattern is called keyword cannibalization.
Keyword cannibalization means that two or more pages on one site target the same need, so they compete with each other for the same queries. This guide shows how to tell whether you really have it, how to find the pages in Search Console, and how to choose between four fixes: merge and redirect, canonicalize, differentiate, or leave alone. It is aimed at site owners and editors who have published steadily for a few years, and at anyone who has just finished a keyword map and wants to avoid creating the problem.
A note before we start: "cannibalization" is an industry term, not an official Google category, and overlap does not always cost you something. Treat what follows as a diagnosis method built on data Google provides. Nothing here promises a position or traffic gain.
Short answer: Keyword cannibalization is when several pages on your site aim at the same search need and compete for the same queries. Find it by filtering a query in Search Console and checking which pages receive its impressions. Fix real overlap by merging pages with a permanent redirect, setting a canonical, or rewriting pages to serve different intents.
Before you begin
You need Search Console access to the property and a spreadsheet. If you have not connected the site yet, follow Set Up Google Search Console: Complete Website Owner Checklist. Allow a couple of hours for a small site and a day for a large one.
The risk lies in the fixes: merging the wrong pages can remove content that served a real need. Before you change anything, export the Performance data and save the text of every page you intend to merge. Do not remove a page until the replacement is live and checked.
What is keyword cannibalization, really?
On a website, overlapping pages show up as:
- Links split between several similar pages instead of building one strong page.
- Titles and snippets that look alike, so searchers cannot tell which result to choose.
- A result that alternates between your pages, which makes tracking any one of them hard.
- Time spent updating three pages when one would do.
It is not the same as duplicate content in the strict sense. Two pages can be completely different text and still target the same need. What Is Duplicate Content? covers the exact-copy case, and Search Intent: Match Your Page to What Searchers Want explains why the need, not the wording, is what counts.
Is it always a problem when two of my pages show for one query?
No. Overlap is only worth fixing when the pages serve the same intent. Compare these cases:
| Situation | Same intent? | Usual decision |
|---|---|---|
| A buying guide and a product category both appear for "bike lock" | Partly: one informs, one sells | Differentiate; link between them |
| Two articles, "best bike locks" and "top bike locks for commuters" | Yes | Merge into one and redirect |
| A page and its printer-friendly copy at another URL | Yes (a duplicate) | Canonical or redirect |
| A brand page and a blog post that both mention the brand name | No | Leave alone |
| Pages for different cities that share a template | Different places | Keep, but make each page distinct |
If the pages answer different questions, there is nothing to fix. If you cannot say how a visitor's need differs between two pages, you have your candidate.
Step-by-step instructions
Step 1: Start from your keyword map
If you have a keyword map (one page per primary phrase), compare it with reality. Keyword Research for Small Business shows how to build one. Sort your pages by topic and look for two rows with the same primary phrase or near-identical titles. Crawvix's on-page checks flag pages whose titles are identical or nearly identical to another page's title, which is a useful early hint (not proof) that two pages are aimed at the same thing.
How to confirm it worked: you have a short list of suspect pairs or groups, each with the shared topic noted.
Step 2: Find the pages behind a query in Search Console
Open the Performance report for Search results. Search Console lets you group the table by dimensions including Queries and Pages. Google defines the queries dimension as grouping data by the search query users typed.
- Set a date range of at least the last three months (the default view), long enough to include changes in which page appeared.
- Add a filter for a Query that contains or equals the phrase you are investigating.
- Switch the table to group by Pages.
- Read the clicks and impressions per page.
If the report shows two or more of your pages with a meaningful share of impressions, you have found overlap. Note the average position for each, but remember the definitions: in the chart it is the average position of your topmost result, and in the table it is the average for the specific URL or grouping in that row. Google Search Console Performance Report: Queries, Pages and CTR walks through the interface.
How to confirm it worked: for each suspect query you have a small table showing every URL that received impressions, with clicks and average position.
Step 3: Check what each page is for
Open the competing pages side by side and write one sentence for each: who is it for, and what can they do after reading? Check the live results for the query too; if they are mostly one page type, pages of the wrong type are usually the ones to change.
Add a verdict column: same job (overlap), different job (fine), one page weak or outdated, or duplicate version.
How to confirm it worked: every pair has a one-sentence purpose for each page and a verdict.
Step 4: Choose the fix for each verdict
| Verdict | Fix | Why |
|---|---|---|
| Same job, one page clearly better | Merge into the better page and 301 redirect the other | Consolidates content and links on one URL |
| Duplicate version of the same content | Redirect or set rel="canonical" |
Tells Google which URL you prefer |
| Different jobs, similar wording | Differentiate titles, headings and content; link between them | Each page keeps its role |
| One page thin or out of date | Update it, or remove it as described in Content Pruning: Update or Remove Old Pages | Avoids keeping a page with no purpose |
Google's documentation on consolidating duplicate URLs lists redirects, rel="canonical" annotations and sitemaps in order of strength: redirects and canonical annotations are both described as strong signals about which URL should be canonical, and the sitemap as a weak one. It also advises using one method rather than mixing, because mixing can produce conflicting URLs. For the choice between the two, see Canonical Tag vs 301 Redirect.
How to confirm it worked: each row of your sheet shows a chosen fix and a target URL.
Step 5: Merge and redirect the overlapping pages
Merging means moving the best parts of the weaker page into the stronger one, then sending visitors and crawlers from the old URL to the new one.
- Keep the page with the best content, URL and existing links. Do not choose the winner on style alone.
- Copy over any useful sections, examples or data from the other page. Do not paste duplicated paragraphs.
- Update the title and H1 of the kept page so it clearly covers the combined topic.
- Set up a server-side permanent redirect from the old URL to the kept URL. Google's redirect documentation lists 301 and 308 as the permanent codes it supports and says permanent redirects tell Google to show the redirect target in search results.
- Point internal links straight at the kept URL, so visitors do not travel through a redirect. Avoid chains; see Redirect Chains, Loops and Incorrect HTTP Status Codes.
- Remove the old URL from your sitemap.
An Nginx example for a single page:
location = /blog/top-bike-locks-for-commuters/ {
return 301 https://example.com/guides/best-bike-locks/;
}
The mechanics for each server and platform are in Nginx and Apache Redirects for SEO and What Is a 301 Redirect?.
How to confirm it worked: the old URL returns a 301 in a single hop to the kept URL, and the kept URL returns 200.
Step 6: Differentiate pages that should both stay
When both pages deserve to exist, make the difference obvious to people and search engines:
- Rewrite titles and H1s so each names its distinct job: "Bike Lock Buying Guide: Which Type Suits You" and "Buy D-Locks and Chain Locks" are clearly different.
- Move shared explanations into one page and link to it from the other, instead of repeating them.
- Give each page a different primary phrase from your keyword map.
- Link between the pair with descriptive anchor text so visitors can reach the other when they need it. See Anchor Text Best Practices and Internal Linking Strategy.
- Write unique descriptions; see SEO Title and Meta Description Guide.
How to confirm it worked: a stranger reading just the two titles and first paragraphs can tell which page to open for which need.
Step 7: Use a canonical for true duplicates
If two URLs show effectively the same content, such as a tracking-parameter version or a print view, the canonical link element or a redirect tells Google which one you prefer:
<link rel="canonical" href="https://example.com/guides/best-bike-locks/">
Google describes the canonical annotation as a strong signal, not a command, and says that without one it will determine for itself which version is best to show. Use it for duplicates, not as a shortcut to hide a page that has a different purpose. Details are in Canonical URL: Fix Duplicate Pages and What Is a Canonical Tag?.
How to confirm it worked: URL Inspection shows the Google-selected canonical matches the one you declared, or you understand why it differs.
Step 8: Re-check after a few weeks
Allow time for Google to recrawl, then repeat the query filter in the Performance report. Look for fewer URLs sharing the query and a clearer main page, and do not judge by one day's data. If a merged page lost impressions on queries it used to cover, add the missing content back. If the old URL still appears, check the redirect; How to Check If a Page Is Indexed by Google helps.
How to confirm it worked: your sheet has a dated before-and-after for each query you fixed, even if the result is "no visible change yet".
Final verification checklist
- You started from Search Console data for a specific query, not from a hunch.
- For every pair, you recorded each page's purpose and decided whether the intent is the same.
- Pages with the same job are merged, redirected or canonicalized, using one method per URL.
- Redirects are permanent (301 or 308), single-hop and tested.
- Internal links, sitemap entries and navigation point to the kept URL.
- Pages that stay have distinct titles, H1s, descriptions and primary phrases.
- The kept page covers the useful parts of the merged page.
- You re-checked the Performance report after a few weeks.
- Your keyword map has no primary phrase assigned to two pages.
Common mistakes to avoid
- Treating every shared query as a problem. Two pages with different jobs can both be useful. Fix only same-intent overlap.
- Deleting the weaker page without a redirect. Links and visitors land on an error. Redirect to the closest equivalent.
- Redirecting to an unrelated page. A redirect should go to a page that answers the same need, not to the home page.
- Using noindex as a quick fix. It removes the page from results but leaves the content problem and any useful links unaddressed. Decide on merge, canonical or differentiate first; see What Does Noindex Do?.
- Combining a canonical and a redirect. Google advises using one method; mixed signals can produce conflicting URLs.
- Chasing average position. It is an average that can mislead. Look at impressions and clicks per page too.
Frequently asked questions
Is keyword cannibalization a Google penalty?
No. It is not a manual action or a penalty. It describes a situation where several of your pages aim at the same need, which can dilute internal signals and confuse searchers.
How do I check for keyword cannibalization in Search Console?
Filter the Performance report to one query, then group the table by Pages. If several of your pages receive meaningful impressions for it, compare their purposes. Remember that only same-intent overlap needs fixing.
Should I merge or canonicalize overlapping pages?
Merge and redirect when two pages do the same job and one should disappear. Use a canonical when both URLs show essentially the same content and must stay reachable, such as parameter versions. Google describes both as strong signals, and advises against mixing them for one URL.
Can two pages from my site ranking for one query be a good thing?
It can be, when they serve different needs, such as a guide and a product page. The test is intent, not the number of results. If you cannot explain the difference, one of them probably needs to change.
Related guides
- Keyword Research for Small Business
- Search Intent: Match Your Page to What Searchers Want
- Canonical Tag vs 301 Redirect
- Content Pruning: Update or Remove Old Pages
- Internal Linking Strategy
- Thin and Duplicate Content: How to Fix It
Official references
- https://support.google.com/webmasters/answer/7576553?hl=en
- https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- https://developers.google.com/search/docs/crawling-indexing/301-redirects
Next step: Try the free website sample to see how your own site does on a few of these checks. This guide provides technical information, not a guarantee of rankings, traffic or index inclusion.
Crawvix Editorial Team
· Published November 4, 2026 · Last updated November 4, 2026 · 10 min read