HomeGuidesSEO › Canonical Tags
SEO · TECHNICAL

Canonical Tags

What the tag actually does, why Google sometimes ignores it, and the conflicts that cause the wrong URL to win.

By the Digital Hangover team · Updated August 2026 · 7 min read
Quick answer: A canonical tag is an HTML link element that tells search engines which URL you consider the main version of a page when the same content is reachable at several addresses. Google treats it as a strong hint, not an instruction — if your other signals contradict it, Google will pick a different URL.

Duplicate content is rarely someone copying you. It is almost always your own site serving the same page at four addresses.

Tracking parameters, print versions, filtered category pages, http and https, with and without a trailing slash. Each one is a separate URL to a crawler, and each one splits the ranking signals that should have been concentrated on a single page.

The canonical tag is how you tell Google which one you meant. It sits in the technical layer of our SEO guide.

How it works

You place a link element in the head of every version of the page, pointing at the URL you want to be the canonical one. All versions carry the same tag, naming the same target.

When Google agrees, it consolidates the signals — links, relevance, everything — onto the named URL, and generally shows that one in search results.

The word that matters: hint. Google's documentation is explicit that rel=canonical is one signal among several, not a directive. If your sitemap, internal links, redirects and hreflang all point somewhere else, Google will follow the weight of evidence instead. When people say "Google ignored my canonical", this is almost always why.

When you need one

SituationCanonical to
Tracking parameters — utm, gclid, session IDsThe clean URL with no parameters
Filtered or sorted category pagesThe unfiltered category, unless the filter has genuine standalone demand
Product reachable through multiple categoriesOne chosen product URL
Print or AMP versionsThe main page
Syndicated content on another domainYour original, from their copy
Every normal pageItself. A self-referencing canonical is good practice and prevents parameter versions from competing.

Why yours might be ignored

Google reports this in Search Console as "Alternate page with proper canonical tag" — or, when it disagrees, as "Duplicate, Google chose different canonical than user". That second one is the message worth investigating.

The usual causes:

  • Internal links point elsewhere. If every link on your site goes to the parameter version, your canonical is arguing against your own architecture. Fix the links — see internal linking.
  • The sitemap lists a different URL. Sitemaps should contain canonical URLs only.
  • The canonical target redirects. Point at the final destination, never at a redirect.
  • Chains and loops. A canonicalises to B, B canonicalises to C. Point everything straight at the final URL.
  • The pages are not actually similar. Canonicalising genuinely different content is a request Google will refuse.
  • The target is blocked in robots.txt. Google cannot verify a page it may not fetch.
  • Relative or malformed URLs. Use absolute URLs including the protocol.

Canonical vs the alternatives

ToolUse it whenEffect on signals
Canonical tagBoth URLs should stay reachable by usersConsolidates onto the target
301 redirectThe duplicate should not exist at allConsolidates, and it is a directive rather than a hint
NoindexThe page is useful to users but should not rankPasses nothing on. Do not combine with canonical.
Robots.txt blockYou want to save the crawl entirelyPasses nothing, and prevents Google reading any tag on the page

If the duplicate serves no purpose for a human, a 301 is stronger and simpler than a canonical. Reach for the canonical when both URLs genuinely need to work.

Getting it right

  1. Use absolute URLs including https and the domain.
  2. One canonical per page. Two conflicting tags means both are ignored.
  3. Put it in the head, not the body. A canonical injected into the body by JavaScript is unreliable.
  4. Self-reference everything by default.
  5. Match your other signals. Sitemap, internal links and canonical should all name the same URL.
  6. Check it in Search Console — URL Inspection shows the canonical you declared and the one Google actually selected. When those differ, believe Google and go find the contradiction.

Where to go from here

Run URL Inspection on your five most important pages and compare the declared canonical with the Google-selected one. Any mismatch is a signal conflict somewhere in your site.

Then open the Pages report and look for "Duplicate, Google chose different canonical". That list is your work queue, in priority order.

Key takeaways: A canonical tag names your preferred URL, and Google treats it as a strong hint rather than an order. It gets ignored when your internal links, sitemap or redirects say something different. Self-reference every page, use absolute URLs, and reach for a 301 instead whenever the duplicate does not need to exist.

Frequently asked questions

What does a canonical tag do?

A canonical tag is an HTML link element in the head of a page that names the URL you consider the main version when the same content is reachable at several addresses. When Google accepts it, ranking signals from all the variants are consolidated onto that one URL and it is the version shown in search results.

Is a canonical tag a directive or a hint?

A hint. Google's documentation is explicit that rel=canonical is one signal among several rather than an instruction it must obey. If your internal links, XML sitemap or redirects point somewhere else, Google follows the weight of evidence and may select a different canonical URL than the one you declared.

Should every page have a self-referencing canonical?

Yes, as a default. A self-referencing canonical costs nothing and prevents parameter-laden versions of the same URL from competing with the clean one. It also makes the intended URL unambiguous when a page is scraped or syndicated.

Why is Google choosing a different canonical than mine?

Almost always because another signal contradicts your tag. Common causes are internal links pointing at a different version, a sitemap listing a different URL, a canonical target that redirects, canonical chains, or the two pages not actually being similar enough for Google to accept the consolidation.

Should I use a canonical tag or a 301 redirect?

Use a 301 when the duplicate URL serves no purpose for a human — it is a directive rather than a hint, so it is stronger and simpler. Use a canonical when both URLs genuinely need to remain reachable, such as a filtered category page that visitors use but that should not rank separately.

Signals that agree with each other

We fix the contradictions, not just the tag

Canonicals, sitemaps and internal links pointing at the same URL — which is what makes them work.

Explore SEO services →