- Free, no sign-up
- Every alternate opened
- Checker and generator
Free Hreflang Checker and Generator
Paste a page or a sitemap and the checker opens every language version it names: does each one link back, use a valid code, return 200, keep its own canonical and stay indexable? Each version gets its own card, so a missing return link shows at a glance, each problem comes with the fix, and Google's rules are kept apart from best practice. The generator writes the tags for you as HTML, a sitemap block or an HTTP header, x-default included. No sign-up.
0.0 0 ratings
How useful was this tool?
Be the first to rate it.
How to use it
Check the set, fix it, write the tags
Paste a page or a sitemap
One language version is enough: we read its head and HTTP Link header, then open every version it lists. Or paste a sitemap and we check its hreflang sets.
Read the cards and the problems
One card per version: what it lists, whether each one links back, its status, canonical and own code. Every problem comes with the fix, Google's rules first.
Fix the tags, or let the generator write them
The set is filled into the generator with the codes and final URLs corrected. Copy it for every page as HTML, a sitemap block or an HTTP header.
Built forEnglish and Hindi sitesSites selling abroadMigrationsAudits
Quick answer
What does a hreflang checker do?
A hreflang checker reads a page's hreflang annotations, from the HTML head, the HTTP Link header or the sitemap, and then opens each alternate URL to confirm it lists the first page back, because Google ignores any pair that does not confirm each other. It also checks that every code is an ISO 639-1 language with an optional ISO 3166-1 region (en-GB, not en-UK; hi-IN, not IN), that every URL is absolute, and that each version returns 200, is indexable and canonicalises to itself. A generator does the reverse: list your URLs and languages and it writes the full set for every page, including x-default.
What really breaks
Google's rules vs best practice
Google's rules (from its page on localized versions; break one and Google ignores the tag or the pair):
- Return links: if page A lists page B, page B must list page A.
- Fully qualified URLs with https:// and the domain; not /hi/page or //example.com/hi/page.
- Valid codes: an ISO 639-1 language, then an optional ISO 15924 script and ISO 3166-1 region. es-419 is not supported, and UK, EU and UN have no effect.
- The tags sit in the head, and hreflang is not combined with media in one tag.
Best practice (what crawlers such as Screaming Frog flag; worth fixing, but Google does not drop the set for them):
- Every alternate returns 200, not a redirect or an error.
- Every version canonicalises to itself, never to another language.
- Every version lists itself, and no version carries noindex.
- An x-default for everyone whose language matches none of the versions.
The three methods (head tags, the HTTP Link header, the sitemap) are equal to Google. Pick one; using two gives no extra benefit and can disagree.
Codes
Codes that look right but are not
| Written | Why it fails | Write |
|---|---|---|
| en-UK | UK is a reserved code; the United Kingdom is GB | en-GB |
| IN | A country alone, with no language | en-IN or hi-IN |
| in | The old code for Indonesian, not India | id (Indonesian) or en-IN |
| hi-HI | HI is not a country code | hi-IN |
| en_IN | An underscore instead of a dash | en-IN |
| en-UAE | Three letters; the UAE's code is AE | en-AE |
| es-419 | Area codes (Latin America) are not supported | es, or es-MX, es-AR... |
| english | The name, not the code | en |
Scripts are fine where a language has more than one: zh-Hans and zh-Hant, sr-Latn. Case does not matter (EN-in works), but en-IN is the usual way to write it.
India
English and Hindi in India
Use en-IN and hi-IN only when the pages are meant for India; plain en and hi reach English and Hindi speakers anywhere. Point x-default at the main version or at a language picker. Keep each Hindi page's canonical on the Hindi page itself: a Hindi page that canonicalises to the English one asks Google to show the English page instead. Hinglish, written in Latin script, needs no hreflang of its own; an English page serves it.
Other engines
Bing and Yandex
Bing calls hreflang a far weaker signal than content-language and reads the html lang attribute, the content-language meta and the Content-Language header. The checker shows a Bing note when a page's html lang does not match its hreflang. Yandex supports hreflang.
FAQ
Questions people ask
What is hreflang?
An annotation that tells Google which URLs are language or country versions of each other, so it shows searchers the right one.
Does every page need a self-referencing hreflang?
Google's guide says each version lists itself and every other version. The checker flags a missing self entry.
What is x-default and do I need it?
The version for everyone whose language matches none of the others. It is recommended, not required.
What happens if return links are missing?
Google ignores that pair of pages.
Should I use en-IN or just en?
en-IN only if the page is meant for India specifically; en for English speakers anywhere.
Can hreflang and canonical be used together?
Yes. Each version canonicalises to itself, never to the other language.
HTML tags, sitemap or HTTP header?
All three are equal to Google. Sitemaps suit large sites; the header suits PDFs and other files without a head.
Can hreflang point to another domain?
Yes, the versions can sit on different domains.
Does hreflang help rankings?
No. It swaps in the right version where the site already ranks.
Does the checker run JavaScript?
No. It reads the raw HTML, which is where hreflang must be right.
Keep going
More free tools and guides
- Advanced SEO guide: international SEO, hreflang and the technical audit.
- Canonical Tag Checker: each version's canonical in detail.
- XML Sitemap Validator: the whole sitemap, its limits and a sample of URLs.
- Redirect Checker: alternates that redirect.
- Noindex Tag Checker: versions kept out of the index.
Did this tool help you?
Tap a star. It takes a second, no sign-up.
–
0.0 0 ratingsNo ratings yet.
Every version, both ways
Return links, codes and canonicals checked, the tags written. Free.