What is canonicalization?
Canonicalization is the process of selecting the representative URL, called the canonical URL, from a set of pages with the same or very similar content [1]. Google indexes and usually shows the canonical URL in search results, and treats the others as duplicates.
For example, one product page can be reachable at all of these addresses:
https://www.example.com/shoes/trail-runner
https://example.com/shoes/trail-runner
http://www.example.com/shoes/trail-runner
https://www.example.com/shoes/trail-runner?color=blue
https://www.example.com/shoes/trail-runner?utm_source=newsletterTo a person, these are one page. To a search engine, they are five URLs. Canonicalization is how Google groups them into one cluster and picks the single URL to index [7].
The word is used in two senses. Google canonicalizes on its own, during indexing, whether or not a site gives any instructions [7]. Site owners "canonicalize" by sending signals, such as a canonical tag, that tell Google which URL they prefer [2].
Why do duplicate URLs happen?
Duplicate URLs happen mostly by accident, through normal site features. Google lists the common causes [1]:
- Region variants: separate pages for the US and UK with near-identical text.
- Device variants: separate mobile and desktop URLs.
- Protocol and host variants: HTTP and HTTPS, www and non-www.
- Site functions: sorting and filtering on category pages, which append parameters.
- Accidental variants: a demo or staging copy of the site left publicly reachable.
Google says some duplicate content on a site is normal and is not a violation of its spam policies [1]. Duplicate content is a canonicalization issue, not a penalty.
How does Google choose the canonical URL?
Google chooses the canonical URL by clustering duplicate pages and weighing several signals, then picking the URL it considers most representative [7][1]. The signals include whether the URL uses HTTPS, redirects, presence in a sitemap, and rel="canonical" annotations [1].
Google's own documentation calls the site owner's choice "a hint, not a rule" [1]. Google may pick a different URL than the one declared, and the Page indexing report says so when it happens: "Duplicate, Google chose different canonical than user" [6]. Wikipedia summarizes Google's position the same way: the canonical link element is a hint that Google will "honor strongly", not a directive [5].
Google uses the canonical page as the main source for evaluating content and quality [1]. Search results usually link to the canonical, unless a duplicate is clearly better for the searcher, such as a mobile URL for a mobile user [1].
How do you set a canonical URL?
You set a canonical URL with one of three signals, which Google ranks by strength [2]:
| Method | Signal strength | Best for |
|---|---|---|
| Permanent redirect (301, 308) | Strong | Retiring a duplicate URL entirely |
rel="canonical" link element or HTTP header | Strong | Keeping duplicates reachable (parameters, print views, syndicated copies) |
| Listing the URL in an XML sitemap | Weak | Hinting at preferred URLs across a large site |
The canonical tag goes in the <head> of the duplicate page:
<link rel="canonical" href="https://www.example.com/shoes/trail-runner" />For files that have no HTML head, such as PDFs, the same signal can be sent as an HTTP header [2]:
Link: <https://www.example.com/guide.pdf>; rel="canonical"Google's rules for doing it cleanly [2]:
- Use absolute URLs, not relative paths.
- Put a self-referencing canonical on the canonical page itself.
- Link internally to the canonical URL, not to its duplicates.
- Send one consistent answer: do not declare different canonicals with different methods.
- Do not use robots.txt or the URL removal tool for canonicalization.
- With hreflang, point to a canonical in the same language.
- On JavaScript sites, put the canonical in the HTML source. Google says JavaScript should not change the canonical to something other than the URL in the original HTML [9][2].
Why does Google ignore my canonical tag?
Google ignores a canonical tag when other signals disagree with it or the tag is wrong. Google's troubleshooting guide lists the usual causes [3]:
- A CMS outputs the wrong canonical or redirect.
- Language or region versions have no hreflang annotations, so they look like plain duplicates.
- A misconfigured server returns identical soft 404 pages for different URLs, which look like duplicates of each other.
- A hacked site has injected redirects or cross-domain canonicals.
- Syndicated copies on partner sites are indexable, and a canonical alone did not win.
- Copycat sites duplicate the content without permission.
A common unlisted cause is mixed signals from the site itself: the canonical tag says one URL, but internal links, the sitemap and hreflang all point to another. Google weighs all of them [1], so the tag loses.
What is the difference between a canonical tag and a 301 redirect?
A 301 redirect removes the duplicate for users and search engines, while a canonical tag keeps the duplicate reachable and only asks search engines to index another URL. Use a redirect when no one needs the old URL any more, such as after a migration or a move to HTTPS. Use a canonical tag when the duplicate must still work, such as a URL with tracking parameters or a filtered category view. Google treats both as strong signals [2].
What is the difference between canonical and noindex?
A canonical tag consolidates a duplicate into another URL, while noindex removes a page from the index without pointing anywhere. Canonical passes the duplicate's signals, such as links, to the chosen URL [2]. Noindex asks for the page to be left out of results but names no other URL to receive what the page had earned. Google's canonical guide lists consolidating link signals as a main reason to specify a canonical [2], which noindex cannot do.
Canonicalization also saves crawling: Google lists consolidating duplicate content as a way to stop Googlebot spending crawl budget on copies [8][2].
When was the canonical tag introduced?
The canonical tag was introduced in February 2009 and became an internet standard in April 2012 [4][5]. Since then the main change is in how Google documents it: as one signal among several, all treated as hints.
2009: rel="canonical" launches
In February 2009, Google published "Specify your canonical" on its blog, introducing the canonical link element [4]. Yahoo and Microsoft announced support the same month [5].
2012: RFC 6596
The canonical link relation was documented as RFC 6596, published in April 2012 [5].
Today: signals, not commands
Google's current documentation describes canonical selection as clustering plus weighing signals, with every site-owner signal treated as a hint [7][1]. The Page indexing report now names the outcomes directly, including "Alternate page with proper canonical tag" and "Duplicate without user-selected canonical" [6].
How do you check which canonical Google chose?
To check which canonical Google chose, enter the URL in the URL Inspection tool in Search Console and compare the "User-declared canonical" with the "Google-selected canonical" [3]. If they differ, Google has overruled the site's choice.
For a whole site, open the Page indexing report and look at three statuses [6]:
- Alternate page with proper canonical tag: working as intended.
- Duplicate without user-selected canonical: Google found duplicates with no canonical declared and picked one itself.
- Duplicate, Google chose different canonical than user: Google disagreed with the declared canonical. Investigate these first.
When should you set canonical tags?
Set canonical tags on every indexable page, pointing to itself, and on every duplicate, pointing to the original. Prioritize sites with parameters, filters, syndicated articles and programmatic SEO templates, where duplicates multiply without anyone noticing. Then make every other signal agree: internal links, sitemaps, redirects and hreflang should all name the same URL the canonical tag does.