Losing clicks to competitors? Find out exactly why, and what to fix first.

Show me why
Skip to content

Technical SEO

What Is a Canonical Tag in SEO and How to Use It

Add saadrazaseo.com as a preferred source on Google

Free and no obligation. A real reply from me, not a bot.

Short answer: A canonical tag is a line of HTML, <link rel="canonical" href="...">, placed in a page’s <head> to tell search engines which URL is the main version when several URLs show the same or very similar content. Google treats it as a strong hint, not a command. Use it for parameter, filter, tracking and syndicated duplicates, give every indexable page a self-referencing canonical, and use a 301 redirect instead when the duplicate does not need to exist.

65%of mobile pages used a canonical tag in 2024 (69% of desktop pages)HTTP Archive Web Almanac, 2024
2.1%of mobile pages had JavaScript rendering change the canonical found in the raw HTML, a conflict that confuses search enginesHTTP Archive Web Almanac, 2024
Strong vs weakGoogle ranks redirects and rel=canonical as strong canonical signals, sitemaps as a weak oneGoogle Search Central, 2026

This guide is for site owners, developers and SEOs dealing with duplicate URLs on WordPress, Shopify, WooCommerce or custom sites. You will learn what a canonical tag does, when to use it instead of a redirect or noindex, how to add and check it, and how to fix the cases where Google picks a different canonical from the one you set.

What is a canonical tag?

When the same content is reachable at more than one URL, Google groups those URLs and chooses one to show in search: the canonical. The others are treated as duplicates and are usually not shown. A canonical tag is how you tell Google which one you prefer.

It looks like this, inside the <head> of the duplicate page:

<link rel="canonical" href="https://example.com/mens-running-shoes/" />

Duplicate URLs appear on almost every site without anyone creating them on purpose:

  • https:// and http://, or www and non-www versions.
  • Trailing slash and no trailing slash: /shoes/ and /shoes.
  • Filter and sort parameters: /shoes/?colour=black&sort=price.
  • Tracking parameters: ?utm_source=facebook or ?fbclid=....
  • Products reachable through several category paths.
  • Print versions, AMP pages and articles republished on other sites.

For the wider picture, see my guide to avoiding duplicate content.

Why canonical tags matter for SEO

  • You choose which URL ranks. Without a clear signal, Google may show a parameter URL or a print version instead of your clean page.
  • Signals are consolidated. Links pointing to duplicate versions are counted towards the canonical, rather than split across several URLs.
  • Crawling is cleaner. Google still crawls duplicates, but consistent canonicals help it spend less time re-processing them over time. On large shops, this ties into crawl budget.
  • Syndication credit. If your article is republished on another site with a canonical pointing back to you, your original is more likely to be the one that ranks.

Duplicate content is not a penalty in itself. The problem is losing control over which version appears and splitting signals between them.

Not sure if this is hurting your site?

Get the fixes that matter most, in priority order.

Find my blockers

How Google treats canonical tags

Google’s canonicalisation documentation lists several ways to signal a canonical, with different strengths:

MethodGoogle’s descriptionUsers still see the duplicate?Best for
301 redirectStrong signalNo, they are sent to the targetOld URLs, HTTP to HTTPS, www vs non-www, merged pages
rel=”canonical” linkStrong signalYesFilter, sort and tracking URLs; syndicated copies; product variants on one page
Sitemap inclusionWeak signalYesSupporting the other methods on large sites
noindexNot recommended for canonicalisation within a siteYesPages that should not be in search at all
robots.txt blockGoogle says not to use it for canonicalisationYesNever for duplicates; Google cannot see the canonical on a blocked page

Because rel=canonical is a hint, Google weighs it against everything else: which URL your internal links use, which is in your sitemap, whether it redirects, whether it is HTTPS, and whether the pages are really duplicates. When signals agree, your choice is almost always respected. When they conflict, Google picks its own.

