Canonical tags are the technical SEO concept most likely to be implemented wrong on a real-world site. Done correctly, they consolidate duplicate URLs into one indexed page that accumulates all the ranking signal. Done incorrectly — and they are often done incorrectly — they can de-index half your site, dilute authority across variants, or quietly point Google to URLs you did not intend. This guide covers the mechanics, the common scenarios, the mistakes that bite real sites, and how Google actually picks canonicals when your signals conflict.
What rel=canonical Does
The canonical tag tells search engines: "If you find multiple URLs with similar content, treat this URL as the master copy." It consolidates indexing signal, backlinks, and ranking authority at the canonical URL. The non-canonical variants typically drop out of the index but remain accessible to users.
<link rel="canonical" href="https://example.com/blue-shoes/" />
Place the tag in the <head> of every indexable page. Use absolute URLs, not relative paths. Match HTTPS/HTTP, trailing slash, and case exactly — Google treats /page/ and /Page as different URLs.
When You Need Canonicals
- URL parameters —
?utm_source=twitter,?sort=price, session IDs that produce different URLs for the same content. - Printer or AMP variants — alternative renderings of the same content.
- Faceted navigation — filter and sort combinations on category pages.
- Pagination — paginated archive pages where you want the first page treated as canonical (debated; many SEOs now self-canonicalize each page).
- Syndicated content — when your article is republished on a partner site, the partner uses a canonical pointing to your original.
- Cross-protocol or cross-subdomain duplicates — http/https, www/non-www variants (also handled by 301s and HSTS).
Self-Referencing Canonicals
Every indexable page should self-canonicalize. If https://example.com/blue-shoes/ is the URL you want indexed, the page at that URL should contain:
<link rel="canonical" href="https://example.com/blue-shoes/" />
This explicitly tells Google "this is the version" rather than relying on Google to infer it. Self-canonicals also defend against accidental parameter pollution from social shares, ad campaigns, and external linkers appending tracking parameters.
How Google Chooses a Canonical
Google does not blindly follow your canonical tag. It evaluates multiple signals:
- Your declared
rel=canonical - Redirects (301s carry strong signal)
- Sitemap URL entries
- Internal link patterns (which version do other pages link to?)
- External backlinks (which version is the external web linking to?)
- hreflang signals
- HTTPS status
- URL "cleanliness" (shorter, parameter-free URLs preferred)
When signals conflict, Google picks what looks like the consensus. Check Search Console's URL Inspection tool to see Google's chosen canonical for any URL — it is often not the one you declared if signals conflict.
Cross-Domain Canonicals
Cross-domain canonicals legitimately consolidate content republished across domains. The original publisher keeps the indexing signal; the syndicating site transfers it via canonical to the source.
<!-- On partner-site.com/article -->
<link rel="canonical" href="https://original-site.com/article/" />
Caution: cross-domain canonicals are extremely powerful. Misuse can de-index one of your two domains. Use them only when you genuinely want the source domain to receive all credit.
hreflang & Canonical Interaction
For multilingual sites, each language version should self-canonicalize and use hreflang to declare its siblings.
<!-- On example.com/fr/page -->
<link rel="canonical" href="https://example.com/fr/page/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
Pointing the French page's canonical at the English version will de-index the French page. Each locale needs its own canonical to itself.
Common Mistakes
- Canonical to a noindex page. Conflicting signals — Google may follow the canonical and then exclude both pages.
- Canonical to a 404 or redirected URL. Wasted signal. Verify the destination returns 200 OK.
- Canonical mismatch between sitemap and on-page. Sitemap lists URL A; the page at A has canonical pointing to B. Pick one and align.
- Mixed case or trailing-slash inconsistency.
/Page/versus/pageare different URLs to Google. - Multiple canonical tags on one page. Google may ignore all of them. Validate with a crawler.
- Canonical in the body instead of the head. Often happens with JavaScript-injected canonicals — Google may not pick them up.
- Pointing every page to the homepage. Common WordPress plugin misconfiguration. Erases your entire content from search.
- Canonicalizing paginated series to page 1. Per Google guidance in recent years, each pagination page should self-canonicalize so its contents are independently indexable.
Auditing Canonicals
Run a site crawl and export: each URL, its declared canonical, the canonical's status code, whether the canonical matches the URL (self-canonical), and any conflicts with sitemap entries. Common findings:
- Pages with canonicals pointing to 404s or redirects
- Pages with no canonical at all
- Sitemap URLs whose canonicals point elsewhere
- Inconsistent trailing slash or HTTPS in canonical declarations
Then use Search Console's URL Inspection on a sample to confirm Google chose the canonical you intended.
Generate Clean Metadata for Every Page
Build consistent canonical, OG, and meta tags from one form — copy/paste-ready output.
Meta Tag Generator →