Hreflang Checker
Check the hreflang tags that tell Google which country or language version of a page to show.
Enter a page URL and see the country and language versions it points to with hreflang tags. We check code validity, absolute URLs, self-reference, x-default, and whether those pages link back to you.
Key takeaways
- check_circle Return links are what make hreflang work, and one missing link can cause search engines to ignore a pair.
- check_circle Each page must list itself, so a self-reference is required on every version of the set.
- check_circle British English is en-GB, and codes like en-UK are flagged as invalid.
- check_circle This checker reads HTML only, so sitemap and HTTP header hreflang are not detected.
- check_circle Hreflang URLs should match each page's canonical URL exactly, including protocol and host.
- check_circle Up to four alternates are verified per run, so check the set from more than one version.
- check_circle A clean result on one page does not prove the whole cluster is correct.
What is Hreflang Checker?
Hreflang Checker is a free tool that audits the hreflang annotations on a single page. You enter the URL of any regional or language version, and the tool reads the HTML head, lists every hreflang alternate, and runs seven checks: tags found, valid codes, absolute URLs, self-reference, x-default, duplicate codes, and return links. Each check shows pass or fail with a plain explanation and a suggested fix, and summary tiles show the number of alternates, whether x-default exists, and the return-link ratio.
Hreflang tells search engines which version of a page suits which language and country, so a UK visitor is shown the UK page rather than the US one. The annotations only work when they are consistent. Every page in the set must list all the others and itself, use valid codes and full URLs, and be confirmed by return links from the other pages. Most real-world failures come from one template that drifts out of sync, which is difficult to spot without checking each page.
The checker fetches your page and up to four of its alternates to test return links, so it makes a small number of requests to your site. It reads HTML only, so it does not see hreflang in XML sitemaps, HTTP headers, or tags injected by JavaScript. It does not check whether alternates are indexable, so combine it with the Canonical Checker and Sitemap Checker for a full audit.
Why hreflang checks matter
Hreflang errors do not throw visible warnings. A page can look perfect to visitors while search engines quietly ignore its annotations, and the result is wrong-country pages in search, duplicate content between regional versions, and lost conversions from mismatched currency or delivery terms. A regular check is the only way to notice.
How to use this tool
- 1
Enter a page URL
Use any regional or language version of a page.
- 2
Review the alternates
We list what the page declares and validate every code and URL.
- 3
Fix return links
Make every version list all the others, so search engines trust the set.
What this tool checks
Hreflang tags found
Reads the HTML of the page you enter and collects every link element with rel alternate and an hreflang attribute. The alternates count appears at the top of the result, and zero alternates is reported as a failure.
Valid language-region codes
Tests each code against the language, optional script, optional region pattern, plus x-default. It also specifically rejects codes ending in -UK, such as en-UK, because the correct region for Britain is GB.
Absolute URLs
Flags any hreflang href that is relative, meaning it does not begin with http:// or https://. Full URLs including protocol and domain avoid mis-resolution by crawlers, so relative values are counted and reported.
Self-reference and x-default
Checks that the page lists its own URL among its alternates, and separately whether an x-default entry exists. Comparison ignores protocol, a leading www, letter case, fragments, and trailing slashes.
Duplicate codes
Compares codes without regard to case and reports any that appear more than once on the page. A page should declare each language-region value only once, pointing to a single URL.
Return links
Fetches up to four alternate pages, skipping x-default and the page itself, and looks for a hreflang tag that points back to your URL. Pages that cannot be fetched or return errors count as missing.
Technical guide
Signals, standards, and what to fix when checks fail.
How return links are verified
URL comparison rules
Reading the result panel
Deep dive
Return links explained
Search engines treat hreflang as a claim that must be confirmed. When the US page says the UK page is its British English equivalent, the engine checks whether the UK page says the same about the US page. If it does, the pair is trusted. If it does not, the engine cannot be sure the relationship is real, since anyone can point hreflang at a page they do not own, so it may ignore the annotation. That is why return links are the most important check. In a cluster of four regions, twelve directional relationships exist, and each one needs its return. This is easiest to keep consistent when tags are generated from one mapping, rather than edited by hand on each template. The checker tests up to four alternates per run.
Why confirmation is required
Without reciprocal tags, any site could claim another as an alternate. Confirmation prevents that abuse, so an unconfirmed pair is usually discarded. This also protects your own pages from being claimed by others.
How failures appear
A failing return check names the alternate that did not link back, or could not be fetched. Open that page and read its head to see why. Fix the head template first, then retest the original page.
Where failures come from
Common causes are a regional template without the tags, a plugin that only runs on the main site, and URL changes that broke old pairs.
Code and URL validity
Most syntax errors fall into a handful of patterns. Codes must use a two or three letter language, optionally a script, and optionally a two-letter region. Region codes are countries, not languages or domains, so en-GB is right and en-UK, uk, and gb alone are wrong. Values should not contain underscores, so en_GB is invalid and en-GB is correct. URLs must be absolute, which means protocol and host, and should match the canonical form of the target page. The checker flags malformed codes, the specific en-UK mistake, relative URLs, and duplicates. It does not verify that a region code is a real country, so check unusual values against the ISO 3166-1 list. Keep case consistent, since tags are treated case-insensitively by the checker but conventions favor lowercase language and uppercase region.
Language then region
The order is always language first, then region. Writing GB-en reverses the pair and will not be recognized by search engines. Fix this in templates rather than page by page.
Hyphen, not underscore
Use a hyphen between language and region. Underscores appear in some CMS locale settings and sometimes leak into output unchanged. Search engines expect the hyphenated form defined by the standard.
Absolute and canonical
Use the full https URL that matches the page's canonical, not a redirecting, parameterized, or relative variant. Match protocol, host, and trailing slash exactly on each entry.
Auditing US, UK, AU, and SG pages
A typical audit starts with the US page, since it is often the root. Enter its URL and confirm the set lists en-US, en-GB, en-AU, and en-SG, plus x-default. Then run the tool from the UK, Australian, and Singaporean pages, since the checker verifies only four alternates per run and each version should show the same set. Compare the lists: if the UK page is missing en-SG, the sets have diverged. Look next at the URLs: the /uk/, /au/, and /sg/ versions should each match their canonical tag. Then check the content differences, such as local spelling, currency, phone formats, and terms like GST in Australia and Singapore. Hreflang without genuinely local content still leaves near-duplicate pages, so the audit should cover both.
Run from every version
Start with the US page, then repeat from the UK, Australian, and Singaporean pages. Each should return the same set and pass every check. This also confirms each page lists itself correctly.
Compare the lists
Sets that differ between pages point to drift. Missing entries are common after adding a region without updating existing pages. Rebuild the set from one mapping to realign every page.
Audit the content too
Check local spelling, currency, and contact details. Valid hreflang cannot rescue pages that are identical apart from the URL. Local details also help users trust the page.
Limits and next steps
The checker is a fast first pass, not a complete international SEO audit. It reads HTML, so it cannot see annotations in sitemaps or headers, and it does not run JavaScript. It samples up to four alternates and does not check whether they are indexable, blocked by robots.txt, or canonicalized elsewhere. Extend the audit with other tools: the Canonical Checker confirms each page canonicalizes to itself, the Sitemap Checker validates any annotation files, and the Redirect Chain Checker finds alternates that redirect. Use Google Search Console to see how regional URLs are indexed. When every check passes, retest after your next release, because passing today does not protect against tomorrow's template change.
What it cannot see
Sitemap annotations, HTTP Link headers, and JavaScript-injected tags are outside its reach. An empty result may reflect the delivery method, not a missing set. Check the raw source to confirm which method applies.
Pair it with other checks
Use the Canonical Checker for canonical alignment, the Sitemap Checker for annotation files, and redirect tools for alternates that redirect. Together they cover most international setup errors.
Make it routine
Retest after releases and log each result with a date. Regressions are much easier to trace when you know the last passing date.
Examples
thumb_up Strong examples
Self-reference present
<link rel="alternate" hreflang="en-US" href="https://example.com/services/" /> The US page lists itself with a valid code and an absolute URL. This satisfies the self-reference check and gives the set a stable anchor to compare with the other versions.
Return link on the UK page
<link rel="alternate" hreflang="en-US" href="https://example.com/services/" /> On the UK page, this tag points back at the US page. That is the return link the checker looks for, and it confirms the two pages reference each other.
Fallback declared
<link rel="alternate" hreflang="x-default" href="https://example.com/services/" /> The x-default entry gives visitors outside the listed regions a defined destination. It uses an absolute URL and appears on every version, so the checker reports it as present.
thumb_down Weak examples
Missing return link
UK page has no tag pointing to https://example.com/services/ The US page names the UK page, but the UK page does not name the US page. The checker reports that alternate as not linking back, and search engines may ignore the pair.
Invalid code
<link rel="alternate" hreflang="en-UK" href="https://example.com/uk/services/" /> UK is not a valid region code, so this entry is flagged. The fix is en-GB, and the change must be made on every page that carries the tag.
Relative URL
<link rel="alternate" hreflang="en-SG" href="/sg/services/" /> The href lacks a protocol and domain, so it is counted as relative. Use the full https URL so crawlers never have to guess how to resolve it.
Best practices and common mistakes
check_circle Best practices
- done Run the checker on every regional version of a key page, because each version must carry a complete and consistent set.
- done Make every hreflang URL exactly match the target page's canonical URL, including protocol, host, and trailing slash.
- done Include a self-reference and an x-default on every version, and keep both stable after launch.
- done Fix return-link failures before anything else, since one missing link can make search engines ignore the pair.
- done Retest after every migration, template release, or CMS plugin update that touches the page head.
- done Spot check your top revenue pages each quarter rather than the whole site at once.
cancel Common mistakes
- close Assuming a clean result on one page means the whole cluster is correct.
- close Pointing hreflang at URLs that redirect, return errors, or carry a noindex tag.
- close Using en-UK or country-only codes such as uk and sg instead of valid language-region values.
- close Declaring hreflang in both the HTML and a sitemap with conflicting URLs.
- close Reading a no hreflang detected result as a bug when your site uses sitemap annotations.
Common use cases
Auditing a US site after adding /uk/, /au/, and /sg/ folders to confirm every version links to the others.
Debugging why the US page shows in UK or Australian search results instead of the local version.
Checking a staging or migration build before launch, so return links survive the URL change.
Verifying an agency deliverable, such as regional templates, against the hreflang specification.
Investigating an international targeting warning or unexpected regional indexing pattern.
Who should use this
Glossary
- hreflang
- An annotation identifying the language and optional country of a page and linking it to its equivalent versions.
- Alternate
- Another version of the same page for a different language or region, declared with rel="alternate" and an hreflang value.
- Return link
- The reciprocal hreflang tag on an alternate page that points back to the original page.
- Self-reference
- A hreflang entry on a page that points at that same page. Every version in a set needs one.
- x-default
- A reserved hreflang value marking the fallback page for users who match none of the listed languages or regions.
- Canonical URL
- The preferred URL for a page. Hreflang entries should point to each page's canonical URL, not a variant.
- Cluster
- The complete group of equivalent pages linked by hreflang. Each member should list all the others and itself.
- Region subtag
- The optional country part of a hreflang value, using ISO 3166-1 alpha-2 codes such as GB, AU, SG, and US.
Frequently asked questions
Ready for a deeper audit?
HeyLead reviews your site, competitors, and growth opportunities with no sales pressure.
Get a Free Audit arrow_forward