Guides · 4 min read · Updated 2026-09-08

Canonical tags: the complete guide to rel=canonical, with the mistakes that break it

What a canonical tag does, when you need one, the seven ways sites get it wrong, and how to audit every canonical on a site in one crawl.

A canonical tag is a line in the <head> that says: of all the URLs this content lives at, this one is the original. Search engines treat it as a strong hint (not a directive) when choosing which URL to index and rank, and they consolidate link signals onto it. It is the cheapest fix for the most common technical SEO problem, duplicate URLs, and it’s also one of the easiest things to get subtly wrong, because a wrong canonical fails silently: the page just stops ranking.

<link rel="canonical" href="https://www.example.com/shoes/blue-runner/">

What it does, precisely

  • Tells search engines which URL to show in results when several URLs have the same or very similar content.
  • Consolidates ranking signals (links, engagement) from the duplicates onto the canonical URL.
  • Does not block crawling or indexing on its own. A page can be canonicalised and still crawled; and if the hint is judged wrong, it’s ignored.
  • Is a hint. Google says it treats canonicals as a strong signal alongside redirects, sitemaps, internal links and the URL itself. When those disagree, the canonical can lose.

When you need one

Every indexable HTML page should have a self-referencing canonical. It costs nothing and it protects the page from parameter variants, tracking links and syndication copies you didn’t create. Beyond that:

  • Pages reachable at several URLs (with and without parameters, slashes, capitalisation).
  • Paginated series: each page canonicalises to itself, not to page 1.
  • Faceted listings: filter combinations canonicalise to the base category when they have no search demand of their own.
  • Syndicated content: the copy canonicalises to the original, across domains.
  • Print, AMP and alternate views: canonicalise to the main version.

The seven ways it breaks

1. Missing. Pages with URL parameters and no canonical are the classic case: ?utm_source=newsletter gets indexed as a separate page. Truelint’s Canonicals tab lists indexable pages with no canonical.

2. Canonical to a non-indexable page. The canonical points at a URL that returns 404, redirects, is noindexed, or is blocked. Search engines ignore the hint and pick their own. This usually comes from a migration where the canonical template wasn’t updated.

3. Canonical that disagrees with the directives. A page that is noindex but canonicalises to itself, or canonicalises to a page that’s noindex. The signals contradict; the result is unpredictable.

4. Canonical to the wrong page. Every product canonicalises to the category, or every page to the home page, usually from a template variable that was never set. The whole site consolidates onto one URL and the rest drops out of the index. This is the worst failure because it looks like a small tag.

5. Multiple canonicals. Two rel="canonical" tags with different targets, typically one from the CMS and one from an SEO plugin. Google ignores both.

6. Relative or protocol-mismatched URLs. href="/shoes/" works in principle but breaks when the page is served from a different host or protocol than intended. Use absolute URLs, with the canonical scheme and hostname.

7. Canonical in the body, or set by JavaScript. Tags after the <head> is closed, or injected after render, may be missed. Keep it in the server-rendered head. Truelint reports head tags found in the body and diffs the raw canonical against the rendered one.

Canonical versus redirect versus noindex

You want Use
The duplicate to disappear completely and users sent to the original 301 redirect
The duplicate to stay reachable but not rank canonical to the original
The page to exist for users but never be in the index noindex
A page removed from the index quickly 404 or 410

Canonicals are for pages that should still be visitable: filtered listings, tracking-parameter URLs, syndication copies. If nobody needs the duplicate URL, redirect instead; it’s a directive, not a hint.

Canonicals and pagination

Each page in a series should canonicalise to itself. Canonicalising page 2 to page 1 tells search engines page 2 is a duplicate, and the products or posts only on page 2 fall out of the index. If the series is short enough, a “view all” page can be the canonical for all of them.

Canonicals across domains

Allowed and useful. If you syndicate an article to a partner, the partner’s copy carries a canonical to yours. The same applies to an m. subdomain, a CDN hostname that leaks into the index, or a mirror.

Auditing every canonical at once

A crawl gives you, for every page, the canonical it declares, whether that target was fetched, its status, and whether it’s indexable. In Truelint’s Canonicals tab, the filters are the failure modes above: missing, non-indexable target, disagrees with directives, canonical to another page, multiple. Each finding’s detail names the target URL and its status, so “canonical to a 404” comes with the 404.

The fix is almost always in a template. Find one example of each finding, fix the template, re-crawl, compare.