Canonical tags
📖 4 min readUpdated 2026-04-18
Canonical tags tell search engines "this page is the authoritative version." Used correctly, they consolidate duplicate content and focus ranking signals. Used incorrectly, they silently deindex your pages.
The tag
A self-referential canonical (most common) in the <head>:
<link rel="canonical" href="https://example.com/current-url" />
A cross-URL canonical (telling Google "this duplicate should be treated as that URL"):
<link rel="canonical" href="https://example.com/primary-url" />
When to use canonicals
Self-referential on every page
Every indexable page should have a self-referential canonical. This tells Google "this URL is the primary for this content." Doesn't hurt, helps a lot when URL variations sneak in (trailing slashes, case variations, parameters).
Duplicate content across URLs
If the same content lives at multiple URLs (WWW vs non-WWW, HTTP vs HTTPS, parameterized URLs), use canonicals to point duplicates to the primary.
Near-duplicate pages
Location pages that share 90% template text, product pages with trivial variations, canonical the duplicates to a master page if the master is the one you want to rank.
Syndicated content
If you publish your content on other sites (Medium, LinkedIn), those should canonical back to your original.
When NOT to use canonicals
- To redirect users, canonicals don't redirect. Use 301s.
- To hide duplicate content you should actually delete, if the duplicate shouldn't exist, don't canonicalize, just remove it.
- Across truly different pages. Google will often ignore canonicals it doesn't believe. Canonicalizing a product page to your homepage will just be disregarded.
Common mistakes
- Canonicalizing to a 404 or redirect. Canonicals should point to indexable, 200-OK pages.
- Self-canonical on parameter variations.
/page?utm=abc with self-canonical tells Google the UTM version is the primary. Point it to /page instead.
- Multiple canonicals on one page. Google picks one (usually first); don't create conflicts.
- Canonical conflict with other signals. A canonical pointing to X while sitemap and internal links all point to Y confuses Google. Align your signals.
- Wrong domain / protocol. Canonicaling
https://example.com to http://example.com undoes your HTTPS migration. Double-check.
Canonical vs noindex
- Canonical: "this content exists at another URL; consolidate signals there"
- Noindex: "this URL exists but shouldn't be in the index"
Never both on the same page, sends conflicting signals.
Canonical vs 301
- Canonical: both URLs continue to exist and resolve. Google picks the canonical for ranking.
- 301: the old URL stops serving content; users and bots are redirected.
301 is stronger. Use it when a URL should truly go away. Use canonical when both URLs need to exist (e.g., parameter variations).
Debugging
- GSC → URL Inspection → check "User-declared canonical" vs "Google-selected canonical"
- If they differ, Google is overriding your canonical, usually means your signals are conflicting
- Screaming Frog → crawl + check canonical column for inconsistencies
- View-source on the page to verify the tag is actually there (sometimes CMSes overwrite it)