We use it for Duplicate/Similar/Near-Duplicate Content.
If you have multiple pages for the same content, you can tell to search engines that which one should index. Some time it happens that google may index wrong version.
Above both pages have same content (suppose), it may be possible google may crawl session id version and exclude real page. To avoid this type of issues we should use canonical tag.
Due to duplicate content your crawl budget may be waste, backlinks may be divide and it may effect your ranking.
Examples of Duplicate Pages where we use Canonical
Check out here one by one duplicate content types where we can put canonical tag.
Session ID Pages
When developers add some tracking and other functionality in the website, Due to this session id urls has been created. Generally, these pages are not visible easily but Google find them some time. Mostly these pages are duplicate pages. By using canonical tags you can get rid of these pages.
WWW and Non-WWW Versions Technically www and non-www both are duplicate page for search engines, we should tell to google which version should crawl. You can use here canonical tag and avoid duplicate issue.
Http and Https Version After announcing by Google, https is a ranking factor, most of the webmasters are shifting their site from http to https. But they forgot to tell search engines that they have two versions and index one https version. In that case big blunder happen, for some pages google pick http and for some pages google pick https. So best way is, tell to search engine about this changes. You can use here canonical tag.
UTM Campaign Pages We use utm urls for PPC, Adwords, Fcaebook paid marketing campaigns which are duplicate page. For these page we add canonical tag.
Example: Original: https://www.example.com
Sorting/Filter pages (sub-content)
Suppose user lands on cloths product page which have 50 items and then apply two filters, first is color and second is size and then you shows 17 items from the 50 items. This is a basically sub-content and duplicate content of the product page (cloths). In that case we should use canonical tag. Example: Original: https://www.example.com/cloths
Print and PDF versionPages Many blog sites provide print version and pdf version to users so they can read later and save it. These page also a duplicate content, here we can use canonical tag.
If you are running multiple device versions then use canonical for them.
AMP page is also a duplicate page, we should use canonical tag for these pages too.
Forward slash and without Forward slash pages
Most of the people think Google understand this by itself but for google without slash and with slash both are different url and create duplicate page issue and also impact url structure. That’s is why we use canonical tag here.
Other version of country, language pages (Hreflang pages)
Other language and country urls also a duplicate page, we should tell to search engine about them and use canonical tag for them.
Small letter and capital letter pages
Both are different url for google and we should use here canonical tag. Small letter url should be our main version.
You know we can put different content on both version that’s why search engine take it differently.
Comment reply (in WordPress)
This is very old issue in WordPress sites which is not resolved in many WordPress themes. In that case every comment make their own page which is duplicate url and we should use here canonical tag.
Cross domain (Multiple sites having same content)
I don’t know why website owners do this but it is bad SEO practice making multiple sites on same content. It does not help by the way. If you have these type of sites, must use canonical tag for them.
A/B Test Pages Generally we do small changes for A/B test and which are crawled by search engines. They are also a duplicate pages, in that case we should use canonical tag.
Same section in multiple categories
Sometime ecommerce websites generate multiple categories for the same products and this technique can increase duplicate page issues. For that kind of issues we should use canonical tags.
Default Home Page
Programming language create their default page for home page.
In that case these are canonical pages or duplicate pages. Here we can use canonical to remove duplicate issue.
Can Canonical Tag Effect Crawl Budget?
Yes, it can help you in crawl budget. Google will only crawl your main version and will exclude other duplicate versions. In that case – Google will crawl less pages which help to improve the crawl speed.
Does Google guaranteed consider canonical tag?
No, if google finds that non-canonical version is better than canonical version (original) than google will pick that one.
Sometime google may show both version. It may happen on those cases where content is not much duplicate.
In short, there is no guarantee that google will consider your canonical tag.
Canonical tag pointing back to itself is fine?
Yes, absolutely. I will say must use canonical for All pages.
If you don’t have duplicate content, still use it even for original pages, that is fine. And I will say, it is good seo practice. Because we don’t know future urls, query string urls may be created by others or may be by developers. For future security you can use same canonical page on same url. Google also recommend this.
Many canonical issues can be fixed by using this trick.
For example. Https, Forward slash, string urls, capital urls and many duplicate url issues can be resolved by this trick.
Should we use canonical for pagination and site search?
People point all pagination pages to default page which is wrong because paginations are not duplicate content.