Free tools

Hreflang tag generator

Language and region tags that point at each other properly. Free and no account. Nothing leaves your browser.

Language versions

One row per version, including the page you are putting these tags on.

Where someone goes when no version matches their language. Usually your global or English page, or a country selector. Optional, but without it an unmatched visitor is assigned a version by guesswork.

Paste inside <head>

<link rel="alternate" hreflang="en" href="https://example.com/">
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/">
<link rel="alternate" hreflang="de" href="https://example.de/">
<link rel="alternate" hreflang="x-default" href="https://example.com/">

The same block goes on every page in the set, unchanged — each one has to list all the others and itself. If page B does not link back to page A, Google drops the pairing without reporting an error, which is why hreflang so often looks fine and does nothing.

What it tells you

  • Catches invalid region codes

    en-UK is the most common hreflang error there is. The country code is GB, and this tool says so before you ship it.

  • Self-reference included

    Every page must list itself. Forgetting it is the usual reason a correct-looking set is ignored.

  • x-default handled

    The fallback for visitors whose language matches nothing you publish.

  • Absolute URL check

    Relative hreflang URLs are invalid, and nothing reports the error at runtime.

How to use it

  1. 1List every language versionInclude the page you are adding the tags to. All versions must appear in every version's tag block.
  2. 2Set an x-defaultUsually your English or global page, or a country selector.
  3. 3Put the identical block on every page in the setNot a variation per page. The same complete list, everywhere.

Questions people ask

Why is my hreflang being ignored?

Almost always a missing return link. If page A names page B but page B does not name page A, Google discards the pairing. It reports nothing at runtime, so the tags look correct while doing nothing. Every page in a cluster must list every page in the cluster, itself included.

Is en-UK valid?

No, and it is the single most common hreflang mistake. The language part uses ISO 639-1 and the region part uses ISO 3166-1 Alpha 2, where the United Kingdom is GB. en-UK is silently discarded. Greece is another trap: the code is GR, not EL.

Do I need x-default?

It is optional but worth setting. Without it, a visitor whose language matches none of your versions is assigned one by Google's own judgement. With it, you decide where they land.

Head tags, HTTP headers or sitemap?

All three work and you should pick exactly one. Implementing hreflang in two places at once is how sets end up contradicting each other, and a contradiction means the whole cluster is dropped. Head tags are simplest for most sites; the sitemap method is easier to maintain at scale.

Other free tools

Want a tool like this on your own domain?

This page is the argument for the offer. A small useful utility gets embedded and linked, and every embed is a link back. kiterank builds one for your audience and hosts it on your domain, so the links accrue to you rather than to us.