Free Canonical Tag Checker
Enter a URL to see whether it declares a canonical tag, where that tag points, and whether the destination actually works. It follows the canonical rather than just reading it, so it catches the faults that matter — two canonicals disagreeing, a canonical pointing at a redirect, or one aimed at a page that no longer exists.
This follows the canonical to its target and checks the rendered page too, so it can take a few seconds.
Canonical Tags at a Glance
What a canonical tag does
A canonical tag tells search engines which URL is the real version of a page when several URLs serve similar or identical content. Those duplicates arise constantly and mostly without anyone deciding to create them — tracking parameters, print versions, filtered category pages, an http version still resolving alongside https, the same product under two categories.
Left alone, a search engine picks one itself. Sometimes it picks the one you would have. Often it picks the version with a tracking parameter attached, and that is the URL that appears in results.
The tag is a signal rather than an instruction. Google treats it as a strong hint and can override it — notably when the canonical points somewhere that makes no sense, which is exactly what this tool is looking for.
The faults worth finding
Reading the tag is easy. These are what actually go wrong.
Two canonicals on one page. An SEO plugin and a theme both write one, they disagree, and search engines usually discard both. This is invisible in a browser and common on WordPress.
A canonical pointing at a redirect. The tag says the real version is over there; over there says it has moved again. The signal survives but it is diluted and slower to act on. Check for this specifically with the redirect checker.
A canonical pointing at a 404. The page nominates a version that does not exist, which wastes the signal entirely and can cost the original its place. The broken link checker finds these across a whole page.
A canonical chain. Page A points at B, B points at C. Point directly at C.
A canonical on a noindex page pointing at another noindex page. Consolidating authority onto something you have told search engines to ignore.
A canonical injected by JavaScript. Google frequently still sees it. Other crawlers, and the assistants now reading pages, frequently do not.
Why platforms break this more often than people
Canonical tags are unusual among SEO problems in that the platform usually causes them rather than the person.
Site builders generate canonicals automatically from the connected domain, which is normally correct and occasionally not — a reverse-proxy setup, a staging domain, or a custom domain added after publishing can all produce a canonical pointing somewhere unexpected. WordPress installations frequently run an SEO plugin alongside a theme that also writes canonicals, producing the double-tag problem above. Ecommerce platforms generate them for product and collection URLs with rules that are not always obvious.
The practical consequence is that you cannot assume your canonicals are right because you never touched them. Nobody touched them, and that is the point. Check a handful of URLs of each type — a product, a filtered listing, a paginated page, a page with a tracking parameter — rather than one homepage. One Zaprev client saw a 62% improvement in search position from exactly this kind of technical cleanup.
What good looks like
One canonical element, in the head, not in the body.
Self-referencing on pages that are the canonical version. A page pointing at itself is normal and correct, not redundant.
Absolute URLs, not relative ones. Relative canonicals resolve, and they resolve wrongly more often than they should.
Pointing at a live page that returns 200 and declares the same canonical back at itself.
Consistent on protocol and host with the version you want indexed — the same discipline the sitemap generator applies when it builds your sitemap from one canonical form of each URL.
Declared in the served HTML rather than added by script.
Common mistakes
Canonicalising every page to the homepage. It tells search engines the whole site is one page, and it is a genuine way to disappear from results.
Using a canonical where a redirect belongs. If the old URL should not exist, redirect it. A canonical leaves it live and reachable.
Canonicalising paginated pages to page one. Page two is not a duplicate of page one, and its content stops being indexed.
Assuming a canonical is obeyed. It is a hint. If the page it points at looks nothing like the page declaring it, it will be ignored.
Checking only the homepage. It is nearly always correct. The faults live on templated pages.
Trusting the browser inspector. It shows the page after JavaScript runs, so a script-injected canonical looks identical to a served one. Fetch the page or view source.
Canonicals are the cheapest technical fix there is, and the easiest to leave broken for a year without noticing. See how the Zaprev team runs technical SEO.
Frequently asked questions
What is a canonical tag?
An HTML element declaring which URL is the definitive version of a page. It exists because the same content is often reachable at several addresses, and without it a search engine chooses which one to show — not always the one you would pick.
Should every page have a canonical tag?
Most should, and pointing at itself is the normal case. It is not strictly required, and a page without one is not broken — but declaring one removes a decision from the search engine and takes about a minute.
What happens if a page has two canonical tags?
Search engines generally ignore both and decide for themselves, which defeats the purpose entirely. It usually happens when two systems on the same site each write one, and it is invisible unless you look at the page source or use a tool that counts them.
Is a canonical tag the same as a redirect?
No. A redirect moves the visitor and removes the old URL from circulation. A canonical leaves both URLs working and tells search engines which to index. Use a redirect when the old page should be gone and a canonical when both need to stay reachable.
Can a canonical point to a different domain?
Yes, and it is legitimate for syndicated content where another site is the original. It is also a fast way to hand your ranking to someone else if it happens by accident, which is why this tool reports the host separately.
Does Google always follow the canonical tag?
No. It is treated as a strong hint alongside other signals, and Google can and does select a different URL — particularly when the nominated page is very different from the one declaring it, redirects, or does not exist.
Why does my canonical look right in the browser but not here?
Because the browser inspector shows the page after JavaScript has run. If your canonical is injected by script it will appear there and be missing from the HTML the server actually sent. This tool reports both, so you can see which one you have.