Canonical tag
Also known as: rel=canonical, canonical URL
A canonical tag is an HTML directive (<link rel='canonical' href='...'>) that tells search engines which version of a URL is the authoritative one when multiple URLs serve the same or near-duplicate content. It consolidates ranking signals onto the canonical URL and prevents duplicate-content dilution. Distinct from hreflang, which signals language equivalents that should each rank in their own market.
When to use it
- Multiple URLs serving same content: tracking parameters (?utm_source=…), session IDs, sort/filter combinations, mobile vs desktop subdomains
- Pagination: canonicalize each paginated page to itself (self-canonical), not to page 1
- Syndicated content: cross-domain canonical to credit the original publisher
When NOT to use it
- Different content across pages — that’s not duplication, that’s separate pages
- Across language variants — use hreflang for that, not canonical (the two solve opposite problems)
- To “merge” two competing pages into one — that’s a redirect (301), not a canonical
Common implementation mistakes
- Canonical pointing to a redirect target (Google follows but it adds a hop — point directly to final URL)
- Canonical pointing to a different language (breaks hreflang signals)
- Inconsistent canonicals across paginated sets
- Missing self-canonical on the canonical URL itself
- Conflicting signals: rel=canonical + hreflang + 301 + meta robots noindex all pointing different directions
Validation
- Google Search Console → URL Inspection → “Google-selected canonical” vs “User-declared canonical”
- Tools: Screaming Frog (canonical column), Sitebulb, Ahrefs Site Audit
If Google’s selected canonical disagrees with yours, that’s a signal something’s off — usually weak signal strength or conflicting directives.
- Resocial service →
/services/seo/technical-seo/ - Read on the blog →
/blog/hreflang-vs-canonical/