Skip to content
SEOuchAudit my site
Menu

Canonical tag checker

Find the canonical on any page, see whether it points where it should, and get the corrected tag to paste.

Free, no signup. Updated 2026-11-03.

What the canonical tag checker tests

The tool fetches the page you enter, records any redirects on the way, and reads rel=canonical from two places: the link element in the HTML and the HTTP Link header. It then runs the checks that decide whether a canonical is usable: it must exist, there must be exactly one, it must be an absolute http or https URL, and it must sit inside the head. A canonical that appears after the closing head tag, or after an element that is not allowed in the head, is ignored by parsers and by Google.

Next it compares the canonical with the URL that loaded. A match is a self-referencing canonical, the normal state for the primary version of a page. A near match that differs only in protocol, www, trailing slash or letter case is flagged separately, because Google treats those as different URLs and the mismatch usually means the redirect and the tag disagree. A canonical that points at another URL, subdomain or domain is reported as such, which is correct for duplicates and syndicated copies and a problem for pages that should rank on their own.

When the canonical points elsewhere, the tool follows it once. It reports the target's status, its own canonical, whether it redirects back to the page you entered (a loop), and whether it is marked noindex. Those are the cases where Google is most likely to discard your declaration and choose its own canonical.

How to read the result

The verdict card gives one headline and the overall level. The evidence list below it is the detail: each line names the check, the level (pass, notice, warning or error) and what to change. Errors are conditions that stop the canonical from working at all, such as conflicting declarations, a target that returns an error, or a loop. Warnings are configurations that usually work but leave Google to resolve an inconsistency. Notices are observations, such as a query string in the canonical, that are fine when intentional.

The suggested tag at the bottom is the version the evidence supports: your own URL when the canonical is missing or broken, the end of the chain when the target itself canonicalizes elsewhere, and your existing tag rewritten as an absolute URL when it is already right. Paste it into the head or send it as a Link header.

Common canonical problems

  • Tracking parameters in the canonical. A canonical that keeps utm or click identifiers makes every campaign URL declare itself canonical, which splits signals across copies.
  • Canonical to a redirecting URL. Often left behind after an HTTPS or domain migration. Point the tag straight at the final URL.
  • noindex plus canonical. The two contradict each other. Decide whether the page should be indexed and keep one signal.
  • Canonical and hreflang on the same non-canonical page. hreflang belongs on canonical URLs; annotations on a page that canonicalizes elsewhere can be dropped.
  • Plugins adding a second tag. Two identical tags are harmless today; two different ones can cancel each other out.

Methodology and limits

The checker reads server-rendered HTML and headers without executing JavaScript, follows the canonical target once with an eight-second timeout, and does not inspect sitemaps or internal links, which also influence Google's choice. It reports what the page declares and whether that declaration is consistent; it cannot tell you which URL Google has actually selected. For that, use the URL inspection tool in Search Console, which shows the user-declared canonical next to the Google-selected canonical.

Frequently asked questions

Is rel=canonical a directive?
No. Google documents it as a strong hint. It is usually followed when it is consistent with other signals, and ignored when redirects, internal links, sitemaps or hreflang point somewhere else.
Should every page have a self-referencing canonical?
It is the safest default. A self-referencing canonical states which version you prefer when parameters, trailing slashes or tracking codes create variants of the same page.
Can the canonical be an HTTP header?
Yes. A Link header with rel="canonical" works and is the only option for non-HTML files such as PDFs. Avoid declaring it in both the header and the HTML unless they are guaranteed to match.
Why does Google pick a different canonical from mine?
Google chooses the canonical it considers most representative. Conflicting signals, a canonical that redirects or returns an error, or a target marked noindex all weaken your declaration.
Does this tool run JavaScript?
No. It reads the HTML the server returns and the HTTP headers. A canonical injected only by client-side JavaScript will look missing here, and it is less reliable for crawlers too.