Free tool, no signup

Canonical tag checker

Canonical mistakes are quiet and expensive. The page keeps working, the tag looks present, and the address you wanted in search is the one being folded away.

Paste a page. This reads the canonical from the HTML and the Link header, resolves it, and compares it with the URL that actually answered.

Free, no account. One page is fetched as a crawler would see it, without running JavaScript.

The mistakes worth checking for

Off by a trailing slash, a www, or a protocol. The page serves at one address and declares another that differs by a character. Both answer, so both exist, and the tag says the one you are reading is not the one to keep.

Served at:   https://example.com/pricing
Declares:    https://example.com/pricing/

A template canonical. Every page declaring the home page, or a whole section pointing at its index. Usually a variable that did not get filled in, and it removes the entire section from search.

Two canonicals. One in the HTML, one injected by a plugin. When they disagree, search engines ignore both and decide for themselves.

noindex plus a canonical. One says do not index this page, the other says treat it as that page. Contradictory instructions get resolved in ways you did not choose.

A canonical that conflicts with hreflang. Every page in an hreflang cluster must be canonical to itself. Point the French page at the English one and the whole cluster is discarded.

Canonical or redirect?

If only one address should exist, redirect. A 301 is an instruction; a canonical is a suggestion, and leaving both addresses answering means both can be linked, shared and crawled forever.

Use a canonical when both addresses genuinely need to work: a product in two categories, a printable version, a page reached with campaign parameters.

Across the whole site

One page tells you about one page. The interesting question is whether any section of your site is canonicalised somewhere it should not be, and that needs every page read at once.

A crawl records the canonical of every page it fetches, and its indexability check lists the pages pointing somewhere other than themselves. With the downloaded database, finding every page canonical to the home page is one SQL query.

Questions people ask

What does a canonical tag do?
It tells search engines which address is the real one when several show the same content. Signals from the duplicates are consolidated onto the address you name, and that address is the one that appears in results.
Should every page have a self-referencing canonical?
It is not required and it is cheap insurance. Tracking parameters, session ids and uppercase variants all create addresses you never intended, and a self-referencing canonical quietly folds them back into one page.
Why is Google ignoring my canonical?
Because a canonical is a hint weighed against everything else. Google overrides it when the internal links, sitemap, redirects or hreflang say otherwise, when the two pages are not actually duplicates, or when several canonicals on the page disagree. Search Console reports the URL it chose instead.
Can a canonical point to another domain?
Yes. It is the correct way to syndicate an article and keep the credit on the original. It is also a memorable way to remove your own site from search after a migration, which is why this tool calls it out.

Other free tools here

One page is a start. Crawl the whole site.

These tools check a single address. The Site Spider crawls up to 5,000 pages and runs fifteen checks over all of them, still free and still without an account.
Scan a site, free