What a canonical tag is for
The same content is frequently reachable at more than one address. A product appears under two categories, a page answers to both http and https, a tracking parameter creates a fresh URL every time someone shares a link, and a printable version duplicates the article entirely.
A canonical tag names which of those is the master copy. It tells a search engine to consolidate the signals — links, relevance, ranking history — onto one address rather than splitting them across several near-identical ones.
It is a hint rather than an instruction. Engines weigh it against their own signals, including internal links, redirects and your sitemap, and they sometimes choose a different URL than the one you declared. The [msm_tool slug="canonical-checker"] reports what your page is actually saying, which is the part you control.
Duplicate content is not a penalty
Worth clearing up, because the phrase duplicate content penalty causes a lot of unnecessary anxiety. Ordinary duplication — the same page at several addresses on your own site — is not punished. It is deduplicated.
The cost is dilution rather than punishment. If five URLs serve one article, links and relevance are spread across five and none of them ranks as well as one would. A canonical tag is how you collect them.
Penalties exist for deliberately scraped or spun content published at scale, which is a different behaviour entirely and not what a canonical tag addresses.
The four ways it goes wrong
- Pointing every page at the homepage. The most damaging error, usually from a template that hard-coded the value. It tells the engine every page on the site is a copy of the homepage, and they drop out of results accordingly.
- Pointing at a page that redirects, 404s or is blocked. The declared master has to be reachable and indexable. Naming a dead address wastes the tag and confuses the signal.
- Multiple canonical tags on one page. Common when a theme and a plugin both add one. Conflicting declarations mean the engine ignores both and picks for itself.
- Canonicalising genuinely different pages together. Paginated results, product variants and location pages are often distinct pages serving distinct queries. Collapsing them removes the ones that were ranking.
Self-referential is the sensible default
Most pages should declare themselves as canonical. It costs nothing, it settles the question of which parameter-laden variant is the real one, and it prevents another site's scraped copy from being treated as the original.
The declaration should use the absolute URL, in the form you actually want indexed — the right protocol, the right host, consistent about trailing slashes. Half the canonical problems in the wild are a page correctly canonicalising itself to a subtly different string.
Paste the head of a page and the checker reports every canonical link it finds: whether one exists, where it points, and whether that address is the page itself. Give it the page's own URL alongside and the comparison becomes exact — self-referential, pointing elsewhere, or pointing at another domain.
Canonical, redirect or noindex
- Canonical when both URLs should stay reachable for users but only one should be indexed. Tracking parameters, category paths, print views.
- 301 redirect when one address should no longer exist. Stronger than a canonical because it is an instruction rather than a hint, and the right choice after a move.
- Noindex when a page must remain available but should never appear in results at all. Thank-you pages, internal search results, filtered views.
Do not combine noindex with a canonical pointing elsewhere. The two say contradictory things — ignore this page, and also credit that one for it — and the outcome is unpredictable.
Cross-domain, and why fetching is impossible here
A canonical may legitimately point at another domain. Syndicated articles use this: a partner republishing your piece points the canonical back at your original so the credit stays with you. If you syndicate your writing anywhere, checking that the tag is present is worth doing, because without it the larger site frequently outranks you for your own article.
The checker cannot fetch a page for you. A browser will not permit a script on this site to read another site's HTML, and no free tool can work around that without a server in the middle. So paste the head yourself — view source, copy from the opening tag to the closing head — which also means nothing you check ever leaves your browser.