Sign in Start free

Find and Fix Query Cannibalisation

Cannibalisation is usually diagnosed by eye and fixed by deleting one page, which is often wrong. The real signal is instability - Google alternating between URLs for the same query because neither is a clear best answer. Deleting the wrong one loses history; the fix is usually structural, changing which page targets what and how they link.

CATEGORY
Content strategy
FORMAT
cannibalisation-audit.md
STEPS
6
PRICE
Free - no account
WHEN TO REACH FOR THIS

Use when a query keeps swapping between two of your URLs in the results, or a page that once ranked well has drifted down without any obvious cause.

The skill file

cannibalisation-audit.md
---
name: cannibalisation-audit
description: Use when a query keeps swapping between two of your URLs in the results, or a page that once ranked well has drifted down without any obvious cause.
---

# Find and Fix Query Cannibalisation

Cannibalisation is usually diagnosed by eye and fixed by deleting one page, which is often wrong. The real signal is instability - Google alternating between URLs for the same query because neither is a clear best answer. Deleting the wrong one loses history; the fix is usually structural, changing which page targets what and how they link.

## What you need first

- Search Console query-by-page export for 6 months
- the URL that ranks today for each affected query
- internal anchor text pointing at each candidate page

## Method

1. For each query, list every URL that has received impressions. Two or more URLs with meaningful impressions on the same query is the pattern worth investigating.
2. Check volatility rather than overlap alone: if the ranking URL changed 3 or more times in 6 months, that is genuine cannibalisation. Stable overlap where one page clearly dominates is usually harmless.
3. Decide the winner by inbound equity and conversion, not by which currently ranks. The currently ranking page is often the accidental winner of a coin toss.
4. Audit internal anchor text. Mixed anchors pointing at both URLs with the same phrase is frequently the actual cause, and repointing them fixes it without touching either page.
5. Differentiate the loser rather than deleting it - retarget it to an adjacent query the cluster needs anyway, and rewrite its title and H1 to match that instead.
6. If the loser cannot be differentiated because the topic genuinely is one page, merge and 301 into the winner, then update every internal link to point at the target directly rather than through the redirect.

## What this produces

A per-query resolution recording the designated winner, the anchor text changes, and whether the second URL was retargeted or merged.

## Where this goes wrong

- calling every overlap cannibalisation when stable overlap with one dominant URL costs nothing
- keeping internal links pointing through the redirect chain after a merge, which dilutes the signal you just consolidated
- deleting the page that currently ranks lower even though it holds all the external links

---

From the QuQi skill library - https://www.quqi.io/skills/cannibalisation-audit
Free to download · no account, no email

What you need first

  • Search Console query-by-page export for 6 months
  • the URL that ranks today for each affected query
  • internal anchor text pointing at each candidate page

Method

  1. 01 For each query, list every URL that has received impressions. Two or more URLs with meaningful impressions on the same query is the pattern worth investigating.
  2. 02 Check volatility rather than overlap alone: if the ranking URL changed 3 or more times in 6 months, that is genuine cannibalisation. Stable overlap where one page clearly dominates is usually harmless.
  3. 03 Decide the winner by inbound equity and conversion, not by which currently ranks. The currently ranking page is often the accidental winner of a coin toss.
  4. 04 Audit internal anchor text. Mixed anchors pointing at both URLs with the same phrase is frequently the actual cause, and repointing them fixes it without touching either page.
  5. 05 Differentiate the loser rather than deleting it - retarget it to an adjacent query the cluster needs anyway, and rewrite its title and H1 to match that instead.
  6. 06 If the loser cannot be differentiated because the topic genuinely is one page, merge and 301 into the winner, then update every internal link to point at the target directly rather than through the redirect.

What this produces

A per-query resolution recording the designated winner, the anchor text changes, and whether the second URL was retargeted or merged.

Where this goes wrong

  • calling every overlap cannibalisation when stable overlap with one dominant URL costs nothing
  • keeping internal links pointing through the redirect chain after a merge, which dilutes the signal you just consolidated
  • deleting the page that currently ranks lower even though it holds all the external links

Use this skill in your own AI

The download is a plain markdown file with the name and trigger in its frontmatter. Where an assistant supports skills it can load itself, that frontmatter is what it reads to decide this one applies.

Claude Code Save it as ~/.claude/skills/cannibalisation-audit/SKILL.md and Claude loads it on its own when what you are doing matches the trigger line. Put it in .claude/skills inside a project instead if the whole team should have it.
Claude Upload the file in the skills section of your settings. Once it is there it applies itself in any conversation where the trigger fits, so you do not have to remember it exists.
ChatGPT There is no skills format to install into, so paste the file contents into a Project instruction or a Custom GPT instead. It then applies to every chat in that project rather than only the one you paste it into.
Anything else Paste the markdown into the chat before your question. It works in any assistant, it just has to be pasted again each time.

Questions about this skill

When should I audit rather than delete one of the two pages?

When you cannot say which page Google is treating as the answer. Deleting by eye loses history and often removes the URL carrying the external links. The signal worth acting on is instability, meaning the ranking URL keeps changing. Stable overlap where one page clearly dominates costs nothing and is not worth touching.

What do I need in hand before starting?

Six months of Search Console query-by-page data, the URL that ranks today for each affected query, and the internal anchor text pointing at each candidate. The anchors are the input most people leave out and frequently the actual cause. Without six months you cannot count how often the ranking URL changed, and that count is the diagnosis.

What do I end up with, and which part of it gets used?

A per query resolution naming the winner, the anchor text changes, and whether the second URL was retargeted or merged. The anchor changes are what ships, and often the only change needed. Retargeting the loser to an adjacent query the cluster wants anyway usually beats merging, because you keep the URL and its history.

What ruins this most often?

Choosing the winner by which URL ranks today. That page is often the accidental winner of a coin toss while the other holds the external links and the conversions, so decide on inbound equity and conversion instead. After a merge, repoint every internal link at the target directly rather than leaving them running through the redirect you just created.

More in Content strategy