/ โ† Keyword Fixes / Keyword Cannibalisation
In this guide
  1. What cannibalisation looks like from the outside
  2. Why sites end up competing with themselves
  3. Reading the evidence properly
  4. Choosing which page keeps the search
  5. The fix, step by step
  6. Platform-specific causes and settings
  7. Edge cases where the usual advice is wrong
  8. Stopping new clashes from appearing
  9. Questions and answers

What cannibalisation looks like from the outside

Most people meet cannibalisation as a mystery rather than a finding. Typical signs in a small business site:

The Keyword Analysis & Gap Tool flags cannibalisation when it maps your ranking keywords and finds more than one of your URLs attached to the same search. That flag is a lead to investigate, not a verdict. Some overlaps are healthy, and some apparent overlaps are really technical duplicates (the same page reachable at two addresses), which need a different fix entirely.

Cannibalisation versus duplicate URLs

If the two URLs show the same content, for example /boiler-servicing and /boiler-servicing?ref=footer, or the http and https versions, that is a duplicate URL problem. It is solved with canonical tags and redirects, and the duplicate content guide covers it. This guide is about two different pages, written separately, that end up aiming at the same search.

Why sites end up competing with themselves

Cannibalisation is almost never one bad decision. It builds up over years of reasonable-sounding publishing. The usual routes in:

How it startsExampleWhat it tells you about the fix
Blogging on the same theme every year"Garden design ideas 2023", "2024" and "2025" posts on a landscaper siteOne evergreen page, updated yearly, with the older posts merged in
A blog post written to support a service page that ended up copying itA post called "Why choose professional boiler servicing" next to the boiler servicing pageGive the post a different question to answer, or fold it into the service page
Archive pages built by the CMSA WordPress tag called "boiler servicing" whose archive page lists every related postStop the archive from being indexed rather than rewriting posts
Near-identical location or product variantsEight town pages with the same text and a swapped place nameThis overlaps with doorway-page risk; see the local keywords guide
Several people writing without a shared listTwo staff members each writing a "how to choose a wedding photographer" articleA keyword-to-page register so every search has one owner
A site redesign that kept old pages aliveThe old /services.html and the new /services/ both liveRedirect the legacy page; this is a migration clean-up

Knowing which route caused a pair of competing pages matters, because the same route will produce the next pair unless you close it. The prevention section at the end returns to this.

Reading the evidence properly

Search Console is the only source of real query data for your own site, and it is where the decision should rest. Third-party rank trackers, including keyword tools, sample results at one moment from one location; Search Console records what actually happened across all impressions.

Look at pages per query, then queries per page

Filtering the Performance report to one query and opening the Pages tab shows which URLs earned impressions. Do it the other way round too: filter to each competing page and open the Queries tab. If page A gets most of its impressions from the target search while page B only touches it occasionally, B is not really a competitor. If both pages draw heavily on the same handful of searches, they are.

Use a regular expression for families of searches

Searches rarely arrive in one exact form. The query filter accepts Custom (regex), which lets you group variants together. For a boiler servicing business, a filter such as this catches the whole family:

boiler (service|servicing)|service (my|a) boiler|annual boiler check

Search Console uses the RE2 flavour of regular expressions, and a pattern matches anywhere in the query unless you anchor it with ^ and $. Queries appear in lower case in the report, so write the pattern in lower case too.

Compare periods, not a single snapshot

The clearest sign of harmful cannibalisation is URL flipping: page A takes the impressions one month, page B the next. Use the date comparison (for example the last three months against the previous three) and look at whether the leading URL changes. A stable split where each page keeps its own share for months is much less worrying than a see-saw.

๐Ÿ’ก Search Console hides some very rare queries for privacy, and the Pages tab counts a URL whenever it appeared, even far down the results. Judge by pages that earn a meaningful share of impressions, not by a URL that appeared a handful of times at position 60.

Check what the results actually show

Search the phrase in a private window. If both of your pages appear on page one, you may be getting two listings, which is not a problem at all. If neither appears on page one while weaker competitors do, and Search Console shows both of yours hovering on page two, the overlap is probably holding both back.

