Keyword cannibalization happens when two or more of your pages chase the same search with the same intent, so Google keeps swapping them and neither ranks as well as one strong page would. To find it in Search Console, open Performance, click the search, then open the Pages tab: two URLs whose positions trade places week to week, with clicks split between them, is the sign. Fix it by merging and redirecting, giving one page a different job, or pointing your internal links at the main page, and leave it alone when both pages rank well together.
Hereβs a pattern we see a lot on sites with a few hundred pages. Two years ago you published a guide to kitchen remodel costs, and it ranked near the top of page one. Last spring someone wrote a new post on remodel pricing. Now both hover around position 11, traffic to the topic is flat, and nobody can say which page Google is supposed to show.
Search Console can tell you, if you know where to click. Hereβs how we find keyword cannibalization in Search Console, check a whole site, and decide what to do with each pair of pages, including nothing.
What keyword cannibalization is, and when it isnβt a problem
Google shows a limited number of results from any one site. Its site diversity system means it βgenerally wonβt show more than two web page listings from the same siteβ in the top results, unless a search really calls for more (Google Search Central). When two of your pages answer the same question for the same person, they compete for that space. Rankings often alternate between them, and links and clicks get spread across both.
That doesnβt mean every overlap is a problem. Googleβs John Mueller has pushed back on the idea: βpages arenβt duplicates just because they happen to appear in the same search results page.β His advice: βReduce unnecessary duplication and spend your energy on a fantastic pageβ (Search Engine Journal). We agree. Overlap is normal. Overlap that costs you clicks is what to fix.
| Usually fine | Worth fixing |
|---|---|
| Both pages show in the top results together, so you hold two spots | Both pages sit lower than either did on its own |
| One page clearly leads, the other gets a few stray impressions far down | The two URLs take turns ranking, week to week |
| Different intents: a how-to guide and a service page that sells the work | Two posts that answer the same question in a slightly different order |
| A broad page and a specific one, linked to each other | The wrong page ranks: an old post where you want the service page |
Step 1: Start from the search, then open the Pages tab
In Search Console, open Performance, then Search results. Set the date range to the last 3 months. Then:
- On the Queries tab, click a search that matters to your business. The whole report now filters to that search.
- Switch to the Pages tab. Youβll see every URL of yours that appeared for it, with its clicks, impressions and position.
- If two or more URLs have real impressions, open the filter bar, choose Page, then Compare, and enter the two URLs. Googleβs comparison works on two values of one dimension at a time (Search Console Help).
- Turn on Average position above the chart and set the chart to weekly so day-of-week noise drops out.
You now see one search, one line per page. Cannibalization usually looks like this:
Three signs to look for:
- Two URLs swapping positions over time. One leads for a few weeks, then the other takes over. Neither settles.
- Clicks split between them. If two pages each get a fraction and the total is lower than the topic used to bring in, thatβs lost traffic.
- The wrong page ranking. A thin old post shows up where your service page or your best guide should. Visitors land on the weaker answer and leave.
Step 2: Work backward from the page, using the Queries tab
Starting from a search finds the overlap you already suspect. Starting from a page finds the overlap you donβt. Clear the filters, then:
- On the Pages tab, click one of your important pages. The report filters to that URL.
- Open the Queries tab and note its top 10 to 20 searches by impressions.
- Do the same for the page you think competes with it.
- Searches on both lists, with real impressions on both, are your overlap.
Searches come in variations (βremodel costβ, βremodel priceβ, βhow much does a remodel costβ). To see them together, use a query filter with Custom (regex), for example remodel.*(cost|price)|how much.*remodel. Search Console uses RE2 syntax, and matching isnβt case-sensitive by default (Search Console Help). Then open the Pages tab to see which URLs share the whole group.
Step 3: Check the whole site with an export
Clicking through works for your top 20 topics. For a site of 100 or 500 pages, you need the data side by side. The catch: the reportβs export button gives you queries and pages as separate lists, not which page appeared for which search, and itβs limited to 1,000 rows. The Search Console API returns up to 50,000 rows a day per search type, and the bulk export to BigQuery sends all of it, without that limit (Search Console Help).
For most small and mid-size sites, a spreadsheet add-on or Looker Studio report that pulls from the API is plenty. Ask for query and page together, for the last 3 months. Then:
- Remove branded searches and anything with very few impressions. A page that showed up five times at position 60 isnβt competing.
- Count how many URLs each search has. Keep only searches with two or more.
- Work out each pageβs share of clicks and impressions. Pairs where neither page clearly leads go to the top.
- Group the results by page pair. The same two pages usually overlap on many searches, and that pair is one decision, not twenty.
To skip the spreadsheet, use our free checker. Paste your pages with the keyword each one targets, or load them from Search Console with a free account, and it groups pages that compete and suggests whether to merge, separate or link them. It only sees the pages you give it.
What we found when we checked our own blog
In November 2026 we ran this review on our own 36-post blog. We found two pairs of posts that were about a third alike, plus several posts answering the same question in different words. We merged three posts into the posts that already covered the same question and redirected the old addresses. If it happens on an SEO agencyβs blog, it can happen on yours: posts get written months apart, and nobody checks whatβs already there.
How to fix keyword cannibalization: pick one of four
Every pair gets one of four decisions: leave it alone, merge, retarget or relink. Start with the first question in the chart, because it rules out a lot of pairs.
1. Merge the pages and add a 301 redirect
When both pages answer the same question for the same reader, keep one and redirect the other. Keep the URL with more clicks, more links from other sites and the cleaner address. Before you redirect, move over whatβs worth keeping from the weaker page:
- Sections, examples or steps the main page doesnβt have.
- Data, quotes and original images, with their sources.
- Questions the weaker page ranked for. Check its Queries tab and make sure the merged page answers them.
Then add a permanent (301) redirect from the old URL to the main page. Google treats a permanent redirect as a strong signal that the target should be the URL it shows in search (Google Search Central). Update your own internal links to point straight at the main page, and remove the old URL from your sitemap. Our .htaccess analyzer will catch chains and loops if you redirect on an Apache server.
Don't redirect a merged page to your homepage or a loosely related page. Send it to the page that took over its content. In our experience, a redirect to a page that answers a different question keeps little of the old page's value, and visitors land somewhere that doesn't help them.
2. Make one page the main one and retarget the other
Sometimes both pages deserve to exist and have just drifted into the same search. A cost guide and a βkitchen remodeling servicesβ page are a common pair. Decide which page owns the search, then rewrite the other for a different intent: new title, H1 and first paragraph, and cut the sections that copy the main page. The guide explains what drives the price. The service page sells the work in your area.
3. Point internal links and anchor text at the main page
Your own links tell Google which page you consider the answer. In audits we often find a siteβs menu, footer and older posts all linking to the weaker page with the exact words of the search. Change those links to point at the main page, and use anchor text that describes it. Link the secondary page to the main one, and give links to the secondary page their own anchor text. This goes with every fix above, and on its own itβs often enough for a broad page and a narrow one that need a clear order.
When a canonical tag is the right tool, and when it isnβt
A rel="canonical" tag tells Google which of several near-identical URLs to show. Google treats it as a strong signal, not a command, and the tag is meant for duplicate or near-identical pages (Google Search Central). So a canonical is right when visitors need both versions: a printable page, a filtered product list, an article republished for a campaign. It isnβt right for two different articles on one topic: if they arenβt near-duplicates, Google can pick its own canonical and both keep competing. When you donβt need the second page, Googleβs advice is to redirect it.
For deciding which pages to refresh, keep or remove across the whole site, see our guide to content pruning and refreshes. To stop new overlap before it starts, plan which page owns each topic with our topical map template and our content architecture steps.
Your keyword cannibalization check this week
If youβre not sure overlap is your main problem, our guide on how to read a technical SEO audit report helps you rule out the other usual causes of flat traffic.
FAQs
How do I find keyword cannibalization in Google Search Console?
Open Performance, click a search on the Queries tab, then switch to the Pages tab. If two or more of your URLs have real impressions for that search, compare them and chart average position by week. Positions that keep swapping, or clicks split between two pages, are the signs.
Is it bad if two of my pages rank for the same keyword?
Not always. If both pages show in the top results, or they serve different needs like a guide and a service page, you may be getting more clicks than one page would. Itβs a problem when the pages take turns, both sit lower than one used to, or the wrong page ranks.
Should I use a canonical tag or a 301 redirect to fix cannibalization?
Use a 301 redirect when youβre merging two pages and no longer need the second one. Use a canonical only when the pages are near-identical and visitors still need both, like a print version. Google may ignore a canonical between two different articles.
How long does it take to see results after merging pages?
It depends on how often Google crawls your site. In our experience, redirects are picked up within days to a few weeks, and rankings settle over the following weeks. Check the same searches after 4 to 6 weeks and compare with the weeks before.
Can I find cannibalization without exporting Search Console data?
Yes, for a handful of searches: click each search and check the Pages tab, or filter by page and check the Queries tab. For a whole site you need query and page data together, which the reportβs export doesnβt give you, so pull it through the API with a spreadsheet add-on or Looker Studio.
Sources
- A guide to Google Search ranking systems (site diversity system), Google Search Central
- Google answers SEO question about keyword cannibalization, Search Engine Journal, September 2025
- Performance report (Search results): Advanced filtering and comparison, Search Console Help
- Exporting data, Search Console Help
- Redirects and Google Search, Google Search Central
- How to specify a canonical URL with rel=βcanonicalβ and other methods, Google Search Central