You built Czech and English versions; Google now faces a puzzle — which to show whom? Without guidance it guesses: English pages surfacing to Czech searchers, or worse, the versions competing as duplicates. Hreflang is the annotation that ends the guessing.
What hreflang actually says
A tag on each page announcing its siblings: “this page in Czech lives here, in English here.” Google then serves the right language to the right searcher — Czech results for Czech settings, English for the expat who typed in English. Not a ranking boost; a routing instruction.
The three rules that prevent chaos
- Reciprocity: if the Czech page names the English one, the English must name back — one-way references get ignored.
- Self-reference: every page includes itself in its own set.
- Real codes: cs for Czech, en for English — and x-default for the chooser page, if you have one.
What hreflang can’t fix
Widget “translations” (no real pages to annotate), half-translated sites where English visitors hit Czech checkouts, and translated body text over untranslated titles and metadata — the part searchers actually see in results.
The practical setup
On WordPress, plugins like TranslatePress generate hreflang automatically when configured correctly — the failure mode is configuration, not the tool. It’s one of the first things we verify in a website audit. Have us check yours — mis-set hreflang is invisible to owners and obvious in the results pages.
Frequently Asked Questions
It tells Google which language version of a page to show which searcher — routing, not ranking.
Yes — without it Google guesses, and the versions can compete against each other as duplicates.
Language versions must reference each other both ways; one-sided hreflang gets ignored.
The version for searchers matching no listed language — usually your language-chooser or primary page.
Widgets can't use it — they don't create real pages; multilingual SEO requires actual translated URLs.
Search your pages from both language settings and audit the tags — misconfiguration is invisible on the site itself.

