What is a canonical URL (canonical tag)
Also known as: canonical URL, rel=canonical, canonicalization
A canonical URL is the version Google picks as the main one when the same content exists at several addresses, and it is the one that may appear in results. A site can indicate its preferred version with the rel=canonical tag, with redirects or through the sitemap. These are signals, not orders: Google considers them and may choose another version if they contradict each other.
A sneaker page responds at four addresses: example.com/blue-sneaker, the same URL with ?color=blue, another with an ad click parameter and the old http version. The links the product earns are spread across all four.
The store redirects http to https, adds to every version a rel=canonical pointing to example.com/blue-sneaker and makes internal links use only that address. The signals concentrate on one version, and that is the one that shows up in search.
Why the same content has several addresses
- Versions with and without www, or on http and https.
- Campaign and click parameters, such as utm and gclid.
- Store filters and sorting, which create a URL for every combination.
- Print, mobile or AMP versions.
- The same text published in more than one place on the site.
The methods, from strongest to weakest
The methods stack: using two or more increases the chance of the preferred version appearing in results.
| Signal strength | When to use it | |
|---|---|---|
| Redirect | Strong | When the duplicate no longer needs to exist |
| rel=canonical on the page | Strong | When the versions need to stay live |
| rel=canonical HTTP header | Strong | For non HTML files, such as PDFs |
| Sitemap inclusion | Weak | As reinforcement, together with the others |
Google's best practices
- Put a rel=canonical on the canonical page itself, pointing to itself.
- Use an absolute URL, with https and domain.
- Do not use robots.txt to pick a canonical: the blocked URL can still be indexed without its content.
- Do not use noindex to pick the canonical within a site: it removes the page from Search entirely.
- Do not specify different URLs in different methods, such as one in the sitemap and another in rel=canonical.
- Make internal links point to the canonical.
- With hreflang, specify a canonical in the same language as the page.
- Do not let JavaScript change the canonical set in the HTML.
When Google picks a different one
Search Console's page indexing report has a status for it: Duplicate, Google chose different canonical than user. It usually signals a contradiction: the tag points to one version, but internal links, the sitemap or redirects point to another. It also happens when pages are not as identical as they seem.
The URL Inspection tool shows side by side the canonical declared by the site and the one Google selected, which is the starting point for finding the contradiction.
Is a canonical tag required?
No. Google says none of the methods is required and that, without any indication, it identifies the best version to show. Still, it is worth specifying to control which address appears in search, consolidate link signals into one URL, simplify each piece of content's metrics and keep the crawler from wasting time on copies.
Frequently asked questions
What is a canonical URL?
The main version of a page that exists at several addresses, the one Google picks to show in results.
Does every page need rel=canonical?
It is not required, but Google recommends that the canonical page carry a rel=canonical pointing to itself, which avoids doubt when copies with parameters appear.
Canonical or 301 redirect?
If the duplicate does not need to exist, redirect. If both need to stay live, such as store filters, use rel=canonical.
Does Google always respect the canonical tag?
No. It is a strong signal, but Google may choose another version, especially when the site's signals contradict each other.
Can I use noindex instead of a canonical?
Google does not recommend it. Noindex removes the page from Search entirely; to indicate the preferred version within a site, use rel=canonical.
Related terms
- IndexingIndexing is the stage where Google analyzes the content of a page it has already crawled, works out what it...
- SitemapA sitemap is a file, almost always in XML, that lists a site's pages, videos and other files and provides...
- robots.txtRobots.txt is a text file at the root of a site that tells search engine crawlers which URLs they may or may...
- SERPSERP stands for search engine results page, the page a search engine shows after a query. On Google, it...
- AMPAMP is an open source framework for building light, fast pages, launched by Google in 2015 as Accelerated...
- Structured dataStructured data is a block of code, invisible to visitors, that describes a page's content in a standard...
Rodrigo Fávaro
Founder of ROO3, a marketing and technology agency in São José do Rio Preto, Brazil. Builds AI products running in production (Tobia, gerar.app, Pense Mercado) and maintains the AI Benchmark, a public ranking of AI models.
X @rodmf LinkedIn rodrigofavaroMarketing you can measure, from the ad to the sale.
ROO3 builds and runs paid media, SEO and websites with real targets, dashboards and numbers. The first conversation is free.