While there isn’t a specific set of steps for fixing cannibalisation on a site and the fix might be different depending on the situation, there are a few things you can do:
Perhaps the most obvious solution (although far from the only one!) is to look at how a page is optimised for the cannibalised keywords, and update it. Ecommerce is a great example for this – imagine you have a few pages for the same product in different colours but the content is, essentially, the same. Make sure the URLs, headers, and metadata are all different to show how each is unique and ensure they don’t overlap in SERPs.
If there are multiple pages showing for the same search intent but you don’t need them all, consider consolidating them into one spot. Rather than two weak pages that are fighting for rankings, you can create one stronger page with better content. Don’t forget to redirect the old pages towards the new, consolidated page.
Use canonical links or noindexing
It’s not always possible to remove pages ranking for the same things, but you can tell Google what page you want them to consider the “original”! Canonical links allow you to tell Google the right page to rank and to assign authority to that content as the original, or best, version. Examples where you may use this include PPC landing pages or CMS restrictions that cause duplicate content.
While using canonical links is preferred, the other option is to implement noindex tags. This allows all pages to exist on the site, but tells Google to crawl only one of them. However, this is an option you should only use in very specific cases, like a tags page on your blog that isn’t really a page you want to rank, but still need on your site.
Create new pages
Sometimes, you have very specific pages, but no overarching page. For example, pages advertising individual products like dresses, ranking for a more broad term like “womens dresses”. This is an opportunity to create a range category page to capture those terms, and ensure the product pages rank for their own, specific terms.