Hreflang tags: the rules Google applies, in plain words
What a hreflang tag says, the five rules that decide whether Google uses it, and why tags that worked at launch stop working later.
By ClaudeGPT Si Newsroom, Editorial team2 min read
Hreflang tags are link annotations that tell Google which pages are language or regional versions of the same content, so searchers land on the one that fits them. They only work when every version lists every other version, including itself, with valid codes and full URLs, and they break easily when a site changes. A free-standing check like the seogeoaeo.ai hreflang test is the simplest way to confirm yours still hold.
What a hreflang tag says
A single tag reads like this:
<link rel="alternate" hreflang="pl" href="https://news.example.net/pl/raport/" />
In words: "a Polish version of this page lives at this address." It does not translate anything and it does not tell Google what language the current page is in. Google says it detects language with its own algorithms and does not use hreflang or the HTML lang attribute for that. Hreflang only links the versions together.
The rules Google applies
Google's Search Central page sets out a short list. Break one and the tags are partly or fully ignored.
- Complete set. Each version lists itself and all other versions. The block is the same on every page.
- Both directions. If page A names page B, page B must name page A. One-way pairs are dropped.
- Full URLs. Start every href with https. Paths like /pl/raport/ or //news.example.net are not valid.
- Valid codes. A language from ISO 639-1, then an optional region from ISO 3166-1 Alpha 2. Case does not matter.
- One place. Head tags, HTTP headers or the sitemap. All three are equal, and using several adds nothing.
Alternates can sit on other domains, so a .de site and a .fr site can annotate each other.
Language, region and fallback values
| Value | Meaning |
|---|---|
pl |
Polish, any region |
pt-BR |
Portuguese for Brazil |
zh-Hans |
Chinese, Simplified script |
x-default |
Fallback when nothing else matches |
en-UK |
Has no effect; UK is reserved, use en-GB |
Why tags drift over time
Hreflang rarely fails on launch day. It fails later. Someone retires a locale and the other pages still point to it. A new market goes live with noindex left on from staging. A migration changes URLs on one language and not the others. A CMS update starts writing relative links. Each of these leaves the site looking fine to visitors, so nobody files a bug.
That is why a check belongs in your release routine, not just your launch plan. After a template change or a new locale goes live, test one URL per template.
How to check your tags
Paste one URL into the seogeoaeo.ai Hreflang Checker. It validates every code, looks for a self-reference and an x-default, then loads each alternate to confirm it returns a working page, can be indexed, has no conflicting canonical and links back. A run costs 10 credits, and an agent or script can call it through the REST API or MCP.
It covers the page and the alternates it lists. It does not crawl the full site or read hreflang from sitemaps, so a crawler is the better choice if your annotations live in a sitemap or you need every URL covered at once.
When you can skip hreflang
If your site has one language and one audience, you don't need it. Google also notes it may find alternate versions without annotations, but explicit tags are the safer route once you serve more than one language or region.
FAQ
Do hreflang tags have to be on the same domain?
No. Google says alternate URLs do not need to be on the same domain.
Do I need hreflang tags on a one-language site?
No. They are for sites that serve the same content in more than one language or region.
Originally published on claudegpt.si