Is this hreflang checker free?
Yes. This hreflang tag checker is free to use with no sign-up, and you can check as many pages as you like.
Does it upload my HTML to a server?
No. The HTML or head markup you paste is parsed entirely in your browser, so it stays private and is never uploaded.
Does it check the linked pages too?
No. This checker validates only the markup you paste. It does not crawl or fetch the alternate URLs to verify their return tags.
Does it warn about missing x-default?
Yes. When multiple alternate entries are present, the checker surfaces a missing x-default as a practical note so you can add one.
Can I check staging or unpublished pages?
Yes. Because everything runs in your browser and nothing is uploaded, you can safely paste markup from staging or draft pages.
Is en-UK a valid hreflang value?
No, and it is a very common mistake. The region code for the United Kingdom is GB, so the correct value is en-GB. This checker accepts en-UK because it has the right shape, which is a good illustration of why a shape check is not a validity check.
Do I need an x-default entry?
It is optional but useful. x-default tells search engines which page to serve when no declared language or region matches the user. Without it, a visitor whose locale is not in your cluster gets whichever page the engine guesses. The checker raises a note, not a warning, when two or more alternates exist with no x-default.
Do the tags have to be on every page in the set?
Yes. hreflang is bidirectional. If the English page lists the German alternate but the German page does not list the English one back, the annotation is dropped entirely. Every page in the cluster must list every page in the cluster, itself included.
Can I put hreflang in the sitemap instead of the head?
Yes. XML sitemaps with xhtml:link entries are a supported alternative, and are often easier to maintain for large sites because the mapping lives in one file rather than in thousands of templates. This tool does not read that format; it inspects head markup only.
Does it fetch the alternate URLs?
No, and that is the honest limit of any paste-based hreflang checker. Everything runs in your browser on the text you supplied. Verifying return links, response codes and canonical agreement requires crawling every URL in the cluster.
Should hreflang URLs match the canonical of each page?
Yes. Each hreflang URL should be the self-referencing canonical of the page it points at. Pointing hreflang at a URL that canonicalizes somewhere else sends two conflicting signals, and search engines resolve the conflict by ignoring the hreflang.