Skip to content
Searchpedia SEO field notes Callum Bennett Callum

Site ops

Canonical SEO

If you manage a site with any duplicate content, a canonical tag is the cheapest insurance you can buy – but only if you avoid the mistakes I made.

Beginner5 min readUpdated 2026-07-27Notes by Callum Bennett

Start here

  • Add a self-referencing canonical tag to every page to prevent accidental duplicates.
  • For duplicate content, pick one canonical URL and point all duplicates to it using rel=canonical.
  • Avoid multiple canonical tags on one page – Google ignores both.
  • Never canonicalise to a URL that redirects; resolve the redirect first.
  • Use Google Search Console's 'Duplicate without user-selected canonical' report to find issues.

Plain-English take

If you manage any website with product variants, filtered listings, or session parameters, a canonical tag is the cheapest insurance you can buy. It tells Google: of all these URLs that show the same content, this one is the representative version. Google treats rel="canonical" as a strong hint, not a command – it can and does pick a different canonical if it sees conflicting signals like a different URL in the sitemap or stronger internal links pointing elsewhere. For example, an ecommerce site might have /shoes?colour=red, /shoes?colour=blue, and /shoes?size=10. All three products are on the same page, just filtered. Without a canonical pointing back to /shoes/, Google may index each filtered URL, dilute ranking signals, and waste crawl budget. I always add a self-referencing canonical to every page as a baseline – it tells Google that this page is the canonical of itself, which prevents accidental duplicate issues when parameters get appended later. [Canonical tags](/canonical-tags/) are the implementation detail, but the principle is straightforward. Canonicalisation also works across domains – useful if you syndicate content to partners and want the original to be indexed. Google treats sitemap inclusion as a weak signal, so a canonical tag far more reliable.

When it actually matters

Canonical tags matter most when you have multiple URLs serving identical or near-identical content. The classic case is ecommerce category pages with filters. A category like /shoes/ might generate /shoes?colour=red&size=10&sort=price. Each filter combination is a near-duplicate. Canonicalise to the base category URL. I also see this with session IDs – if your CMS appends ?session_id=abc123 to URLs, those are duplicates of the clean version. Set the canonical to the clean URL. Tracking parameters like ?utm_source similarly create duplicates; a self-referencing canonical on the clean URL prevents indexing of those parameterised versions. [Pagination](/pagination/) can also create duplicates – /page/2/ of a category might have the same <title> as /page/3/. Use a canonical or better, implement view-all or rel=next/prev (though Google now uses rel=canonical more). Another scenario is international sites: if you have the same content in multiple languages and use [hreflang tags](/hreflang-tags/), each language version should have its own canonical pointing to itself. Cross-domain duplicates occur when you syndicate content; set the canonical on the syndicated page to point to the original. Google explicitly says canonicalisation can apply across domains. A decision rule: if you cannot 301 redirect a duplicate, use a canonical tag. It is weaker than a redirect but better than nothing. Google may still index the non-canonical version if it believes the canonical is not representative – for example, if the canonical page is of significantly lower quality. This is why aligning your signals – internal links, [sitemap](/sitemap/), and redirects – is critical.

What I got wrong

Early in my SEO work, I assumed a canonical tag was a directive. It is not – Google treats it as a strong signal and can ignore it. I once had a client with two rel="canonical" tags on one page pointing to different URLs. Google ignored both. Now I check that every page has exactly one canonical tag. Another mistake: pointing a canonical to a URL that itself 301-redirects. That creates a chain – Google may follow the redirect and pick the final destination as canonical, but it wastes signals. Now I always resolve the redirect first or point directly to the final URL. I also used to neglect self-referencing canonicals. I thought they were pointless, but they prevent crawl issues when parameters or session IDs get appended by the server. Adding a self-referencing canonical to every page is now in my [technical SEO](/technical-seo/) checklist. Another thing I got wrong: I thought canonical tags only applied to exact duplicates. Actually, near-duplicates count too – Google's definition includes pages that are "identical or similar." For example, a printer-friendly version of an article is a near-duplicate. Use a canonical. Finally, I used to rely on the sitemap to indicate the canonical – but that is a weak signal. The sitemap is useful for discovery, not canonicalisation. The [301 redirect](/301-redirect/) is stronger when you can use it.

Next step

Quick answers

Can Google ignore my canonical tag?

Yes. Google explicitly says rel="canonical" is a hint. If it sees conflicting signals – such as a different URL in the sitemap, strong internal links pointing elsewhere, or that the canonical page is of much lower quality – it may choose a different canonical. Always align your signals: use consistent internal links, avoid chain redirects, and submit the canonical in the sitemap as well.

Should I use a canonical tag or a 301 redirect?

Use a 301 redirect when you want to permanently consolidate two pages and the content is identical. The redirect is stronger and removes the duplicate from the index. Use a canonical tag when you cannot redirect – for example, when you need to keep the duplicate URL accessible (e.g., for filtered pages) but want Google to index only one version.

What happens if my canonical tag points to a redirected URL?

Google will follow the redirect to the final destination and may treat that as the canonical. But it creates an extra step and can delay consolidation. It is better to point the canonical directly to the final URL. If the final URL also has a canonical, Google may follow that chain, but it's less reliable.

Do I need a canonical tag on every page?

Yes, I recommend a self-referencing canonical on every page as a baseline. It prevents accidental duplicate issues when parameters or tracking tags are appended. Many CMSs add one automatically. If yours does not, add it in the <head> element. It is a low-effort safety net that avoids many headaches.

Sources

Primary documentation is linked directly. Anything commercial is marked nofollow.

Notes from Callum Bennett.