01A strong hint, not a directive
When several URLs show the same content, Google chooses one as canonical. Your rel="canonical" influences that choice but doesn’t guarantee it [1].
Redirects and rel=canonical are strong signals; sitemap inclusion is a weak one. Google gets the clearest picture when all of them agree [2].
02Point at a live, final URL
A canonical should be an absolute URL that returns 200. Canonicals pointing at a redirect or an error are among the mistakes Google warns against [2].
Permanent redirects are themselves a strong canonical signal, so a canonical pointing at a URL that redirects elsewhere sends two conflicting messages [3].
03One method, one answer
Google advises against naming different canonicals for the same page through different methods, and against using robots.txt for canonicalisation [2].
For files without HTML, such as PDFs, the canonical can be sent as an HTTP Link header instead [2].
04Canonicals and hreflang together
Each language version in an hreflang cluster should point its canonical to itself, not to another language. Otherwise the alternates can be dropped [4].
To see which URL Google actually chose, use the URL Inspection tool in Search Console; it shows both the user-declared and the Google-selected canonical [5].
References
- [1]What is URL canonicalization · Google Search Centraldevelopers.google.com/search/docs/crawling-indexing/canonicalization
- [2]How to specify a canonical URL with rel="canonical" and other methods · Google Search Centraldevelopers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- [3]Redirects and Google Search · Google Search Centraldevelopers.google.com/search/docs/crawling-indexing/301-redirects
- [4]Tell Google about localized versions of your page · Google Search Centraldevelopers.google.com/search/docs/specialty/international/localized-versions
- [5]URL Inspection tool · Search Console Helpsupport.google.com/webmasters/answer/9012289