Hreflang Checker: How to Test Hreflang Tags the Right Way

There is no single hreflang checker that tells you whether Google is using your annotations. You test hreflang in three layers: a manual check of one page's source, a single-page or site-wide checker that validates the tags against Google's rules, and Search Console to confirm that each language version is actually indexed under its own URL. Each layer catches problems the others miss.
The fastest useful routine for a small multilingual site takes about as long as making coffee: view source on one page per language, run one URL through a free hreflang tester, and inspect one URL per language in Search Console. For anything over a few dozen pages, add a crawler. Below is what each tool does, what it can't do, and the order to use them in.
What should an hreflang checker test?
A good check covers six rules from Google's documentation, and most failures come from the first three.
| What to test | Why it matters | Best way to check |
|---|---|---|
| Return links are reciprocal | Google ignores tags unless both pages point to each other | Crawler or single-page tester |
| Each page lists itself | Google requires every version to list itself and all others | View source, tester, crawler |
| Valid language and region codes | Invalid or reserved codes are ignored (en-UK, EU, region alone) |
Tester or crawler |
| URLs are fully qualified, canonical and return 200 | Redirecting, noindexed or non-canonical alternates break the cluster | Crawler |
Tags sit inside a valid <head> |
Google stops reading the head at the first invalid element | View source, crawler |
| Translated pages are indexed under their own URL | Proves Google is using the setup, not just that the code is valid | Search Console URL Inspection |
All of these come from Google's localized versions documentation, which is the source of record. When a tool and that page disagree, follow Google. The hreflang tags guide explains each rule with code.
Manual checks: view source and headers
Start by reading one page's hreflang block yourself, because it shows you what the template actually outputs.
Open a translated page, view the page source and search for hreflang. Confirm four things: every language version is listed, the current page is one of them, every URL starts with https://, and the URL for the current page matches its rel="canonical" exactly. Then open each listed URL and confirm it carries the same block.
If your tags are injected with JavaScript, the raw source won't show them. Run a live test in Search Console's URL Inspection tool and open View tested page, which shows the page code, the HTTP headers and a screenshot of the rendered page.
For hreflang sent in HTTP headers (common for PDFs), run curl -I https://example.com/file.pdf in a terminal and look for the Link: header. For an hreflang sitemap, open the XML file and confirm each <url> entry lists every language version, including itself, with the xmlns:xhtml namespace declared.
Single-page hreflang checkers
A single-page tester validates one URL's annotations and fetches its alternates to check return links.
Google's own documentation points to two free third-party tools for hreflang, while noting they are "not maintained or checked by Google":
- hreflang Tags Testing Tool on TechnicalSEO.com (Merkle). It checks a page's hreflang in HTML and HTTP headers, or in an XML sitemap, and reports problems such as missing return links and invalid codes.
- Aleyda Solis's hreflang tags generator. A generator rather than a checker, but useful for building a correct block to compare against what your site outputs.
Use a single-page hreflang checker to spot-check a template after a change, or to test one page you suspect is broken. It won't tell you about the 300 other pages that use a slightly different template.
Site-wide crawlers
A crawler applies the same checks to every page and finds template-level errors in one pass.
Screaming Frog's SEO Spider has a dedicated hreflang tab that reads annotations from HTML, HTTP headers and XML sitemaps. Its filters include missing return links, inconsistent language and region return links, non-canonical return links, noindex return links, incorrect language and region codes, missing self reference, missing x-default and non-200 hreflang URLs. Two settings (store and crawl hreflang) must be enabled for the tab to populate. The free version crawls up to 500 URLs, which covers many small multilingual sites.
The recommendation: crawl once after any template change, redesign or site migration, and once a quarter otherwise. Sort the results by template, fix the template, then recrawl. Don't fix hreflang errors page by page; they almost always share one cause.
Can Search Console check hreflang?
Search Console no longer has a dedicated hreflang report, but it is still the only tool that shows what Google did with your pages.
Google deprecated the International Targeting report, which used to list hreflang errors. Google says it continues to support and use hreflang tags. What Search Console offers now:
- URL Inspection. Shows whether a URL is indexed, its user-declared canonical and the Google-selected canonical. If the German page's Google-selected canonical is the English URL, the German page isn't being served in its own right, whatever the hreflang checker says.
- Page indexing report. Filter by a sitemap that contains one language's URLs to see how many of that language's pages are indexed and why others are excluded.
- Performance report. Filter by country and page to see whether searchers in each market land on the matching language version.
A valid hreflang block with an unindexed translation is still a failure. Search Console is where you confirm the outcome, and where you will see if a broader international SEO strategy problem, like thin translations, is the real cause.
Common mistakes when testing hreflang
Most testing mistakes come from trusting one tool or testing the wrong version of the page.
- Testing only the English page. Problems often sit on the translations, where templates differ. Test one page per language.
- Treating a green result as proof of indexing. A checker validates syntax and return links. Only Search Console shows whether Google indexed the page.
- Testing a URL that redirects. Test the final, canonical URL; a tester following a redirect can hide the real problem.
- Ignoring warnings about canonicals. "Non-canonical return links" usually means a trailing slash or protocol mismatch across the whole site.
- Chasing missing x-default as an error. x-default is recommended, not required. Add it, but fix return links and canonicals first.
- Not retesting. Changes take time to be recrawled, so re-check Search Console after Google has revisited the pages; see how long SEO takes for realistic expectations.
Frequently Asked Questions
What is the best free hreflang checker?
For a single page, the hreflang Tags Testing Tool on TechnicalSEO.com is free and is one of the two tools Google's documentation links to. For a whole site, Screaming Frog's SEO Spider has a full hreflang report and its free version crawls up to 500 URLs. Pair either with Search Console to confirm indexing.
Does Google Search Console show hreflang errors?
Not anymore. Google deprecated the International Targeting report that used to show hreflang errors, though it still supports hreflang. Use URL Inspection to compare the user-declared and Google-selected canonical for each language version, and use a crawler or a single-page tester to find return-link and language-code errors.
How do I check hreflang tags manually?
View the page source and search for hreflang. Check that every language version is listed, the page lists itself, URLs are absolute with https://, and the current page's URL matches its canonical. Then open each alternate and confirm it has the same block. For PDFs, check the Link: HTTP header instead.
Why does an hreflang checker say "missing return link"?
It means page A lists page B as an alternate, but page B doesn't list page A back. Google requires reciprocal links and ignores annotations that aren't confirmed. The usual causes are a template that differs between languages, a URL mismatch such as a trailing slash, or a translation that was added without updating the existing pages.
How often should I check hreflang?
Check after every template change, redesign, migration or new language launch, because those are when clusters break. Otherwise, a quarterly crawl plus a quick URL Inspection of one page per language is enough for most small sites. Fix errors at the template level and recrawl to confirm.
Build a testing routine, not a one-off check
Use an hreflang checker in layers: view source for one page per language, a single-page tester for quick spot checks, a crawler for the whole site, and Search Console URL Inspection to prove each translation is indexed under its own URL. Fix errors in templates, then retest.
If you'd rather not run that routine at all, Agent Solo's Growth plan publishes in two languages with hreflang and canonicals generated from one source, so return links and self-references stay consistent, and Scale covers up to five languages. Get early access to try it on your next market.