How to spot it
In Search Console, open the Performance report, filter by the query, and look at the Pages tab. Two or more of your URLs getting impressions for the same query, with positions that swap week to week, is the usual sign. A site: search for the phrase shows which of your pages Google thinks match it.
How to fix it
Decide which page should own the search, then:
- Merge the weaker page into the stronger one and 301 redirect it, if they say the same thing.
- Give the other page a search of its own, if it has a real job, and rewrite its title and headings to match.
- Point your internal links for that phrase at the page you chose.
- Use a canonical tag only when the pages are true duplicates.
When it is not a problem
Two of your pages both ranking on page one for a phrase is a win, not cannibalization. It becomes a problem when neither page ranks as well as one clear page would, or when the wrong page shows.