Audit my site
Technical SEOIntermediateChecked against Google docs · Oct 2026

Canonical tags: how Google uses them and how to set them correctly

A canonical tells Google which of several similar URLs should represent the content in search. It is a hint, not a command, so it only works when every other signal agrees with it.

Author: Eugene Serbin, Head of SEO at Semalt Updated: 29 October 2026 Reading time: 15 min Visuals: 4

In short

A canonical URL is the one URL Google picks to represent a group of duplicate or very similar pages. You suggest it with a 301 redirect, a rel="canonical" tag, internal links and your sitemap. Google treats all of these as hints, so the canonical you declare only wins when the other signals point to the same URL.

What a canonical URL is

Google describes it in one sentence: “Canonicalization is the process of selecting the representative –canonical– URL of a piece of content.” When the same content is available at several addresses, Google groups those URLs into a cluster and chooses one of them to show in search. The others stay known to Google but are normally not shown.

Duplicates appear on almost every site without anyone planning them: tracking parameters, sorting options, http and https, www and non-www, URLs with and without a trailing slash. Google is explicit that this is not a crime: “Some duplicate content on a site is normal and it's not a violation of Google's spam policies.” The goal is not to remove every duplicate, but to make sure Google picks the URL you want.

Diagram · A duplicate cluster and its canonical
Duplicate URLs grouped into one canonical Four URLs with the same content (http, www, a tracking parameter and a sort parameter) are grouped into one cluster. Google picks https://example.com/shoes/ as canonical and consolidates signals there. http://example.com/shoes/ https://www.example.com/shoes/ …/shoes/?utm_source=mail …/shoes/?sort=price Duplicate cluster CANONICAL https://example.com/shoes/ shown in search, gets the signals Same content, different URLs
Google groups URLs with the same content and picks one to represent the group. Your job is to make that choice obvious.

Why canonicals matter

Google lists three reasons to specify a canonical:

In practice the second reason matters most. Links and other signals that point to different versions of the same page are combined on the canonical. Without a clear canonical they can be split, and Google may show a URL you did not want, for example one with a tracking parameter.

What Google officially says

“Indicating a canonical preference is a hint, not a rule.”

Google Search Central — Canonicalization. Google adds: “Google may choose a different page as canonical than you do, for various reasons.”

“These methods can stack and thus become more effective when combined.”

Google Search Central — How to specify a canonical URL

The same documentation lists what not to do. Each of these is a direct quote:

All the ways to signal a canonical

There is no single “canonical switch”. Google weighs several signals together, and they are not equally strong.

Chart · Canonical signals, strongest first
Canonical signals by strength 301 redirect: strong signal. rel=canonical: strong signal. Internal links: supporting signal. HTTPS: Google prefers HTTPS. Sitemap: weak signal. 301 redirectrel="canonical" Internal linksHTTPS versionXML sitemap “A strong signal”“A strong signal” supporting signalpreferred by Google“A weak signal”
Labels in quotation marks are Google's own wording. Bar lengths are illustrative: Google does not publish weights.

301 redirect

Google calls a redirect “A strong signal that the target of the redirect should become canonical.” Use it when users do not need the duplicate URL at all: old URLs after a migration, http to https, www to non-www, one trailing-slash format. After a redirect, visitors and Googlebot both land on the main URL.

rel="canonical" link element

For rel="canonical" Google uses the same words: “A strong signal that the specified URL should become canonical.” Use it when the duplicate has to stay available to users, as with filters, sorting, tracking links or printable versions. The tag goes in the HTML <head>; “The rel="canonical" link element is only accepted if it appears in the <head> section of the HTML.”

rel="canonical" HTTP header

Files without HTML, such as PDFs, cannot carry a tag, so the server sends the canonical as an HTTP header instead. A typical case is a PDF that duplicates an HTML page:

Link: <https://example.com/guide/>; rel="canonical"

XML sitemap

Listing a URL in your sitemap is “A weak signal that helps the URLs that are included in a sitemap become canonical.” On its own it settles nothing, but it should never contradict your other signals: list only canonical URLs.

Internal links

Google's advice is to “link to the canonical URL rather than a duplicate URL.” If your navigation links to /shoes while the canonical says /shoes/, you are voting for both. Internal links are one of the most common reasons Google picks a different canonical.

HTTPS

When everything else is equal, Google “prefers HTTPS pages over equivalent HTTP pages as canonical”. Redirect http to https anyway; do not leave it to Google's preference.

How to write a correct canonical tag

The tag itself is one line in the <head>:

<link rel="canonical" href="https://example.com/shoes/">
Code · Wrong vs correct

✕ Ignored or risky

<head>
  <link rel="canonical"
        href="/shoes">
  <link rel="canonical"
        href="https://example.com/shoes/?sort=price">
</head>
<body>
  <link rel="canonical" …>
  • Relative URL
  • Two canonicals that disagree
  • Target with a parameter
  • Tag inside <body>

✓ Correct

<head>
  <link rel="canonical"
        href="https://example.com/shoes/">
</head>
  • Absolute URL
  • Exactly one tag, in <head>
  • Same protocol, host and slash as the real URL
  • Target returns 200 and is indexable
The left version fails in four different ways. Any one of them can make Google ignore the tag.

The rules, in full:

  1. Absolute URL. “Use absolute paths rather than relative paths with the rel="canonical" link element.”
  2. In the <head> only. A tag in the body is not accepted.
  3. One canonical per page. A theme and an SEO plugin that both print a canonical are a classic cause of conflicting tags. When they disagree, Google is likely to ignore them.
  4. Self-referencing on the main page. The canonical page should point to itself. That removes doubt when someone links to it with a parameter.
  5. Exact format. The same protocol, host (www or not), trailing slash and letter case as the URL you actually serve.
  6. A healthy target. The canonical URL returns 200, does not redirect, is not noindex, is not blocked in robots.txt and is listed in the sitemap.
  7. In the server HTML. Do not add or change the canonical with JavaScript. If the raw HTML and the rendered page disagree, you are sending two signals.

