Symptoms to watch for

In Search Console, open the Performance report, filter by one query and switch to the Pages tab. Typical signs:

  • Several URLs share impressions for the same query over the weeks.
  • The position swings widely, for example between 6th and 18th.
  • The wrong page ranks: an old blog post instead of your service page.
  • Two pages carry nearly identical title tags.

What is not cannibalization

Two of your pages ranking together in the top five take up more of the SERP: that is a win, not a problem. Likewise, two pages on the same topic with different intents, such as "heat pump cost" and "how a heat pump works", do not cannibalize each other. Cannibalization means identical intent and both pages underperforming.

Five ways to fix it

  • Merge: combine the best of both pages into the stronger one and 301-redirect the other.
  • Differentiate: point the secondary page at another intent, with a new title and angle.
  • Canonicalize: if both pages must stay live, designate the main one with a canonical tag.
  • De-optimize: remove the keyword from the secondary page's title and H1.
  • Redirect internal links: make every anchor containing the keyword point to the main page only.

Prevention beats cure

Keep a keyword map that assigns each target query to exactly one URL, and check it before anything new goes live. Blogs that have published for years are the most exposed: a post titled "Roof Replacement Cost in 2022" followed by "How Much Does a New Roof Cost?" in 2025 is enough to create the problem. Updating the existing article every year works better than writing a new one, and it keeps every backlink the original page has earned.