Technical rules from the same documentation:

  • The tag only counts in the <head>. A canonical in the <body> is ignored.
  • Use absolute URLs (https://example.com/page/), not relative paths.
  • For PDFs and other non-HTML files, send the canonical as an HTTP header: Link: <https://example.com/guide/>; rel="canonical".
  • Do not use robots.txt, noindex or the URL removal tool to pick a canonical.

When to use a canonical tag, and when not to

Canonical, redirect or noindex? Decide for one URL

Does this URL show the same or nearly the same main content as another URL on your site (or another site)?

Do users need to be able to visit this duplicate URL (for example a filtered view, a tracking link or a syndicated copy)?

Is the preferred URL live (200 status), indexable and not blocked by robots.txt?

Result: self-referencing canonical. The page is unique. Give it a canonical pointing to its own clean URL so parameter and tracking variants fold into it. If it should not be in search at all, use noindex instead.

Result: 301 redirect. Nobody needs the duplicate, so send users and Google to the preferred URL. This suits old URLs, HTTP and www variants, and merged articles.

Result: canonical tag. Add rel="canonical" on the duplicate pointing to the preferred URL, and make sure internal links and your sitemap use the preferred URL too.

Result: fix the target first. A canonical pointing to a redirected, 404, noindexed or blocked URL will be ignored. Pick a live, indexable URL as the canonical, then add the tag.

This flow covers the common cases. Pages that are only partly similar, such as two different products with the same template, are not duplicates and should each keep their own self-referencing canonical.

Cases where people get it wrong

  • Pagination: Google’s pagination guidance says not to use page 1 as the canonical for the whole series. Give each page its own canonical. Google also no longer uses rel=next and rel=prev. My guide to handling pagination covers the full setup.
  • Faceted navigation: canonicalising every filter combination to the main category works for sort orders and minor filters. Filters people actually search for, such as “black running shoes”, may deserve their own indexable page. See faceted navigation.
  • International pages: each language or country version should have a self-referencing canonical plus hreflang. Never canonicalise your UK page to your US page; that tells Google to drop the UK version. My hreflang guide explains the pairing.
  • Different pages: canonicals are for duplicates. Pointing a thin blog post at a strong one to “pass authority” usually gets ignored and can drop the post from search.

How to add canonical tags

WordPress

Yoast SEO and Rank Math add a self-referencing canonical to every post, page and archive automatically. To point a page elsewhere, open the plugin’s Advanced settings for that post and enter the full canonical URL. Check that only one plugin is outputting canonicals; two SEO plugins active together is a common cause of duplicate tags.

Shopify

Shopify themes output a canonical through {{ canonical_url }} in theme.liquid. Products reached through collection paths (/collections/shoes/products/runner) canonicalise to /products/runner by default. Problems usually come from theme edits that hard-code links to the collection path, so check your internal links point to the clean product URL.

WooCommerce and custom sites

WooCommerce relies on your SEO plugin. On custom builds, add the tag in the template that renders the <head>, generate it from a single source of truth for the clean URL, and strip tracking and sort parameters. If you use a JavaScript framework, output the canonical in the server-rendered HTML rather than injecting it later; the Web Almanac figures above show how often rendering changes it. My guide to JavaScript SEO explains why.

Worked example: a Pakistani fashion store with filter URLs

A Lahore clothing store on WooCommerce has a “Lawn suits” category at /lawn-suits/. Shoppers filter by brand, size and price, creating URLs like /lawn-suits/?brand=x&size=m&orderby=price. Search Console shows hundreds of these as “Duplicate without user-selected canonical”. The fix: make sure every filter and sort URL outputs <link rel="canonical" href="https://store.example/lawn-suits/">; remove filter URLs from the XML sitemap; and keep menu and breadcrumb links pointing to the clean category. If “unstitched lawn suits” turns out to be a real search people make, create a proper landing page for it with its own self-referencing canonical, rather than relying on a filter URL.

How to check and fix canonical issues

  1. View source. Open the page, view the source and search for rel="canonical". There should be exactly one, in the head, with an absolute URL.
  2. URL Inspection in Search Console. It shows the “User-declared canonical” and the “Google-selected canonical”. If they differ, Google has overruled you.
  3. Page indexing report. Look at “Duplicate without user-selected canonical”, “Duplicate, Google chose different canonical than user” and “Alternate page with proper canonical tag. The last one is normal and means your tag is working.
  4. Crawl the site. Screaming Frog or Sitebulb flag missing canonicals, canonicals pointing to redirects or 404s, chains, and pages that are canonicalised but linked internally.
  5. Check redirect targets. My free redirect checker confirms whether the canonical URL itself redirects, which is a common hidden conflict.

When Google chooses a different canonical

In my audits, the cause is nearly always conflicting signals: internal links pointing at the non-canonical version, the sitemap listing the duplicate, the canonical URL redirecting, HTTP and HTTPS both resolving, or the “duplicates” being different enough that Google treats them as separate pages. Make every signal point to the same URL and the issue usually resolves after recrawling.

Common canonical tag mistakes

  • Two canonical tags on one page, often from a theme and a plugin together.
  • Every page canonicalised to the homepage after a template error, often during a redesign; my website migration checklist covers the checks. This can remove a whole site from search, so check after theme changes.
  • Canonicals pointing to URLs that redirect, return 404 or are noindexed.
  • Canonical chains: A points to B, which points to C.
  • Staging URLs left in canonicals after a launch. My website launch checklist includes this check.
  • Canonical plus noindex on the same page, which sends opposite signals.
  • Relative URLs such as /page/ that break when the page is reached through another host or protocol.

Frequently asked questions

What is the difference between a canonical tag and a 301 redirect?

A 301 redirect sends both users and search engines to another URL, so the old one effectively disappears. A canonical tag leaves the duplicate visible to users and only asks search engines to treat another URL as the main version. Google describes both as strong signals.

Should every page have a self-referencing canonical?

It is good practice. A self-referencing canonical tells Google that the clean URL is the one to index, which protects you when tracking parameters, session IDs or other variants get linked or shared.

Why is Google ignoring my canonical tag?

Usually because other signals disagree: internal links, the sitemap, redirects, HTTPS, or content that is not really a duplicate. Check the URL Inspection tool, then make every signal point to the same URL.

Can I use a canonical tag across domains?

Yes. If your article is republished on another site, ask the publisher to add a canonical pointing to your original. Google supports cross-domain canonicals, though, like all canonicals, it treats them as a hint.

Do canonical tags pass link value?

When Google accepts the canonical, signals such as links to the duplicate URLs are consolidated to the canonical URL. If Google rejects it, that consolidation does not happen as you intended.

Should paginated pages canonicalise to page 1?

No. Google’s guidance is to give each page in a paginated series its own canonical URL.

Sources

  • Google Search Central, “How to specify a canonical URL with rel=canonical and other methods” (last updated July 2026).
  • Google Search Central, “Pagination, incremental page loading, and their impact on Google Search” (last updated December 2025).
  • HTTP Archive, “Web Almanac 2024: SEO” (2024).

If Search Console is full of duplicate and canonical warnings and you are not sure which ones matter, my technical SEO service sorts them by impact and fixes the underlying templates. For a quick question about one page, get in touch.

Rather have an expert do this for you?

Tell me about your website and goals, and I will reply with a free first review.

Your details are only used to reply to your request. No spam.

Grow my trafficCall