Typical canonical scenarios

Tracking and session parameters

?utm_source=…, ?gclid=… and session IDs never change the content. Canonicalise to the clean URL and never use these parameters in internal links.

Sorting and filters

A list sorted by price shows the same products as the default list, so canonicalise to the default. A filter that you deliberately built as a landing page, with its own title, text and search demand (for example “red running shoes”), should have a self-referencing canonical and be linked internally.

Product variants

If colours or sizes have no separate search demand and share one description, canonicalise the variants to the main product. If a variant is searched for on its own and has its own content, let it be its own canonical.

www / non-www, http / https

These variants are best fixed with site-wide 301 redirects. The canonical tag on the final URL then confirms the choice.

Trailing slash and letter case

/page and /page/, /Page and /page are different URLs. Choose one format, redirect the other, and use the same format in canonicals, links and sitemaps.

Pagination

Do not point page 2, 3 and so on to page 1. Each page in a series shows different items, so each one should have a self-referencing canonical. Google no longer uses rel="prev" and rel="next" as an indexing signal. What matters is that the pages are linked to each other with normal links.

Syndicated or republished content

When your article is republished on another site, the copy can carry a canonical pointing to your original (a cross-domain canonical). Like every canonical, it is a hint, so also ask for a visible link to the original.

Separate mobile URLs

With m.example.com, the mobile page has rel="canonical" to the desktop page and the desktop page has rel="alternate" to the mobile one. Responsive design avoids this setup entirely.

Language and regional versions

“Different language versions of a single page are considered duplicates only if the primary content is in the same language”. So the German and French versions are not duplicates of each other. Each one gets a self-referencing canonical, and hreflang links them together. Never point all languages to the English page. Google's rule: “make sure to specify a canonical page in the same language.”

Decision tree · 301, canonical or noindex?
Choosing between a 301 redirect, a canonical and noindex If users do not need the duplicate URL, use a 301 redirect. If they do and the content is the same as another page, use rel=canonical. If the content is different but the page should not appear in search, use noindex. Otherwise index it with a self-referencing canonical. NoYesNo YesNoYes Do users still need theduplicate URL? Is the content the same asanother page? Should this page appearin search? 301 redirectrel="canonical"noindex to the main URLto the main URL, keep it crawlablekeep it crawlable, out of the sitemap Index it self-referencing canonical, in the sitemap
The usual mistake is reaching for noindex when the page is really a duplicate. Duplicates are consolidated, not hidden.

How Google can ignore your canonical

Because the canonical is a hint, Google weighs it against everything else it sees. It is likely to choose differently when:

Canonical statuses in Search Console

Three statuses in the Page indexing report are about canonicals:

StatusWhat it meansWhat to do
Alternate page with proper canonical tagThis URL points to another page as canonical, and Google agreed. This URL is not indexed; the canonical is.Usually nothing. Check that the list contains only URLs you meant to consolidate.
Duplicate without user-selected canonicalGoogle found this URL to be a duplicate, but it has no canonical of its own. Google picked the canonical itself.Add canonicals (or 301s) so the choice is yours, and fix internal links that create these URLs.
Duplicate, Google chose different canonical than userYou declared a canonical, but Google chose another URL.Open URL Inspection, compare the two, then look for the conflicting signals listed above.

In URL Inspection, the two lines to compare are User-declared canonical and Google-selected canonical. When they match, your setup works. When they differ, Google has seen a stronger signal pointing elsewhere.

Check the canonicals on your site

OurSEO Tools crawls up to 1,000 pages and records the canonical and indexability of every URL, so you can spot missing, conflicting and broken canonicals in one run.

69-point checklistTechnical crawlContent analysis

Common mistakes

How to audit canonicals step by step

  1. Crawl the site and export the canonical for every URL.
  2. Find pages without a canonical. Indexable pages should have a self-referencing one.
  3. Find canonicals pointing elsewhere and check that each pair really is a duplicate.
  4. Check every target: status 200, no redirect, no noindex, not blocked, in the sitemap.
  5. Find technical errors: relative URLs, several tags on one page, a tag in the body, a mismatched protocol, host or slash.
  6. Compare raw and rendered HTML on key templates to make sure JavaScript does not change the canonical.
  7. Check internal links and the sitemap: both should use canonical URLs only.
  8. Check Search Console: the three statuses above, then URL Inspection on samples.

FAQ

Does a canonical tag stop a page from being indexed?

Not directly. It tells Google which URL to index from a group of duplicates. If Google agrees, the duplicate is not shown. To keep a page that is not a duplicate out of search, use noindex.

Do I need a self-referencing canonical on every page?

Google recommends it: “Do include a rel="canonical" link on the canonical page itself.” It protects the page when other sites link to it with parameters.

301 or canonical: which one should I use?

301 when users do not need the duplicate URL at all. Canonical when the duplicate must stay available, such as filters, sorting and tracking links.

Can a canonical point to another domain?

Yes. A cross-domain canonical is common for republished articles. It is a hint, like any canonical.

Why did Google choose a different canonical than mine?

Because another signal was stronger: internal links, redirects, the sitemap, or a problem with your target URL. Compare the two URLs in URL Inspection and align all signals with your choice.

Can I canonicalise language versions to the main language?

No. Pages in different languages are not duplicates. Give each one a self-referencing canonical and connect them with hreflang.

Sources

Quotes checked against the official pages on 29 October 2026.