Hreflang Tag Generator & Validator
Generate escaped hreflang link tags or XML entries, import CSV rows, and validate locale, URL, duplicate, and x-default syntax.
Tool code processes selected files and entered content in your browser and does not submit them to a TOOLGRID processing endpoint. TOOLGRID measures tool usage, not the content you enter.
Loading toolβ¦
Browser-basedWhat this tool does
Build hreflang annotations from locale and absolute HTTP(S) URL pairs, import CSV rows, and validate an existing block for malformed locale codes, invalid URLs, duplicate locales, and missing x-default. Outputs escaped HTML link tags and XML sitemap entries without fetching alternate pages.
Use it when you ship a new translation, add a regional variant such as en-US, en-GB, or en-AU, audit existing hreflang on a multi-language site, or import dozens of locales at once from a CSV.
The validator checks the pasted block only: attribute order, locale shape, absolute HTTP(S) URLs, conflicting duplicate locales, and x-default coverage. It cannot prove return links because it does not fetch the alternate pages.
What you can do with this tool
When you add a Spanish or Japanese version of a page, you need hreflang on both the original and the new page so Google treats them as alternates. This tool generates the matching block for both sides at once.
If you serve different content to en-US, en-GB, and en-AU visitors (currency, shipping, terminology), each region needs its own hreflang tag plus a shared x-default fallback.
Paste a generated tag block to catch malformed locale codes, non-HTTP URLs, duplicate locale conflicts, and a missing x-default before running a separate live reciprocity crawl.
What to check before relying on the result
- Performance and maximum practical input size depend on browser memory, device speed, and the structure of the input.
- Review the generated result before replacing or publishing an original file.
How to use
- 1
Set the default locale β the language Google should fall back to when no regional match exists.
- 2
Add one locale plus URL pair per row, or drop a CSV file with locale and URL columns to bulk-import dozens at once.
- 3
Locale codes use ISO 639-1 (language) and optionally ISO 3166-1 alpha-2 (region) format: en, en-US, zh-CN, pt-BR, etc.
- 4
Toggle between HTML link tags (for the page head) and XML sitemap output (for sitemap.xml).
- 5
Switch to Validate mode to paste an existing hreflang block and surface duplicate locales, malformed codes, invalid URLs, and missing x-default.
Use Cases
When you add a Spanish or Japanese version of a page, you need hreflang on both the original and the new page so Google treats them as alternates. This tool generates the matching block for both sides at once.
If you serve different content to en-US, en-GB, and en-AU visitors (currency, shipping, terminology), each region needs its own hreflang tag plus a shared x-default fallback.
Paste a generated tag block to catch malformed locale codes, non-HTTP URLs, duplicate locale conflicts, and a missing x-default before running a separate live reciprocity crawl.
On sites with thousands of localized pages, embedding hreflang in every HTML head bloats every page. Generate the XML sitemap variant instead and centralize your hreflang declarations in one file.
Tips & Tricks
If page A points to page B as an alternate, page B should point back to page A. This local validator cannot fetch B, so verify reciprocity with a crawler or live page inspection after deployment.
x-default tells Google which page to show users whose language doesn't match any of your alternates. Without it, Google may pick an unpredictable variant for global searchers.
hreflang values are ISO 639-1 language codes (en, fr, ja) optionally followed by ISO 3166-1 alpha-2 region codes (en-US, en-GB). Do not use country names like "British" β Google will ignore the tag.
You don't need both. Link tags in the head are convenient for small sites; XML sitemap entries scale better for sites with hundreds of locales. Mixing them works but is redundant.
FAQ
What is hreflang and when do I need it?
Hreflang is an HTML attribute that tells Google which version of a page to show users in different languages or regions. You need it when the same content exists in multiple translations or regional variants (e.g., en-US vs en-GB). Without it, Google may show the wrong language or treat your translations as duplicate content.
Do hreflang tags need to be bidirectional?
Yes. Every page in a hreflang group must reference every other page, including itself. If the English page references the Spanish version, the Spanish version must reference the English back. Google ignores hreflang tags that aren't reciprocal.
What is the x-default hreflang and is it required?
x-default specifies the fallback page shown when no locale-specific version matches a user's settings. It's strongly recommended (especially for global homepage layouts) but not strictly required. We recommend always including it.
Why is Google ignoring my hreflang tags?
Common causes include missing return tags, malformed locale codes, redirects, non-canonical alternates, or conflicting canonical signals. The Validate tab checks only the pasted block's syntax; use a live crawl or Search Console to inspect return tags and deployed responses.
Do I need self-referencing hreflang tags?
Yes β strongly recommended. Each page should list itself as one of the alternates in its own hreflang block (for example, the English page declares en-US as one of its alternates pointing to its own URL). Without a self-reference, Google may treat the group as ambiguous and pick an unpredictable variant for search results.
Can I bulk-import locales from a CSV?
Yes. Drop a CSV file with two columns β locale, URL β onto the dropzone in Generate mode. A header row (locale,url) is auto-detected and skipped. Empty rows are filtered out. The status message reports how many locales loaded.
Should I put hreflang in HTML head or in sitemap.xml?
Both work β Google treats them equivalently. Link tags in the head are easier for small sites. XML sitemap declarations scale better for large sites with hundreds of alternates per page (and avoid bloating every HTML response). Pick one delivery channel per page to keep things consistent.
Does hreflang work for region-only variants like en-US vs en-CA?
Yes, this is the primary use case for regional codes. The format is language-region where region uses ISO 3166-1 alpha-2 (en-US, en-GB, en-AU, en-CA). Google will show the right variant based on user location and browser language.
Can I use hreflang across subdomains or different domains?
Yes. hreflang URLs can point to subdomains (es.example.com), subdirectories (example.com/es/), or entirely different domains (example.es). All three are equally valid as long as you reference the full canonical URL.
Do I need hreflang if I only publish in one language?
No. Hreflang is only meaningful for content that exists in multiple languages or regional variants. Single-language sites don't need it.
Is the generator safe to use with proprietary or staging URLs?
The generator runs in your browser. Tool code processes selected files and entered content in your browser and does not submit them to a TOOLGRID processing endpoint. Browser-local processing avoids a TOOLGRID upload path, but it is not a blanket security guarantee.
Useful next steps
Open a nearby browser tool when you need to validate, convert, or reuse the result.