River
Y CombinatorBacked by Y Combinator

Marketing & GrowthFree

Keyword Cannibalization Fix With Redirects

Query clusters with every competing URL, its position history and its inbound links, then a keep, merge or redirect call on each.

Start here

River's cannibalization review reads the query and page rows together with the crawl. Queries where two or more of your URLs both draw impressions become clusters, and each cluster shows every competing URL with its click share, its position over the window, its internal inlink count and its status code. Then one call per cluster: keep both, merge into one, or redirect. The redirect map comes back with the status code on every line, ready to hand to a developer.

The templates that rank for this search are spreadsheets with a tab for pivoting query against page. They find the overlap and stop, because a spreadsheet cannot read the pages or count their inbound links. Overlap is the easy half. Deciding which of two genuinely different pages should own a query, and then writing the redirect so Google treats it as a consolidation rather than a temporary detour, is the half that needs evidence.

Built for in-house SEOs cleaning up years of overlapping posts, agency strategists auditing a new client, and content leads who keep publishing near-duplicates without meaning to. Start from the full query set the Search Console keyword map produces, then run this on the splits it found. It works inside the marketing workspace alongside the rest of the template library. Reach for it after a migration, before a content refresh, or whenever two pages keep trading places for the same term.

Search Console has already told you whether it is a duplicate

Cannibalization is not a concept in Google's documentation. What is documented is canonicalization, and Google describes it as clustering pages it finds to be the same and choosing one as the representative URL. The page it picks gets crawled most regularly and becomes the main source it uses to evaluate content and quality. Your own declaration is a hint rather than a rule, so Google can and does pick a different page than the one you nominated.

That verdict is already in your property, spelled out per URL. The Page Indexing report publishes Duplicate without user-selected canonical, Duplicate where Google chose a different canonical than the user, and Alternate page with proper canonical tag as distinct states. The first two are the ones a consolidation review has to read, and the report is explicit that being marked duplicate is usually good news, because it means the canonical was found and indexed.

Which leaves the redirect, where the status code decides whether anything consolidates. Google states that a permanent redirect is used as a signal that the target should be canonical, while a temporary one is not. Both 301 and 308 count as permanent; 302, 303 and 307 do not. An instant meta refresh reads as permanent and a delayed one reads as temporary. A redirect map without a status column is a wish, and a 302 left in place is the most common reason a consolidation never landed.

How it works

  1. Paste the data

    Search Console query and page rows, plus your crawl with inlink counts and status codes.

  2. River builds clusters

    Queries with more than one competing URL grouped, then each URL scored on its own evidence.

  3. Read the calls

    One verdict per cluster, the survivor named, and every losing URL given a destination.

  4. Ship the map

    Hand the source, target and status columns to a developer, then recheck after the crawl settles.

What you get

  • Query clusters where two or more of your URLs both draw real impressions
  • Each competing URL with its click share, position history and internal inlink count
  • Google's own canonical verdict per URL, so you know what it already deduplicated
  • A keep, merge or redirect call per cluster, with the evidence behind it
  • The redirect map as source, target and status code, ready for a developer
  • Internal links pointing at the losing URL, listed so they can be repointed

Common questions

How do you know it is really cannibalization?

Because two or more of your URLs both draw impressions for the same query in your own data. Topical similarity is not evidence and never gets reported as a split. Pages that never appear for the same query are not competing, however alike they read, and calling them competitors is how consolidation projects delete pages that were earning.

What decides the survivor?

Click share first, then position stability across the window, then the internal links and backlinks pointing at each URL, then whether the page's actual subject matches the query's intent. Where those disagree, the disagreement is the finding and both sides are shown. A page winning clicks on a poor intent match usually means the right page does not exist yet.

Do I have to redirect, or can I keep both?

Keep both is a real verdict and it gets used. Two pages serving genuinely different intents that happen to share a query keep their URLs and get differentiated instead: distinct titles, distinct primary sections, and internal links pointing each at its own term. Redirect is for the case where one page has nothing the other lacks.

What does the redirect map contain?

Source URL, target URL, status code, the cluster it came from, and the internal links that currently point at the source, which the internal linking audit repoints in the same change. Nothing in it is a suggestion: a developer or a CDN rules file consumes it directly. Across a whole site, the content audit with a tested redirect map is the same artifact at scale.

Do I need the crawl, or is Search Console enough?

Search Console alone gets you the clusters. The crawl gets you the survivor, because the internal link counts, the titles, the status codes and the existing canonical tags are what break a tie between two pages with similar click share. Send whatever you have; the output says which calls were made on ranking data alone.

How long until the consolidation shows up?

Google crawls the canonical most often and duplicates less often, so the losing URLs get revisited slowly. Expect the cluster to settle over several crawl cycles rather than in a week. Recheck by sending the next export against the same clusters, the same way the Search Console keyword map compares one month's export against the next.

Keyword Cannibalization Fix With Redirects

Fill in the form and your workspace opens with the work already underway.