language Technical SEO

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.

build_circle Try the free tool
star

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.
language

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.

insights

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.

arrow_forward Broken return links silently disable hreflang for the affected pages.
arrow_forward Regional English pages are near duplicates, so search engines lean on hreflang to separate them.
arrow_forward Template releases and migrations frequently remove or alter annotations without notice.
arrow_forward Wrong-country landings mean wrong prices, wrong phone numbers, and lost sales.
play_circle

How to use this tool

  1. 1

    Enter a page URL

    Use any regional or language version of a page.

  2. 2

    Review the alternates

    We list what the page declares and validate every code and URL.

  3. 3

    Fix return links

    Make every version list all the others, so search engines trust the set.

fact_check

What this tool checks

verified

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.

verified

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.

verified

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.

verified

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.

verified

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.

verified

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.

engineering

Technical guide

Signals, standards, and what to fix when checks fail.

code

What the checker reads

The tool downloads the HTML of the URL you enter and scans every link tag for rel="alternate" combined with an hreflang attribute. It reports the number found, whether an x-default exists, and how many checked alternates link back. The preview panel lists each checked alternate with its result. It reads only the HTML source, so hreflang delivered through XML sitemaps or HTTP Link headers is not detected, and the result will say no hreflang was found. Tags injected by JavaScript after load are also missed, because the tool does not run scripts. Confirm which delivery method your site uses before interpreting an empty result.
code

How return links are verified

For up to four alternates, the checker fetches each page, follows redirects, waits up to six seconds, and parses its hreflang tags. An alternate passes if any of its tags points back to the page you entered. It skips x-default and the page itself. Alternates that time out or return a 4xx or 5xx status are listed as missing, because a broken alternate cannot confirm anything. Sets with more than four alternates are only partly verified, so run the tool from a different version to cover the rest. Successful results are cached for about ten minutes, so wait a little before retesting a fix you have just deployed.
code

URL comparison rules

When matching your URL against a declared alternate, the checker ignores the protocol, a leading www, the fragment, a trailing slash, and letter case. That keeps trivial differences from producing false failures, but it also means an http and https mismatch, or a www and non-www mismatch, will still count as a match. Search engines are stricter, so read the listed URLs by eye and confirm each one matches the page's canonical URL exactly. Keep one protocol, one host form, and one trailing slash convention across all annotations. Treat the tool's match as a floor, not a guarantee.
code

Reading the result panel

The headline states whether a hreflang set was found. Three summary figures show the number of alternates, whether x-default exists, and return links as a fraction such as 3/4. Below them, seven checks each show pass or fail with an explanation and a suggested fix. A failing return link check with clean codes usually means one regional template lacks the tags. A failing self-reference check often means the tag points to a redirected or parameterized URL. Fix the first failure, redeploy, and retest, since one root cause often produces several symptoms.
school

Deep dive

sync_alt

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.

rule

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.

public

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.

travel_explore

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.

compare

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.

rule

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.
lightbulb

Common use cases

task_alt

Auditing a US site after adding /uk/, /au/, and /sg/ folders to confirm every version links to the others.

task_alt

Debugging why the US page shows in UK or Australian search results instead of the local version.

task_alt

Checking a staging or migration build before launch, so return links survive the URL change.

task_alt

Verifying an agency deliverable, such as regional templates, against the hreflang specification.

task_alt

Investigating an international targeting warning or unexpected regional indexing pattern.

groups

Who should use this

person International SEOs auditing multi-country and multi-language sites. person Developers implementing regional templates and needing fast validation. person Agency teams QAing hreflang before handing over client work. person Ecommerce managers with US, UK, Australian, and Singaporean storefronts. person Marketers troubleshooting wrong-country pages in search results.
dictionary

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.
quiz

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