Choosing which page keeps the search

The page that should own a search is not always the one that currently ranks best. Score each competing page on the same handful of questions before you touch anything. A simple spreadsheet row per page works well:

QuestionWhere to find the answerWhy it matters
Which page matches what searchers want?The current first page of results for the searchA sales page cannot win a search where Google shows guides, however strong it is
Which page has links from other sites?Search Console Links report, or a backlink toolExternal links are the hardest thing to replace; keep the URL that has them, or redirect it carefully
Which page converts?Analytics goals, enquiry form sources, sales by landing pageA page that brings in enquiries is worth protecting even if it ranks slightly lower
Which URL is cleaner and more permanent?The address itself/boiler-servicing/ ages better than /blog/2023/05/boiler-tips-v2
Which page is the better piece of work?Read both as a customer wouldThe kept page should be the one you would be proud to send a customer to

When the answers conflict, intent and links usually decide it. If the best content sits on a weak URL and the strong URL has poor content, keep the strong URL and move the good content onto it. Content is easy to move; links and history are not.

The fix, step by step

Step 1

Pull the query and page pairs from Search Console

Open the Performance report for the last three months and export it, or use the Search Console API or the Looker Studio connector for bigger sites so you get query and page together in one table. Keep rows where two or more of your URLs share the same search. Add the Keyword Analysis & Gap Tool cannibalisation findings as a second list, then merge the two so each suspected clash appears once, with clicks, impressions and average position for every URL involved.

Step 2

Confirm the overlap is harmful

For each clash, compare two date ranges and note whether the leading URL changes between them. Then search the phrase in a private window. Two of your pages on page one together is a good outcome, so leave it alone. Mark a clash as harmful only when the URLs take turns, when both are stuck below the first page, or when the wrong page type is showing for a search that should lead to an enquiry or sale.

Step 3

Choose the page that will own the search

Score each competing URL on intent match, external links, conversions, URL quality and content quality. Pick one owner per search and write it in a keyword register, a sheet with one row per target search and exactly one URL beside it. Where the best content lives on the weaker URL, record that too, because you will move the content rather than the address. Check the owner returns a 200 status and is indexable before going further.

Step 4

Decide between merging and splitting

Merge when a customer could not explain how the two pages differ, or when both answer the same question for the same reader. Split when each page has a real, separate job, such as a service page for booking and a guide explaining costs, but the wording has drifted together. Splitting means giving the secondary page a new target search that it can own outright, with its own title, heading and angle, and never repeating the owner page wording.

Step 5

Move the useful content across

For a merge, copy anything valuable from the losing page into the owner: unique facts, worked examples, photos, customer questions and any section that earns its own impressions in Search Console. Rewrite rather than paste, so the owner reads as one coherent page and not two glued together. Drop outdated or repeated passages. Keep the owner page title and main heading focused on the chosen search, and update the visible last-updated date only if the changes are substantial.

Step 6

Redirect or re-aim the losing page

For a merge, add a permanent 301 redirect from the losing URL straight to the owner, not via any other redirect, and remove the losing page from your XML sitemap. For a split, keep the page live but rewrite its title, main heading, introduction and meta description around its new search. Avoid a noindex tag as the main fix on a page with links, and do not point a canonical at a page whose content differs.

Step 7

Repoint internal links and anchor text

Crawl the site or search your CMS for every link to the losing URL and change it to point directly at the owner. Then look at the words used in links: if menus, footers and blog posts all link to the secondary page with the target phrase as anchor text, they are telling Google that page is about the search. Use the target phrase for links to the owner and descriptive, different wording for links to the secondary page.

Step 8

Measure the result over six to eight weeks

Request indexing for the owner page with URL Inspection in Search Console and note the date of the change in your register. Then leave it alone. Rankings often wobble for a few weeks after a merge while Google processes the redirect and recrawls linked pages. After six to eight weeks, compare clicks, impressions and position for the query family against the same period before, looking at the owner URL only.

