Canonical Tag
I used to think canonical tags were a command, but Google treats them as a strong hint, so you must verify they work and never use them as a substitute for a 301 redirect.
Start here
- Audit your most duplicate-prone pages first: product listings, category pages, and parameterised URLs.
- Always use absolute URLs in your canonical href; relative paths can break when pages move.
- Verify Google respects your canonicals using the URL Inspection tool in Search Console after each change.
- Combine canonicals with 301 redirects wherever possible for a stronger consolidation signal.
- Re-check canonicals after site migrations, platform upgrades, or content merges; they fall out of date easily.
Plain-English take
A canonical tag is an HTML element you put in the <head> of a page to tell search engines which URL you prefer when multiple URLs serve the same or similar content. It looks like <link rel="canonical" href="https://example.com/page" />. Critically, it is a hint, not a command. Google might still index a different URL if it believes that one is better for users. So you should treat it as one tool in your [duplicate content](/duplicate-content/) arsenal, not the final word. I always use absolute URLs because relative ones can misinterpret when pages move. For example, if you have an ecommerce site where /product?id=123&colour=red and /product/123-red both show the same page, you should canonicalise all parameter variants to the clean URL. I also recommend adding a self-referential canonical on every page. It prevents confusion when your own CMS creates alternative versions or when scrapers republish your content. Without it, Google might pick the scraper's URL if it gains more external links.
When it actually matters
Canonical tags matter most when you have many URLs that are near-duplicates. Common cases include faceted navigation on ecommerce sites, where each filter combination creates a new URL; URL parameters like tracking codes or session IDs; print versions of pages; and syndicated content that appears on other domains. In each scenario, canonicals consolidate indexing signals and help crawlers focus on one version. There is a catch: Google will ignore your canonical if it sees conflicting signals, such as a 301 redirect elsewhere, conflicting canonicals, or a page that is too different. I once saw a site with 10,000 product URLs but only 3,000 indexed; the issue was that every filter combination had no canonical pointing back to the main category page. After implementing proper canonicals, indexed pages grew to 8,000 within weeks. For [paginated](/pagination/) series, use rel="next" and rel="prev" alongside a canonical to the first page, though Google now treats pagination chains differently. Avoid using canonicals as a substitute for [301 redirects](/301-redirect/) when the redirect is possible. They also interact with [hreflang tags](/hreflang-tags/): each language variant should have its own canonical pointing to itself, not to one default language. These tags are a core part of [technical SEO](/technical-seo/) for handling duplicate content at scale.
What I got wrong
For years I treated canonical tags as a set-and-forget fix. I would add them, move on, and assume Google would comply. That was naive. I learned from a client who had canonicals pointing to the wrong URL after a site migration; Google indexed the old URLs for months. Now I always verify that Google sees the canonical I set by using the URL Inspection tool in Search Console. Another mistake: not using self-referential canonicals. I thought they were redundant, but they prevent issues when other sites scrape your content and your own CMS accidentally creates multiple versions. A third error was assuming a canonical works like a redirect. It does not. A 301 redirect passes link equity directly; a canonical is more passive. If you have two versions of a page and you want the non-preferred one to stop appearing in search, use a redirect if possible, not just a canonical. Finally, I used to ignore canonicals on paginated archives. That confused Google into treating each page as standalone. Now I always set the first page as canonical for the series, even alongside rel="next/prev".
Next step
Quick answers
What happens if my canonical tag points to a URL that does not exist?
Search engines will treat your canonical as broken and may still index the duplicate page. Always ensure the canonical target returns a 200 status code. Use a crawler like Screaming Frog to audit all canonicals and flag any that point to 404s or redirect chains.
Can I use a canonical tag across different domains?
Yes, you can specify a canonical URL on a different domain, for example when syndicating content. However, it is only a suggestion; Google may still index the syndicated version if it finds it useful. Use cross-domain canonicals sparingly, and only when you trust the target domain and have a clear content partnership.
Does Google always respect the canonical tag I set?
No. Google uses it as a strong hint but may override it if it finds conflicting signals like inconsistent canonicals, misconfigured redirects, or substantial content differences. Always verify in Search Console after implementation, and fix any discrepancies quickly.
Sources
Primary documentation is linked directly. Anything commercial is marked nofollow.
- Google Search Central: Consolidate duplicate URLs — Most authoritative source for how Google handles duplicate URLs and canonical tags.
- Moz Canonicalization Guide — Clear practitioner-friendly overview covering implementation and common use cases.
- Ahrefs Canonical Tags Guide — Practical SEO explanation of implementation pitfalls and step-by-step examples.
- Yoast SEO: Canonical Tag Documentation — Relevant for WordPress users; explains the Yoast implementation and self-referencing canonicals.
Notes from Callum Bennett.