DD DevDome Track. Protect. Grow.

Hreflang & Canonical Checker

Read the rel=canonical and every hreflang link of a page and check them the way a search engine does: absolute URLs, canonical equals the final address, valid language codes, a self-reference and an x-default.

How to use it

  1. Paste the page address. The checker fetches the HTML from our server and follows redirects.
  2. Press Check tags. The head is parsed for link rel="canonical" and link rel="alternate" hreflang entries.
  3. Read the verdict per tag: what it points to, whether it is absolute and on the same host, and the hreflang set rules it breaks.

Two tags, one job: say which URL is the real one

The canonical tag tells search engines which address to index when the same content is reachable at several. Hreflang tells them which address to show to visitors in a given language or country. Both are easy to get subtly wrong: a canonical copied from a staging site, a relative canonical that resolves to the wrong folder, a canonical that points at a URL which then redirects, hreflang codes with the country first, a language set that lists every version except the page itself.

The checker fetches the page, parses the head, and reports each tag with the exact problem in plain words, plus the three set-level rules for hreflang: self-reference, x-default and duplicate codes.

Hreflang and canonical FAQ

What should the canonical tag point to?

The one address you want indexed for this content: absolute, with the final scheme and host, without tracking parameters, and answering 200. A canonical that points at a redirecting URL, a different page, or an http address on an https site sends mixed signals and search engines will often ignore it.

Why does the checker want a self-referencing hreflang?

Hreflang works as a set: every page in the group must list every other page AND itself, with the same codes. A page that lists its French and German versions but not its own English address breaks the set, and Google documents that it then ignores the annotations.

What is x-default?

The page to show when no listed language matches the visitor, typically a language chooser or the main English page. It is optional but recommended whenever you have more than one language; the checker flags its absence as a warning, not an error.

Which language codes are valid in hreflang?

An ISO 639-1 language code (en, de, fr), optionally followed by an ISO 3166-1 alpha-2 region (en-GB, de-AT) or a script code (zh-Hant). Country alone (gb) is invalid, and so are three-letter codes like eng. The checker parses every value and flags the ones that do not fit.

The page sets canonical in an HTTP header, not the HTML. Does the checker see it?

This checker reads the HTML head only. A Link header with rel="canonical" is valid for non-HTML files such as PDFs; for HTML pages the tag in the head is the normal place and the one this tool reports on. Use the HTTP Status Checker to see the response headers.