Hreflang Tag Generator

Generate hreflang tags for every language of a page and check the cluster for the mistakes that make Google discard the whole set silently.

Processed on your device — no upload

termiva hreflang --check

Every language this page exists in

  • FineCluster3 alternates, all consistent.

The same block goes on every page in the cluster, unchanged — including the page it describes. A set where the English page names only the Arabic one is not a set: Google discards the whole group rather than honouring half of it, and reports nothing.

x-default is not a language. It is what to serve a reader whose language is in none of the sets — usually the same URL as your primary language, which is why it may repeat one of the hrefs above.

The region goes after the language and is uppercase: en-GB, not en_GB or EN-gb. And the region alone is never valid — there is no hreflang="GB".

languages 2tags 3problems 0nothing uploaded

How to use it

  1. List every language of the page.
  2. Choose the fallback.
  3. Put the same block on every page in the set.

How it works

hreflang tells Google that several URLs are the same page in different languages, so it serves the right one and stops treating them as duplicates competing with each other. It is a signal about which version to show, not about ranking.

It is also the one piece of international SEO that a multilingual site cannot skip and cannot half-do. A site in one language never needs it; a site in two needs it on every page of every pair, and the failure mode for getting it partly right is the same as for leaving it out entirely.

The rule that breaks most clusters is reciprocity. Every page in a set must name every page in the set — itself included. If the English page lists the Arabic one but the Arabic page lists nothing, Google discards the whole group rather than honouring half of it, and nothing in Search Console names the page that broke it. That is why the same block goes on every page unchanged, and why this asks for the page's own URL to check the self-reference is there.

x-default is not a language. It is what to serve a reader whose language matches none of the sets. Usually it points at the same URL as your primary language, which is why it repeats one of the hrefs — and why a duplicate-target warning that fires on it is a warning that teaches people to ignore warnings.

A worked example

The language tag has a shape. The language goes first in lowercase, the region after it in uppercase: en-GB, never en_GB or EN-gb. A region on its own is never valid — there is no hreflang="GB", because a country is not a language.

Absolute URLs only. A relative href is discarded without a word, the same failure the sitemap generator guards against. It is a slow failure: everything looks correct for weeks.

Three places will carry these, and one is enough. The head of each page, an HTTP header, or the sitemap. Pick one. Declaring the same cluster in two places is not redundancy — it is two chances to disagree, and a disagreement invalidates both.

Questions

Do I need hreflang for one language?

No. It only does anything once the same content exists at more than one URL in more than one language or region.

What happens if a page does not list itself?

The whole cluster is ignored. Google requires every page in the set to declare the full set including itself, and it fails silently rather than partially.

Is x-default required?

No, but it is nearly always right to have one. Without it, a reader whose language is in none of your sets gets whichever version Google guesses at.

Head tags, headers or sitemap?

Any one of them. Not two — declaring the same cluster twice creates two chances to disagree, and a disagreement invalidates both declarations.

Does hreflang replace canonical?

No. They work together: each page is canonical to itself and declares the others as alternates. A canonical pointing at another language collapses the set.

Can two languages point at one URL?

Yes — en and en-GB can share a page. What is wrong is two different languages resolving to the same document by accident, which this reports as a warning.

Is Hreflang Tag Generator free to use online?

Yes — free, with no account, no daily limit and no watermark. It runs online in your browser, and because the work happens on your own device it keeps working offline once the page has loaded.

Reading