Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →A hreflang checker is a diagnostic tool: it reads the localization signals your site exposes, validates their syntax and relationships, and reports problems such as missing return links or invalid language codes. It cannot guarantee that Google will index a URL or show it to a particular searcher. Google uses hreflang annotations to discover equivalent language or regional URLs, while determining page language primarily from visible content.
This guide gives you a repeatable audit method for HTML, HTTP-header, and XML-sitemap implementations, explains common warnings, and shows how to interpret checker output safely.
What a hreflang checker actually checks
Hreflang connects versions of the same page for different languages or regions. Google recommends separate URLs for each version and supports three equivalent ways to declare the relationship: HTML <link> elements, HTTP Link headers, and XML sitemaps. A checker should inspect the method your site really uses; a tool that reads only rendered HTML cannot validate header-only annotations.
Google’s official guidance says, “Each language version must list itself as well as all other language versions.” See Localized Versions of your Pages and Managing Multi-Regional and Multilingual Sites. Hreflang is a signal, not a command to Google, and the lang attribute alone does not replace it.
Recommended Free Tools
Signals a useful checker can validate
- Whether every intended locale URL is discoverable.
- Whether each page lists itself and every peer in the group.
- Whether alternate links are reciprocal.
- Whether language and region codes use accepted formats.
- Whether target URLs are absolute and syntactically valid.
- Whether annotations are present in the correct source: HTML, response headers, or sitemap.
- Additional diagnostics such as redirects and canonical targets, when the product documents that capability.
Choose the right implementation source
| Method | Where to inspect | Typical checker requirement |
|---|---|---|
| HTML | The well-formed page <head> |
Fetches source or rendered HTML and parses rel="alternate" hreflang links |
| HTTP headers | The response’s Link header |
Preserves and parses response headers, including redirects where relevant |
| XML sitemap | <xhtml:link> entries in a sitemap |
Accepts a sitemap URL and understands sitemap annotations |
Google says these methods are equivalent from its perspective. Using all three is not automatically better; duplicate systems can drift. Select the method your team can keep consistent unless a specific technical requirement calls for another.
How to check hreflang tags step by step
- List the intended variants. Create a row for every language or regional URL in each page group. Include the default or fallback URL only if you have a deliberate reason.
- Open the implementation source. For HTML, view the raw response and the rendered DOM separately. For headers, inspect the actual HTTP response. For sitemaps, download the sitemap and confirm the XML namespace and entries.
- Run a checker that supports that source. Enter one live URL, a URL list, or a sitemap according to the tool’s documented workflow. Google notes that third-party debugging tools are not maintained or checked by Google; treat their output as diagnostics.
- Check self-reference. Every page should include its own URL with its language-region value, in addition to its peers.
- Check reciprocal links. If page A declares page B, page B must declare page A. Follow every reported alternate and verify the return relationship.
- Validate codes. Use an ISO 639-1 language code, optionally followed by an ISO 3166-1 Alpha 2 region code, such as
en,en-US, orfr-CA. A region by itself is invalid. Reserved values such asEU,UN, andUKhave no effect in these annotations. - Validate URLs. Use fully qualified HTTPS URLs where appropriate, confirm they return the intended locale, and record redirect or canonical behavior as a separate diagnostic.
- Compare the set on every peer. The alternate set should be the same on each page in the group. A missing locale on one page can make the relationship incomplete even when the other pages look correct.
- Re-test after deployment. Cache, CDN, framework rendering, and sitemap generation can produce different output from local source files.
Using x-default
x-default identifies an optional fallback URL for users whose language is not explicitly listed. It does not repair invalid codes, missing self-links, or missing reciprocal links, and it is not a replacement for a real language annotation.
Reading common checker errors
“No return tag” or “non-reciprocal”
The source page names an alternate that does not name the source back. Check the destination’s actual response, not a template file, and ensure redirects do not send one locale to a page with a different annotation set.
Rank #2
Invalid language or region
Correct the value to the documented two-letter language format and, when needed, a two-letter country code. Do not use a country without a language or assume that a familiar abbreviation is valid.
Missing self-reference
Add the page’s own absolute URL to the same alternate set. Self-reference is required alongside links to every other version.
Relative, malformed, or inaccessible URL
Replace relative targets with fully qualified URLs, fix encoding errors, and confirm the checker can fetch the response without authentication, a blocked user agent, or a geo redirect.
Rank #3
Annotations not found
The checker may be reading the wrong layer. Confirm whether your implementation is in HTML, headers, or a sitemap and select a tool that supports it. A JavaScript-injected link may be absent from raw HTML even though it appears in a browser DOM.
Canonical or redirect warning
These are useful additional diagnostics, but the exact rule depends on the checker and your architecture. Investigate whether the alternate resolves to the intended locale and whether the canonical points somewhere unexpected; do not treat every vendor warning as a Google prohibition.
Free tools Windows power users keep installed
One-click scans. No signup required.
How to evaluate a hreflang checker
Before adopting a service, compare the capabilities that affect your workflow:
Rank #4
- Sources: rendered or raw HTML, HTTP headers, and sitemap annotations.
- Scale: one URL, a URL list, or a site/sitemap crawl.
- Relationship testing: whether it follows alternates and tests return links.
- Validation depth: code format, URL status, redirects, and canonical diagnostics.
- Repeatability: exportable reports, API access, and scheduled or repeatable runs.
- Limits and privacy: URL quotas, account requirements, data retention, and whether authenticated pages are supported.
A vendor API may let you submit a URL list or sitemap and query completed results; that is a description of the vendor’s workflow, not independent evidence of speed or accuracy. The Hreflang Testing Tool FAQ says its service can interpret HTTP-header hreflang and use a sitemap to discover URLs, but cannot analyze annotations supplied in XML sitemaps; its URL limits and API access depend on the account and current service terms. Verify those details before selecting it. A Chrome Web Store extension from digitaldarts.com.au describes reciprocal-link, code, canonical, and geo-IP checks; those are listing claims, not independent test results.
Manual verification when a checker disagrees
- Fetch the URL with and without a trailing slash and record status codes.
- Inspect the raw HTML response, not only browser-inspected DOM.
- Inspect response headers separately.
- Open the sitemap URL and verify its XML namespace and alternate entries.
- Follow each alternate and repeat the same checks.
- Compare the final URL, canonical, visible language, and hreflang set.
Google determines language from visible content, so a correctly formatted annotation cannot compensate for a page whose text, title, or navigation is effectively in another language. Keep locale URLs crawlable and avoid relying on forced geo-IP redirects that prevent users and crawlers from reaching other versions.
Troubleshooting checklist
- Works locally but fails live: inspect CDN or edge-generated HTML and headers; purge stale cache and re-run the test.
- Only some locales fail: compare templates and CMS records for those languages; one missing translation entry can remove a link.
- Sitemap test is empty: confirm the submitted sitemap is the index or child file that actually contains the annotations and that the tool supports sitemap annotations.
- Links disappear after JavaScript: place critical annotations in server-rendered HTML or use the supported header/sitemap method.
- Checker cannot fetch a page: allow its documented crawler, remove authentication requirements for the test URL, and check robots, WAF, and rate limits.
- Google still chooses another URL: this is not proof that the checker is wrong. Review visible language, internal links, canonicalization, duplicate content, and crawlability; hreflang is only one signal.
Or skip the browser setup
For visual QA of each localized URL, ScreenshotNeo can capture a clean page through one request. It is not a hreflang validator, so keep the checker workflow above for annotations; use a screenshot to confirm that the delivered locale, consent state, and layout are what a visitor sees.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallBest Value
cURL (details at ScreenshotNeo docs):
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for AI agents. The Free plan includes 1,000 screenshots per month without a card; paid plans start at $5 for 3,000 shots. Sign up free.
Frequently Asked Questions
Can I validate hreflang with Google Search Console?
Search Console can reveal indexing and international-targeting symptoms, but it is not a complete parser for every HTML, header, and sitemap relationship. Use a source-aware checker and manual HTTP inspection.
Should every locale use the same number of hreflang links?
Yes. Each page in one alternate group should expose the same complete set, including itself, unless the URLs genuinely do not represent equivalent content.
Is en-UK a valid hreflang value?
No. Use the ISO country code GB, for example en-GB. Google specifically says reserved UK has no effect.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




