Canonical tag and hreflang checker

Catch duplicate and wrong-language pages.

FreeNo sign-upNothing to install

Built with atrby · Open live demo

What it does

A canonical tag tells search engines which address is the main one when the same content lives at several URLs. hreflang tags tell them which language or regional version to show to whom. Both are easy to get subtly wrong, and visitors never notice.

This checker fetches a page, follows any redirects, and reads the canonical and hreflang tags in its HTML. It flags missing or conflicting canonicals, invalid language codes, relative URLs, duplicate languages, a missing self reference and a missing x-default.

How to use it

  1. 1Enter the address in Page URL and press Check canonical and hreflang.
  2. 2The first line shows the address actually checked and how many redirects it took.
  3. 3Read each finding: Pass is fine, Check means look closer, Fix means search engines will likely ignore or misread the tag.
  4. 4If there's an hreflang table, run the check on each alternate too, since every version must link back to the others.

How canonical tags should look

A unique page has one canonical pointing to its own full URL; a duplicate, such as a filtered or tracking-tagged version, points to the main page. Search engines treat it as a strong hint, not a command.

  • Use one canonical per page. If several disagree, Google is likely to ignore all of them.
  • Use an absolute URL with the protocol and host you actually serve.
  • Don't combine noindex with a canonical to another page.
  • Point to a page that answers 200, not a redirect or a 404.

How hreflang works

Each version lists every version, including itself, with an absolute URL. The links must be reciprocal: if the English page points to the German one, the German page must point back, or search engines may ignore the pair.

A code is an ISO 639-1 language, optionally with an ISO 3166-1 region: en, en-GB, pt-BR. en-UK is a common mistake; the region code is GB. Add x-default for visitors whose language you don't list.

What this check doesn't cover

hreflang in HTTP headers or the sitemap isn't read, only tags in the page's HTML. It checks one page at a time, so it can't confirm the others link back.

Questions

Should every page have a self-referencing canonical?

It's a good default. When someone links with tracking parameters or a slightly different address, the tag still names the clean URL.

What does x-default do?

It names the fallback page for visitors whose language or region matches none of your hreflang values, often a language picker or your main version.

Can a canonical point to another domain?

Yes, for syndicated or moved content. The checker accepts your own www or non-www host, but marks any other domain as a fix, because it asks search engines to index that site instead.

Is hreflang the same as html lang?

No. html lang describes the current page for browsers and assistive technology, and this check reports it too. hreflang lists the other versions for search engines. Set both.

More free tools

All 29 tools

Your site is tuned. Is the traffic paying?

atrby shows which sources, pages and AI assistants bring paying customers. Cookieless, from $19 a month.