What is Canonical URL?
A canonical URL is the "master" version of a page you tell Google to index when the same or similar content is reachable from multiple URLs. Declared via <link rel="canonical" href="…" /> in the <head>, it consolidates ranking signals and prevents duplicate-content dilution.
How Canonical URL works
- Common duplicates: tracking parameters (?utm_source=…), print versions, session IDs, HTTP vs HTTPS, www vs non-www.
- Always self-canonical on the primary version — do not omit the tag on the "winning" URL.
- Canonicals are a hint, not a directive — Google can override them if the target URL contradicts (blocked, noindex, dead).
- Cross-domain canonicals work for syndicated content (Medium repost → your blog original) but Google respects them less than same-domain.
- Broken canonicals (pointing to a 404 or redirect) waste crawl budget and often cause the wrong version to be indexed.
Example
An ecommerce PDP reachable at /products/blue-shirt?ref=email should canonicalize to /products/blue-shirt — otherwise Google indexes every tracked variant and dilutes the page's ranking power.
Frequently asked questions about Canonical URL
What happens if I set no canonical URL?
Google picks one automatically — usually correctly, but sometimes it chooses the wrong version. Explicit canonicals remove the guesswork.
Should the canonical URL be absolute or relative?
Always absolute (full https://…). Relative canonicals work but are error-prone across subdomains and staging environments.
Can I canonicalize to a different page than the current one?
Yes — that's the whole point. Duplicate or near-duplicate pages should canonicalize to the master version so link equity consolidates.
Related terms
Indexation
Indexation is the process of Google adding your page to its searchable index. A page must be crawled, deemed valuable, and pass duplicate-content checks before it's indexed. GSC's Coverage report shows every indexation state — indexed, discovered-not-indexed, crawled-not-indexed, and excluded.
Robots.txt
robots.txt is a plain-text file at your domain root (yoursite.com/robots.txt) that tells crawlers which URLs they can and cannot request. It controls crawl budget, blocks staging paths, and points crawlers at your sitemap — but it does not prevent indexation.