Skip to main content
Sprout SEO

Free Hreflang Checker

Free hreflang checker: see every alternate, its status, and whether it links back, in seconds. Or check hreflang on every page you browse with the Sprout SEO Chrome extension.

Hreflang Checker

Paste any URL and we’ll fetch it as the search bot you choose, parse every hreflang annotation, and surface mistakes that quietly hurt multilingual SEO.

Check hreflangs

We’ll request the page as the bot you choose and walk every reference.

Test URL
User agent

Free hreflang checker

A broken hreflang cluster doesn’t throw an error. It just serves the wrong language page to the wrong searcher, quietly, for as long as nobody checks.

One missing return link is enough to break it. Google can end up ignoring the whole set of tags, not just the one broken pair, and your French page starts competing with your English one in the index you actually care about.

So, paste a URL into the tool above and see its full hreflang cluster: every alternate, its status, and whether each one links back. Or install the Sprout SEO extension and see the same table on every page you browse, with nothing to paste.

What is hreflang?

Hreflang is an attribute, hreflang="lang_code", that tells Google which page on your site serves which language or region. You can declare it in a <link rel="alternate"> element, an HTTP response header, or your XML sitemap.

Google treats all three methods as equivalent. Pick one and stick with it. Running more than one at once adds nothing in Search and only makes the setup harder to maintain.

The return link requirement

Here’s the part most sites get wrong. Hreflang only works as a reciprocal set. If your German page points to your English page, the English page must point back to the German one, and both must also list themselves.

Miss that return link, and Google can ignore the annotation entirely rather than guess what you meant. That one missing tag, on just one page, is enough to break the whole cluster.

Why hreflang matters for SEO

Hreflang tells Google which of your pages to show a searcher, based on their language and location. Get it right, and the correct version competes in the right market, instead of your English homepage quietly outranking your own German page in Germany.

Without it, Google falls back to its own signals for deciding which locale to show. Google is direct about this: it doesn’t use hreflang, or your HTML lang attribute, to detect what language a page is written in. It uses its own algorithms for that, and hreflang only connects the versions you’ve already built.

Get the cluster wrong, and the failure is invisible from the page itself. Nothing breaks visually. Your localized pages just compete against each other, or the version you built for a market never shows up there at all.

When to use hreflang

You need hreflang whenever your site publishes more than one language or regional version of the same page. That covers more cases than “we translated the site.”

Separate languages are the obvious case: a French page and an English page covering the same content. Same language, different regions, is the one teams miss: en-US, en-GB, and en-AU versions of one English page, each with its own spelling, pricing, or examples.

A language selector, a country selector, or a homepage that auto-redirects by locale needs one more thing: an x-default tag. x-default is a reserved value built for exactly this case, pointing at a fallback page for a visitor whose language doesn’t match any version you’ve built. You don’t give it a language code, since it isn’t targeted at one.

A single-language, single-region site doesn’t need any of this. There’s no real downside to adding it anyway, but it’s not a checklist item a one-locale site should chase.

Hreflang vs automatic geo-redirects: which to use

Hreflang and an automatic redirect solve the same problem from opposite directions. Hreflang tells Google which version to show a searcher. A geo-redirect, or one keyed off the Accept-Language header, forces every visitor, human and crawler alike, to one version the moment they land.

That second approach has a real cost. Google’s own hreflang guidance flags an auto-redirecting homepage as exactly the case that needs an x-default fallback, because a forced redirect can trap a crawler on one locale and leave your other versions unseen.

Use hreflang to make every version discoverable, and let Google route searchers to the right one. If you also redirect visitors by locale, give them a way to override it. Never redirect a crawler the way you’d redirect a person.

Common hreflang issues

The issues, one by one

A missing return link is the most common failure. Google’s own troubleshooting guidance names it first: if page A links to page B but B doesn’t link back, Google can ignore the annotation on both.

Incorrect language or region codes come next. A language code alone is valid (fr), but a region code alone is not; you need the language first, then the region (fr-CA, never just CA). Reserved codes like EU, UN, or UK get silently ignored too, since they aren’t assigned ISO 3166-1 region codes.

A hreflang target that returns a redirect, a 404, or a server error is another common break. Google can’t confirm a return link to a page that doesn’t resolve, so the pair fails quietly, the same way a redirected canonical does.

Pointing hreflang at a noindex or non-canonical URL causes a similar silent failure. The target can’t carry the signal if it isn’t the version Google is allowed to index in the first place.

Missing a self-referencing tag, where a page doesn’t list itself among its own alternates, breaks the “every version lists every version, including itself” rule Google states plainly in its own guidelines.

Common hreflang issues at a glance

