Canonical Tag Checker

Canonical Tag Checker

The canonical tag checker reads a page’s HTML and audits its rel="canonical" link. It finds missing, duplicate, empty, relative and misplaced tags, protocol or host mismatches, fragments, and conflicts with a noindex directive or the og:url tag. Enter the page’s own URL to confirm the canonical points to itself. Everything runs in your browser.

Missing, duplicate and conflicting tagsSelf-reference testRuns in your browserLast updated: November 4, 2026

Check a canonical tag

What a canonical tag does

A canonical tag tells search engines which URL is the preferred version of a page when the same or very similar content is reachable at several addresses, for example with tracking parameters, sort orders, http and https, or www and non-www. It consolidates ranking signals on one URL. Google treats it as a strong hint, not a command.

Best practices

  • Use exactly one canonical tag, inside the head.
  • Use an absolute URL including the protocol, such as https://example.com/guide/.
  • Point to a URL that returns 200, is indexable and is not itself redirected.
  • Make every page self-referencing unless it is a true duplicate of another page.
  • Keep the canonical consistent with your sitemap, internal links and og:url.

Common mistakes

  • Canonical to a noindex page: sends contradictory signals.
  • Several different canonicals: Google ignores them all.
  • Canonical in the body: only the head is read.
  • Pointing every page to the home page: can cause the pages to drop out of results.
  • http canonical on an https site after a migration.

Frequently asked questions

Do I need a canonical on every page?

It is recommended. A self-referencing canonical protects you against parameter and tracking variations.

Does a canonical pass link value?

Mostly yes. Google consolidates signals toward the canonical URL, similar to a 301 redirect but without sending users anywhere.

Can it read the HTTP Link header version?

No. Only the HTML tag is checked. A canonical can also be sent in an HTTP header, which requires a header inspection tool.

Scroll to Top