Detection: Search Console Pages report
Filter by query in the Performance report. If two URLs show impressions for the same head term, you have cannibalization. Sort by impressions desc to find the worst offenders first.
Fix 1: Merge and 301
Combine the two pages into one stronger asset. 301 the loser to the winner. Preserves backlinks, consolidates authority.
Fix 2: Differentiate intent
If both pages have unique value, retarget one. 'Best running shoes' (commercial) vs 'How to choose running shoes' (informational). Update titles, H1s, and internal anchor text.
Fix 3: Canonical the weaker page
Use rel='canonical' to point the weaker page at the winner. Loses some link equity but is faster than rewriting content.