Hreflang Tag Generator
Four input modes (manual, pattern, bulk, audit existing). Five output formats. Nine real-time Google compliance checks including reciprocity matrix, x-default presence, and underscore-vs-dash fixes.
Locale entries
Define every locale variant of this page. Tags are validated against ISO 639-1 and ISO 3166-1.
Add one row per locale. Use x-default as a fallback for unmatched users.
Generated output
3 lines
<link rel="alternate" hreflang="en" href="https://example.com/en/page" /> <link rel="alternate" hreflang="tr" href="https://example.com/tr/page" /> <link rel="alternate" hreflang="x-default" href="https://example.com/page" />
Validation
Real-time checks against Google's hreflang implementation guide.
Locale tag is valid
All locale tags parse as ISO 639-1 (+ optional ISO 3166-1).
URLs are absolute
Every URL is an absolute URL.
URLs use HTTPS
All URLs are HTTPS.
x-default present
x-default is present.
No duplicate locales
Every locale tag is unique.
Self-reference present
Each row references its own URL (implicit self-reference).
No underscore in locale
No row uses an underscore in the locale tag.
Locale includes a language
No row is country-only.
All rows reciprocate
All rows reciprocate within this set.
Reciprocity matrix
Visual check that every locale row is reflected in every other locale's set.
Language reference
Search 100+ ISO 639-1 codes with English and native names.