Platform-specific causes and settings

WordPress

Shopify

Custom and static sites

Add redirects at the server. On Apache, one line per URL in .htaccess is enough:

Redirect 301 /blog/boiler-service-tips /boiler-servicing/

On Nginx, use an exact-match location:

location = /blog/boiler-service-tips { return 301 /boiler-servicing/; }

Remove the old file from the build so it cannot be reached by another route, and regenerate the sitemap.

Edge cases where the usual advice is wrong

โš ๏ธ Merging many pages at once makes it impossible to tell which change helped or hurt. On a small site, work through the most valuable clash first, wait for it to settle, and then tackle the next group.

Stopping new clashes from appearing

The keyword register from step 3 is the single most useful prevention tool. Before anyone writes a new page, they look up the target search. If it already has an owner, the new piece either improves that page or picks a different search.

Once the right page owns each search, the next question is whether it is the right kind of page for that search at all. The search intent guide covers that check, and fixing anchor text goes further into internal link wording.

Questions and answers

1. Is keyword cannibalisation a Google penalty?

No. There is no penalty for having several pages about similar subjects. The problem is practical rather than punitive: when two of your pages look equally relevant, Google has to choose between them, the choice can change from week to week, and links and engagement are split rather than concentrated on one strong page. The outcome is often that neither page ranks as well as a single, clearly focused page would. Fixing it is about clarity, not about avoiding punishment.

2. Should I use a canonical tag or a 301 redirect to fix cannibalisation?

Use a 301 redirect when you merge two pages, because the losing page no longer needs to exist and the redirect passes visitors and most link signals to the page you kept. A canonical tag is meant for pages that are the same or nearly the same, such as a product reachable at two addresses. When two pages clearly differ, Google often ignores a canonical between them, so it is not a dependable way to hide one of two separate pages.

3. Can I just noindex the weaker page?

You can, but it is rarely the best answer. A noindexed page drops out of search, yet it still collects links, and over time Google tends to treat long-term noindex pages as though their links are not followed either, so the value of those links is lost. If the page still helps visitors, keep it and give it a different target search. If it adds nothing, merge it into the stronger page and redirect it instead.

4. How long does it take for rankings to recover after merging pages?

Expect a few weeks of movement before things settle. Google needs to recrawl the old URL, see the redirect, recrawl the page you kept and reprocess the internal links pointing at both. On small sites with few changes this can happen within a couple of weeks; on larger sites it can take longer. Compare six to eight weeks after the change with the same period before it, and avoid making further changes to the same pages while you wait.

5. Two of my pages rank on page one for the same search. Is that a problem?

Usually not. Holding two positions on the first page takes space from competitors and gives searchers two routes to your site. It only becomes a problem if the wrong page is on top, for example a blog post above the page that actually takes bookings, or if the two keep swapping places. In that case adjust titles and internal links to make clear which page should lead, rather than removing one of them.

6. Does cannibalisation affect small sites with only a few pages?

Yes, and it can be more noticeable there. A small site might have a homepage, a services page and a blog post all describing the same main service in almost the same words. With so few pages, each one needs a distinct job: the homepage introduces the business, each service page targets its own service search, and blog posts answer questions around those services. Giving each page a separate target search usually fixes it without deleting anything.

7. What should I do with an old blog post that competes with my service page?

First check whether it earns links or traffic for searches the service page does not cover. If it does, rewrite it to answer a specific question, such as costs or how to prepare, change its title and main heading to match, and link from it to the service page. If it only repeats what the service page says, move anything useful into the service page, redirect the post there with a 301 and update internal links.

Find the pages competing with each other

The Keyword Analysis & Gap tool maps your ranking keywords against your competitors and finds cannibalisation, where more than one of your pages is chasing the same search, alongside intent mismatches and gap opportunities.

Open Keyword Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Keyword Fixes  ·  Fixing a Search Intent Mismatch  ·  Fixing Duplicate Content  ·  Keyword Research Guide  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.