Issue What it causes The fix
Missing return link Google may ignore the annotation on both pages Add the matching tag on each alternate, pointing back
Region code without a language code The annotation is invalid Use language first, then region (fr-CA, not CA)
Reserved or unassigned region code Google ignores that part of the tag Use an assigned ISO 3166-1 Alpha-2 code
Hreflang target is non-200 The pair can’t be confirmed Point hreflang only at live, 200 URLs
Target is noindex or non-canonical The signal has nowhere valid to land Hreflang only indexable, canonical URLs
Missing self-reference Breaks the “list every version” rule Add the page’s own URL to its own alternate set

How to check a page’s hreflang tags

Checking a hreflang cluster takes the same four steps every time.

  1. Paste the URL into a hreflang checker.
  2. Read every declared alternate, its language and region code, and its HTTP status.
  3. Confirm each alternate links back to the page you started on.
  4. Fix whatever’s missing, broken, or one-directional.

Check a single page with the Sprout web tool

Paste any URL into the tool at the top of this page. It returns every hreflang alternate the page declares, the status of each target URL, and whether each one links back. No crawl, no login required.

The tool doesn’t store the URL you check or the result anywhere, so there’s nothing to clean up or worry about later.

See hreflang as you browse with the Sprout extension

Install the extension, and its Page Info tab shows the hreflang table for whatever page you’re on, including the same back-reference check: it flags any alternate that doesn’t point back. You get that on every page in your normal workflow, not just the ones you remember to paste in somewhere.

Sprout SEO Extension

See the hreflang cluster, right from your browser

Lists every hreflang alternate, its status, and flags any that don't link back, instantly, on every page you visit.

Add to Chrome Also available for Firefox and Edge.
Learn more →

Why Search Console can’t confirm this at scale

Here’s a gap a lot of teams don’t expect. Google’s own hreflang documentation doesn’t point to a Search Console report for debugging hreflang. It links out to a couple of third-party tools instead, and says plainly that Google doesn’t maintain or check them.

So there’s no first-party dashboard that catches a broken hreflang cluster across your whole site. A per-page checker, or a full crawl with a hreflang audit built in, is the only way to catch it before a searcher, or a competitor, does.

How to fix a broken hreflang cluster

Fixing a broken cluster starts with the version that’s missing from the set, not the one you happened to notice first.

  1. List every intended version of the page, and confirm each one is live, indexable, and carries its own canonical tag pointing at itself.
  2. Add the missing return link. Every version needs a tag pointing to every other version, including itself.
  3. Add x-default if the page is a language selector, a country selector, or an auto-redirecting homepage.
  4. Recheck once Google reprocesses the pages. A fixed cluster doesn’t take effect the moment you publish it. Treat the fix as directional, not immediate.

Check every page’s hreflang as you browse (Chrome, Firefox, Edge)

Install the Sprout SEO extension once. After that, the hreflang table for whatever page you’re viewing is one click away, with no separate tool to open and no URL to paste.

The hreflang table in the Page Info tab, inline as you browse

Open the extension on any page in a localized set. Its Page Info tab lists every alternate, its status, and whether it links back, the same back-reference check as the web tool above. Browse from language version to language version during a normal audit, and that table updates with you.

See the hreflang cluster of every page you visit, instantly, right in your browser. Add Sprout SEO to Chrome, and it’s one click away on every page from then on. The same extension works in Firefox and Edge too.

Check your hreflang, then stop guessing on every locale after this one

One missing return link can get an entire hreflang cluster ignored, not just the broken pair. Check it before you launch a new locale, migrate a multi-language site, or add a language selector.

Add Sprout SEO to Chrome to see the hreflang cluster on every page you browse, free, with no crawl and no account required. It also works in Firefox and Edge.

Frequently asked questions

A hreflang checker reads a page’s declared hreflang alternates, the language and region code on each, and the status of every target URL. A good one also confirms the return link: whether each alternate links back to the page you started on, since Google can ignore the whole set when that’s missing.

Paste the page’s URL into a hreflang checker and read every alternate it returns, along with each target’s status. Sprout’s tool does this for a single URL with no login. Or the Sprout extension shows the same table inline as you browse.

A return link means page A’s hreflang tag names page B, and page B’s hreflang tag names page A back. Google requires every pair in a hreflang set to confirm each other this way. Miss even one, and Google can ignore the annotation for both pages.

Only if you have a language selector, a country selector, or a page that auto-redirects by locale. x-default names the fallback page for a visitor whose language doesn’t match any version you’ve built. A single translated page pair doesn’t need one.

No. Google’s own hreflang documentation links out to third-party debugging tools rather than a Search Console report, and says plainly it doesn’t maintain or check those tools. There’s no first-party, site-wide hreflang error report inside Search Console today.

The Sprout SEO extension’s Page Info tab shows the hreflang table for whatever page you’re browsing, including the return-link check, with nothing to paste. It also works in Firefox and Edge.