Help & Documentation
Browse the full documentation index · Press Esc to close
Opportunities

Cannibalization

Cannibalization detects queries where your own pages are competing against each other in Google. Multiple pages from the same site fighting for one query is rarely good: Google has to pick one to rank highly, link equity gets fragmented, your CTR averages drop, and editorial effort gets duplicated. This report finds those queries automatically and shows the URLs involved so you can consolidate, redirect, or differentiate.

What it measures

Each row is a query for which Google attributed clicks/impressions to more than one URL on your site over the trailing 90-day window. Columns:

  • Query — the search string.
  • Page count — distinct URLs that received any clicks for this query.
  • Impressions / Clicks (90d) — query totals.
  • Top pages — the up-to-5 URLs that received the most clicks for this query, with their per-URL clicks and impressions.

How we compute it

  1. Across the trailing 90 days, we look at every query × URL combination Google attributed to your site.
  2. For each query, we count the distinct URLs that received any clicks, sum impressions and clicks, and capture the top five URLs by clicks.
  3. A query is reported only when more than one URL received clicks for it.
  4. Results are sorted descending by 90-day impressions so the most consequential cannibalisations bubble up.

Scenarios you'll see

Clear winner

One URL has 90%+ of the query's clicks. The "competition" is a tag-archive page or a low-traffic stub. Confirm the winner is canonical and consider noindex-ing the stragglers.

Split decision

Two or three URLs each take a meaningful share. Google is rotating between them. Pick the strongest, 301-redirect the others, or use rel=canonical if you must keep them live.

Intent split

Two pages target legitimately different intents under the same query (e.g. one informational guide, one product). Differentiate titles/H1s so each page owns a distinct intent variant.

Tag/category page bleed

Your CMS auto-generates tag or category pages that out-rank the pillar article. Either canonicalise tags to the pillar or noindex the tag pages.

Old + new versions

Republished article at a new URL but never redirected the old one. Both rank weakly. Add a 301 from the old URL to the new immediately.

Locale duplicates

Multiple country/language variants of essentially the same content appearing for the same query. Hreflang tags should resolve this — verify they're self-referential and reciprocal.

What to do with it

  1. For each cannibalised query, identify the strongest URL by combining clicks, position, and backlinks/authority.
  2. Consolidate: merge content from the loser pages into the winner, then 301-redirect the losers.
  3. Differentiate: when both pages legitimately exist (e.g. guide + product), rewrite titles and H1s so each owns a clearly distinct intent.
  4. Block: if a competing URL is a CMS artefact (tag, archive, paginated page), noindex or rel=canonical to the canonical.
  5. Re-check the query 4–6 weeks after the fix; expect the page_count to drop and rank to firm up.

Caveats & limits

  • Some level of cannibalisation is normal — broad informational queries can legitimately match many pages. Focus first on commercial / high-impression queries.
  • Branded queries naturally hit homepage + sub-pages; that's not a fix-it situation.
  • The 90-day snapshot is rebuilt daily but reflects the trailing window — fixes won't show up in the report for 1–4 weeks even after Google adjusts.

Related reports

  • Top Queries — broader query inventory.
  • Top Pages — to identify the canonical winner candidate.
  • Striking Distance — many striking-distance queries are cannibalised; fix cannibalisation first, then push.
  • Content Decay — decay often correlates with cannibalisation onset.