The Tag That Quietly Does Nothing
Canonical tags fail in a distinctive way: silently. There's no error, no warning, no broken page. The tag sits in your HTML looking correct, and search engines disregard it entirely.
Months later someone notices the wrong URL ranking, or duplicate versions competing, or a page mysteriously dropped from the index. The audit finds a canonical implementation that was subtly wrong from the day it shipped.
Here are the errors that cause it, roughly in order of how often they turn up in real audits.
1. Relative URLs
The specification allows relative URLs in rel="canonical", and they work — right up until something in your stack resolves them against an unexpected base.
<!-- Fragile -->
<link rel="canonical" href="/products/blue-widget/">
<!-- Safe -->
<link rel="canonical" href="https://example.com/products/blue-widget/">
The failure cases are real. A <base> tag elsewhere in the document changes resolution. Content syndicated or scraped onto another domain resolves the relative path against that domain, turning your canonical into an endorsement of the copy. Proxied or CDN-rewritten content can resolve against the wrong host.
Always use absolute URLs including the protocol. There is no upside to relative canonicals.
2. Protocol and hostname mismatches
Your site runs on https://www.example.com. Your canonical tags say http://example.com.
Four variants of every URL potentially exist — with and without www, over HTTP and HTTPS — and a canonical pointing at a variant that redirects is a mixed signal. Search engines have to reconcile a canonical pointing one way with a redirect pointing the other, and reconciliation means they choose, not you.
Pick one canonical hostname and protocol. Make every canonical tag on the site use it. Make every redirect point to it. Make your internal links use it.
This one is usually introduced by a migration — the site moved to HTTPS, the redirects were configured, and a hardcoded canonical template was never updated.
3. Trailing slash inconsistency
/blog/post and /blog/post/ are different URLs. If your canonical uses one form and your internal links, sitemap, and redirects use the other, you've created a discrepancy that has to be resolved by inference.
Decide which form your site uses, enforce it in your redirect layer, and generate canonicals from the same source of truth as your sitemap. The Canonical Tag Generator will produce a properly formatted tag from a URL you paste in, which makes it easy to check what your live pages actually output against what they should.
4. Multiple canonical tags on one page
More common than you'd expect, particularly on CMS platforms with plugins.
A theme outputs a canonical. An SEO plugin outputs a canonical. A caching or optimisation layer outputs another. Now there are two or three rel="canonical" elements on the page with different values.
Faced with conflicting canonicals, search engines typically ignore all of them and fall back to their own judgement. You've lost the signal entirely.
Check the rendered source of your key page templates. Search for rel="canonical" and count the matches. If there's more than one, disable whichever source you don't control.
5. Canonical tags in the body
The tag is only valid in the <head>. A canonical in the <body> is ignored.
This happens more often through accident than design. Unescaped HTML in a CMS content field can close the head early. An invalid element before the canonical can cause the parser to terminate the head. JavaScript that appends a canonical to the wrong node.
The insidious version: the tag looks like it's in the head in your source template, but the browser's parser closed the head earlier because of a malformed element above it. Use browser dev tools and inspect the parsed DOM rather than the raw source — the DOM shows you where the element actually ended up.
6. Canonicalising to a noindexed page
<!-- On page A -->
<link rel="canonical" href="https://example.com/page-b/">
<!-- On page B -->
<meta name="robots" content="noindex">
You've told search engines that page B is the authoritative version, and separately that page B shouldn't be indexed. The instructions conflict. In some cases the noindex propagates to page A through the canonical relationship, removing both pages from the index.
Same problem applies to canonicalising to a URL that's blocked in robots.txt, redirects elsewhere, or returns a 404. A canonical target must be an indexable, self-canonical, 200-status page.
7. Canonical chains
Page A canonicalises to page B. Page B canonicalises to page C.
Chains are unreliable. Search engines may follow one hop and stop, may follow the whole chain, or may ignore the arrangement. The behaviour isn't guaranteed and the correct fix is straightforward: canonicals should point directly at the final destination. If B is really a duplicate of C, then A should point at C too.
The same applies to loops — A points to B, B points to A. That's an unresolvable instruction and it gets discarded.
8. Missing self-referencing canonicals
Every indexable page should include a canonical pointing at itself. This isn't redundant.
Without one, any URL that reaches the page — with tracking parameters, session IDs, uppercase variants, added query strings — can be treated as a distinct URL. A self-referencing canonical tells search engines that ?utm_source=newsletter&utm_campaign=july is the same page as the clean URL.
It also protects against scraping. If someone copies your page and doesn't strip your absolute canonical tag, their copy points back at you.
The main exception is genuinely paginated series and pages that are deliberately consolidated elsewhere — but the default for any standalone page is self-referencing.
9. Canonicalising across genuinely different content
Canonical tags are a hint about duplicates, not a way to consolidate authority between unrelated pages.
Pointing every product variant page at a category page, or pointing a range of distinct articles at a hub page, doesn't transfer ranking power in the way people sometimes hope. Search engines evaluate whether the pages are actually similar, and when they aren't, the canonical is disregarded.
If two pages serve different intents and should both rank, they should both be self-canonical. If one is genuinely redundant, consider whether a 301 redirect is a more honest instruction than a canonical.
10. Parameter and filter URLs left uncanonicalised
Faceted navigation on an e-commerce site can generate enormous numbers of URLs — colour, size, price range, sort order, page number, in every combination.
Left unmanaged, this consumes crawl budget on near-identical pages and splits signals across dozens of variants. The usual approach is a canonical from filtered and sorted URLs back to the unfiltered category page, combined with careful decisions about which filter combinations are valuable enough to be indexed in their own right.
Getting this wrong in either direction is costly — canonicalise too aggressively and you lose pages that had genuine search demand; too little and you flood the index.
A Quick Audit Procedure
Working through this takes an afternoon:
- Crawl the site with any standard SEO crawler and export the canonical URL for every page.
- Look for blanks. Pages with no canonical tag.
- Look for mismatches between canonical and the page's own URL where the page should be self-canonical.
- Check canonical targets resolve with a 200 status, no redirect, no noindex.
- Look for chains by cross-referencing whether any canonical target itself has a different canonical.
- Spot-check the rendered DOM on your main templates for duplicate tags and head-placement issues.
- Compare canonicals against your XML sitemap. Every sitemap URL should be self-canonical. Any URL that isn't self-canonical shouldn't be in the sitemap.
- Check Search Console's page indexing report for pages flagged with a different Google-selected canonical.
That last one is the reality check. It tells you where your declared canonical and the actual chosen canonical disagree.
FAQ
Do canonical tags work in HTTP headers?
Yes. The Link: <url>; rel="canonical" header is valid and is the standard way to canonicalise non-HTML resources like PDFs. Avoid setting both a header and an HTML tag with different values.
Does a canonical tag pass link equity? It consolidates signals to the canonical URL, which is the intent. It isn't a mechanism for arbitrarily redirecting authority between unrelated pages.
Should paginated pages be self-canonical? Generally yes — page two of a series is a distinct page with distinct content. Canonicalising every page back to page one has historically caused pages to be dropped from the index.
Can I canonicalise to a different domain? Yes, cross-domain canonicals are supported and are the standard approach for syndicated content. They're also more frequently ignored than same-domain canonicals, so verify the outcome.
How long until a canonical change takes effect? It requires recrawling and reprocessing, so days to weeks depending on how frequently the page is crawled.
The Takeaway
Almost every canonical failure comes down to the same root cause: the tag says something that contradicts another signal on the site. Make your canonicals, redirects, internal links and sitemap all agree on one URL form, verify the targets resolve cleanly, and most of this class of problem disappears.
Generate correctly formatted canonical tags free with the Canonical Tag Generator at sadiqbd.com — no sign-up, instant results.