The rel=canonical element helps us determine which version of a URL is the original when multiple version of a URL returns the same content. This can happen when, for example, you append a tracking notation to a URL. Two discrete URLs then exist, yet both have identical content. By implementing a rel=canonical, you can tell us the original one, giving us a hint as to where we should place our trust. Do not use this element in place of a proper redirect when moving content.
Take for example the following URLs
- http://over50choices.co.uk/funeral-planning/wills-and-probate
- http://www.over50choices.co.uk/funeral-planning/wills-and-probate
- https://www.over50choices.co.uk/funeral-planning/wills-and-probate
- https://www.over50choices.co.uk/funeral-planning/wills-and-probate?ref=twitter
- https://www.over50choices.co.uk/funeral-planning/wills-and-probate/amp
Each URL is referring to the same page content for Legal Services, however, the URLs themselves are slightly different.
This can be an issue for search engines because the engine itself doesn’t necessarily know which page should be the source of truth, and it may just choose a canonical URL algorithmically for you.
In other words, if you have a web page accessible by multiple URLs, or different pages with similar content (ie. separate mobile and desktop versions), you should specify to a search engine which URL is authoritative (canonical) for that page.
In the Google Search Console, you can find the option to set URL parameters, once your website is verified. What this does is give you the ability to tell Google which parameters you would like to consider passive. What this means is that you can tell Google, “whenever you see this URL parameter, just treat it like it doesn’t exist”.
These are 2 good sources of what I'm talking about Google and Moz
