A while back the big 3 announced the adoption of a new relationship attribute for the header link tag in order to specify a preferred version of a page where there may be different ways to access it and to help avoid issues with duplicate content. It’s nice to have an option for when you take over a badly built site where there isn’t a budget to rewrite a lot of code and do a million 301 redirects but this is just a band-aid on a larger problem.
<link rel="canonical" href="http://example.com/main-slug/">
This is why architecture of a project is important and if you build it right the first time, you don’t have to worry about this being an issue. There are always times however that a bot will surprise you with some weird entry URL so as a guideline, it’s good to monitor your analytics and do simple 301 rewrites as they happen, if they happen. It’s good to know too that WordPress handles a lot of the heavy lifting for you already so if you have a WP site – you’re pretty much setup already.
Overtime we’ve seen canonical meta tags be useful in ecommerce applications, pagination, or for audits where you may not be able to change core site code. It’s helpful when there are child pages that don’t necessarily need to be indexed so you use the main product page as the canonical link for those, etc. But if you’re building from scratch – you had better not need them!