Most websites have duplicate content — and most owners don't know it. The same page accessible at four different URLs, each one splitting the ranking authority that should belong to one. Canonical tags fix this, and they take five minutes to implement.

What a canonical URL is

A canonical URL is the version of a page you've designated as the authoritative, preferred version. You declare it using the rel="canonical" link tag, placed in the <head> of the page:

<link rel="canonical" href="https://yoursite.com/page/">

This tag tells Google: "Of all the versions of this content that exist, this URL is the one you should index and rank." Google consolidates ranking signals — backlinks, crawl data, engagement metrics — to the canonical URL rather than splitting them across duplicates.

The canonical doesn't prevent other URLs from existing or being accessible. It's a signal, not a block. Users can still reach the page via any version; the canonical only affects how Google treats those versions in search.

Why it matters for SEO

When the same content is accessible at multiple URLs, several problems arise:

  • Split ranking authority: if a backlink points to http://yoursite.com/page and another points to https://yoursite.com/page/, the ranking power of each link is credited to a different URL. With a canonical, both are credited to one.
  • Google chooses the wrong version: without a canonical, Google picks which version to index and rank on its own — and it may not choose the version you want. It might rank your HTTP version over HTTPS, or your www version over non-www.
  • Crawl budget waste: for large sites, Google has a finite crawl budget — how many pages it will crawl per day. Crawling four versions of the same page consumes budget that could be spent on unique content.
  • Diluted content signals: engagement signals (clicks, time on page) and backlinks are spread across duplicates instead of compounding on one URL.

Common causes of duplicate content

Many sites have more duplicate content than they realise. Common causes:

HTTP vs HTTPS

http://yoursite.com/page/ and https://yoursite.com/page/ are different URLs. If both are accessible (no redirect from HTTP to HTTPS), you have duplicates. The fix: 301 redirect all HTTP to HTTPS, and set the HTTPS version as canonical.

www vs non-www

https://www.yoursite.com/ and https://yoursite.com/ are different URLs. Pick one as canonical and 301 redirect the other to it. Set the preferred version in Google Search Console under Settings → Preferred domain.

Trailing slash vs no trailing slash

https://yoursite.com/page and https://yoursite.com/page/ are technically different URLs. Pick one convention and stick to it. The other should redirect to the canonical version.

URL parameters

Tracking parameters (?utm_source=email), sorting options (?sort=price), filtering (?color=red), session IDs (?sessionid=abc123) — all create new URLs serving the same underlying content. The canonical on these parameterised pages should point to the clean URL.

Paginated content

Blog archives, product category pages, search results — many sites have page 1, page 2, page 3 of the same content. Each paginated page should have a self-referential canonical. Don't canonicalise all pages to page 1 unless they're truly duplicates.

Printer-friendly versions

Some sites generate separate printer-friendly versions of pages at a different URL. These are near-duplicates. Add a canonical pointing to the main page version.

Syndicated content

If your content is published on other sites (news aggregators, partner sites), ask the syndicating site to add a canonical pointing back to your original. Without it, the syndicated version may outrank the original.

How to implement the canonical tag

Place the canonical tag in the <head> section of the HTML, before the closing </head> tag:

<head>
  <link rel="canonical" href="https://yoursite.com/exact-url-you-want-indexed/">
</head>

Rules for the canonical value:

  • Always use the full absolute URL — including https:// and any trailing slash if that's your chosen convention
  • The URL must be exactly the canonical version — including capitalisation (URLs are case-sensitive)
  • Don't point a canonical to a URL that itself has a different canonical — this creates a canonical chain
  • Don't point a canonical to a URL that redirects — point to the final destination URL directly

WordPress

Yoast SEO and Rank Math both add canonical tags automatically based on your permalink settings. They also let you manually override the canonical for any specific page. If you're on WordPress with a good SEO plugin, canonical tags are likely already handled — check a few pages with Chrome DevTools or a browser extension to confirm.

Shopify

Shopify adds canonical tags to products, collections, and pages automatically. Product pages with variants often have the canonical set to the base product URL, which is correct behaviour.

Custom / static sites

Add the tag manually to each page template, using the page's own URL as the canonical value. If your site has a templating system, use a variable for the current URL so each page gets its own self-referential canonical automatically.

Self-referential canonicals

Even on pages where duplication isn't an obvious issue, adding a self-referential canonical (a canonical pointing to the page's own URL) is good practice. It:

  • Prevents accidental duplication if the page is later accessible via a parameter
  • Explicitly confirms to Google which URL is preferred for that content
  • Prevents issues if the page gets scraped or syndicated without canonical tags being updated

Most SEO plugins add self-referential canonicals to every page automatically. If you're managing meta tags manually, add one to every page as a matter of course.

Cross-domain canonicals

The canonical tag can also point to a URL on a completely different domain. This is used when you syndicate content — you want the canonical to point back to the original publication, even though the content exists on the syndicating site.

<link rel="canonical" href="https://original-site.com/original-article/">

The syndicating site adds this tag to tell Google: "The original version of this content lives on another domain." Google will typically credit the original with the authority and rankings, while the syndicated version may or may not appear separately in results.

Cross-domain canonicals require trust on Google's part — it can ignore them if it suspects manipulation. They work best when there's a clear, legitimate reason for the syndication.

Canonical vs 301 redirect: which to use?

Both canonicals and 301 redirects consolidate duplicate URLs. The key difference:

  • Use a 301 redirect when the old URL should no longer be accessible to users. It takes visitors and crawlers directly to the new URL. The old URL stops being usable.
  • Use a canonical when the duplicate URL must remain accessible. URL parameters are the clearest example — you can't 301 redirect every filtered product URL, but you can canonicalise them to the clean URL.

301 redirects are more definitive than canonicals. Google must follow a redirect; it may choose to override a canonical if it disagrees. For URL consolidation where you have the choice, a 301 redirect is generally stronger than a canonical alone.

In practice, many well-structured sites use both: a 301 redirect from HTTP to HTTPS (not a canonical), from www to non-www (not a canonical), and a self-referential canonical on every page to handle parameter variants.

Common canonical mistakes

  • Pointing all pages to the homepage: this is a common CMS misconfiguration. If every page on your site has a canonical pointing to the homepage, Google sees every page as a duplicate of the homepage and only indexes the homepage.
  • Canonical chains: page A canonicals to page B, which canonicals to page C. Google may not follow the chain to the final canonical. Always point to the ultimate destination URL directly.
  • Canonical conflicts with noindex: a page with both a canonical pointing elsewhere and a noindex tag sends contradictory signals. Generally, use one or the other — not both.
  • Relative canonical URLs: using a relative URL (href="/page/") instead of absolute (href="https://yoursite.com/page/") can cause issues if the page is accessed via different domains or protocols. Always use absolute URLs in canonicals.
  • Canonicalising to a redirecting URL: if your canonical points to a URL that then 301s to another URL, Google has to follow the redirect to reach the actual page. Skip the redirect and point directly to the final URL.

How to check your site's canonicals

In Chrome DevTools: right-click → View Page Source (or Ctrl+U / Cmd+U), then search for "canonical" to see the tag for that page.

With Google Search Console: the URL Inspection tool shows which URL Google has selected as canonical — which may differ from the one you declared. If they don't match, Google is overriding your canonical, usually because it found a stronger signal pointing elsewhere.

With a crawl tool: Screaming Frog's free version (up to 500 URLs) crawls your site and exports canonical data for every page — including cases where no canonical is set, where it points to a different URL, or where it creates a chain.

The SEO checklist includes canonical verification as part of the technical SEO audit process.