Canonical checker

Read the canonical from the final HTML, compare it with the final URL, and expose targets that redirected inside the checked request chain.

Public check, no account needed. Resolves the canonical against the final URL and compares it with the request chain. Rate limited to 60 an hour per IP.

Worked example

Illustrative result for a reserved example URL. Your check replaces it.

Canonical points to a redirect

The canonical names a URL that returned HTTP 301 in this chain.

Canonical found
Yes
Canonical target
http://example.com/summer
Canonical form
Absolute after resolution
Self-referencing
No
Disagrees with final URL
Yes
Targets a redirect in this chain
Yes, HTTP 301
Final URL
https://example.com/summer
Final HTTP status
200

The API resolves relative canonical values before returning them. The result cannot show whether the original source attribute was relative.

What this check means

Canonical URL
A canonical URL is the preferred URL that a page asks search engines to use when consolidating duplicate or similar versions.
Self-referencing canonical
A self-referencing canonical is a canonical whose resolved target matches the final URL of the page that declares it.
Canonical mismatch
A canonical mismatch means the declared canonical and the final URL are different, which may be intentional or may expose a template error.

How to read the result

Canonical found
No means the final HTML did not return a canonical value. Search engines then rely more heavily on redirects, links, sitemaps, and content similarity.
Canonical target
This is the absolute target returned by the API after relative values are resolved against the final URL.
Canonical form
The API returns the resolved absolute URL, so the result cannot prove whether the original source attribute was written as a relative value.
Self-referencing
Yes means the canonical and final URL match after URL parsing. No means the page asks search engines to consolidate onto another URL.
Disagrees with final URL
Yes is the inverse of self-referencing. It should match an intentional consolidation decision rather than an outdated template value.
Targets a redirect in this chain
Yes means the canonical target is one of the redirecting URLs already observed in this request. A separate target outside the chain is not fetched.
Final URL and status
These identify the response that supplied the canonical. A failed final response makes the canonical result secondary to the status problem.

Common causes

  • A template still emits an HTTP URL after the site moved to HTTPS.
  • A URL migration redirects the old canonical but the page template was never updated.
  • Pagination, filters, or tracking parameters inherit a canonical from the wrong route.
  • A shared head component uses a staging hostname or an outdated domain constant.
  • A CMS plugin removes the tag or generates it from an incomplete request URL.

Does Google always obey a canonical tag?

No. A canonical is a consolidation hint, not a command. Search engines can choose another URL when redirects, internal links, sitemaps, content, or other signals disagree.

Should a canonical point to a redirect?

It should point directly to the intended final URL where possible. A redirect adds another URL for crawlers to reconcile and weakens the clarity of the consolidation signal.

Does every page need a self-referencing canonical?

No, but a self-referencing canonical is a clear default for an indexable page that should represent itself. A canonical to another URL should be deliberate and consistent with other signals.

Does this checker fetch a separate canonical target?

No. It reads the canonical returned with the checked page and compares that URL with the checked request chain. It can prove that the target redirected when the target appears as a redirecting hop in that chain.