Enter one language version of a page. We read its hreflang annotations from the HTML, HTTP headers and XML sitemap, validate every language and region code, check x-default and the self-reference, and confirm the alternate pages link back. Free, no account needed.
hreflang only works when every page in a set lists every other page, including itself, with valid codes and URLs that load. The report checks each of those conditions.
How many annotations were found in the HTML, in HTTP headers and in the XML sitemap, whether the page lists itself, whether there is an x-default, and where the page's canonical points. hreflang on a page that canonicalises elsewhere is ignored.
Every annotation with its code in plain words, such as en-GB for English (United Kingdom), the URL it points to, and where it was declared. Invalid codes are flagged with the fix, for example en-UK should be en-GB.
Each alternate page, its status, and whether it links back to this page with hreflang. A missing return link breaks the pair: search engines ignore annotations that aren't confirmed from both sides.
Each problem with its fix: invalid or outdated codes, relative URLs, a code that points to two different pages, a missing self-reference, alternates that redirect, are noindex or canonicalise elsewhere, and sources that disagree.
Use the full URL of any page in the set, such as your English or German product page. If it redirects, we check the page it lands on.
From link rel="alternate" hreflang tags in the HTML, from HTTP Link headers, and from the XML sitemap declared in robots.txt.
Each value is checked as an ISO 639-1 language, an optional script, and an optional ISO 3166-1 region, or x-default. Common slips such as en-UK, en_US and es-419 are named.
Up to 10 alternate pages are loaded to check that each one answers 200, is indexable, is its own canonical and links back to this page.
The TaskGlaze site audit checks hreflang consistency, invalid codes and redirecting hreflang targets across every page of your site. See the site audit.
hreflang tells search engines which language or regional version of a page to show each searcher. It is easy to get almost right, which is the same as not working.
Each page in the set carries the full list of alternates, including a link to itself. The German page lists English, French and German; the English page lists the same three.
Codes are an ISO 639-1 language such as en or de, optionally followed by an ISO 3166-1 country such as GB or AT: en-GB, de-AT. A region on its own is not valid.
x-default names the page for everyone whose language isn't in the set, usually a language picker or your main international version.
Every hreflang URL must be fully qualified with https:// and must be the canonical version of that page, answering 200 without a redirect.
hreflang works in HTML link tags, HTTP headers or the XML sitemap. One method is enough. If you use more than one, they must list exactly the same alternates.
hreflang link tags are only read in the <head>. An image, iframe or other element that isn't allowed in the head closes it early, and every tag after it is ignored.
An alternate that can't be indexed can't be shown, and it breaks the confirmation for the whole pair.
Alternates should be genuinely localised versions. Pages that differ only by currency or a few words can still use hreflang, but each needs to be a complete page for that audience.
Codes are case-insensitive, but they must be real ISO codes in the right order. These are the slips we see most.
| Written | Problem | Use instead |
|---|---|---|
| en-UK | UK isn't an ISO 3166-1 country code | en-GB |
| en_US | Underscore instead of a hyphen | en-US |
| us, gb | A country on its own, with no language | en-US, en-GB |
| es-419 | Numeric regions aren't supported by Google | es-MX, es-AR or plain es |
| eng, deu | Three-letter language codes aren't supported | en, de |
| iw, in, ji | Outdated language codes | he, id, yi |
| zh-CN vs zh-Hans | Both are valid; script and region mean different things | zh-Hans for script, zh-CN for region, or zh-Hans-CN |
| x-default | Not an error; recommended for a fallback page | Point it at a picker or main version |
Page A lists page B, but B doesn't list A. Search engines ignore one-way annotations, so the pair has no effect.
The page lists its alternates but not itself. Google asks for the self-reference so every page states its own language.
en-UK instead of en-GB, or a region without a language. One invalid code doesn't break the rest, but that version is ignored.
Alternates that redirect, often from http to https or to a trailing-slash version. Point at the final URL.
A page with a canonical to another URL, or hreflang URLs that aren't canonical, sends mixed signals and is usually ignored.
Two URLs for en-US, often from a plugin and a template both writing tags. Each code may point to one URL only.
A tracking pixel or banner placed high in the <head> ends it early, and hreflang tags below it are treated as body content and ignored.
One method was updated and the other wasn't. Keep a single source of truth, or generate both from the same data.
Codes, return links, x-default and where to put the tags.
A hreflang checker reads the language and region annotations on a page and checks that the codes are valid, that the page references itself, and that the alternate pages link back. Those return links are what make hreflang work, so this one loads the alternates to confirm them.
hreflang is an annotation that tells search engines a page has versions in other languages or for other regions, so they can show each searcher the right one. It doesn't change rankings; it changes which version appears.
If the English page says the German page is its de alternate, the German page must also say the English page is its en alternate. That confirmation from both sides is the return link. Without it search engines ignore the pair.
Yes. Each page should include an hreflang annotation pointing at its own URL, alongside its alternates. The check flags a missing self-reference.
x-default names the page for searchers whose language or region isn't covered by the set, usually a language picker or your main international version. It isn't required, but it is recommended.
No. The ISO country code for the United Kingdom is GB, so the correct value is en-GB. en-UK is one of the most common hreflang mistakes and that version is ignored.
Any one works. HTML link tags are the most common, HTTP headers suit PDFs and other files, and the XML sitemap keeps large sets out of the page. If you use more than one, they must list the same alternates, which the check compares for you.
Each check loads up to 10 alternate pages, so a page with many language versions shows how many of them were checked. The codes and URLs of every annotation are still validated.
Not directly. It helps the right language version show in each country, which improves click-through and reduces bounces, and it stops alternates from being treated as duplicates competing with each other.
No. hreflang is only for sites with versions of the same page in different languages or for different regions. A single-language site has nothing to annotate.
Three per tool per day without an account, or fifteen per tool per day when you are signed in to your TaskGlaze account. Each free tool has its own count.
We check every link against public lists of phishing and scam sites before loading it, and refuse ones that look unsafe. A refused link doesn't use one of your daily checks.
More free checks from TaskGlaze, with the same daily allowance for each tool.
The TaskGlaze site audit flags hreflang inconsistencies, invalid codes and redirecting alternates across your whole site.