hreflang
An hreflang annotation tells a search engine that two pages are the same document in different languages. It only works when both sides name each other and each one names itself — a one-sided set is discarded for the whole cluster.
What it is
Three <link> tags in the head of a bilingual page, or the equivalent in a sitemap. English page says: I am en, the Polish one is pl, and the fallback for everyone else is this. The Polish page says the same thing about itself.
That mutuality is the entire specification worth remembering. A page that names a counterpart which does not name it back is not a weaker signal — it is an ignored one, and Google drops the annotation for the whole group rather than guessing which half is right.
x-default is the page to show a visitor whose language matches nothing on the list. It is not a way to mark your main market.
Why it matters if you are paying for a website
Because without it the two versions compete. The search engine sees two pages saying much the same thing, picks whichever it likes for every query, and shows Polish results to English readers and the other way around. With it, the pair is one document in two languages and each gets shown to the audience that reads it.
What I actually see go wrong
One-sided pairs, almost every time. Someone adds the annotation to the English page during a translation project and never touches the Polish one, and the whole thing silently does nothing.
It is worth a build gate because the failure is invisible from the inside: both pages render, both deploy, both look finished, and only the link between them is missing. That is how eighteen portfolio pairs on this site — every one of them a real translation sitting in the repository next to its original — shipped unlinked, and nothing in the build had an opinion about it. There is a script now that fails the build on a pair that is one-sided or crossed, and it checks the taxonomy listings too.
The second failure is a pair that points at a redirect or a trailing-slash variant, which is the same as pointing at nothing.
What hreflang is not
It is not a ranking factor and it will not make a page rank in a country it has no business ranking in. It also does not replace the canonical: each language version is canonical to itself, and getting that wrong — pointing the Polish page’s canonical at the English one — removes it from the index entirely.
Related terms
See also
Want this done, not just defined?
This is the part of the work I get hired for. The page below says what it costs and how it runs.
AI visibility auditWhere I write about this

Online PDF Editor
Free, privacy-first PDF editor that runs in the browser. Replace text, reorder pages, extract images and convert to Word — no install, no signup. Built with Flask + PyMuPDF on Google Cloud Run.

Enhanced WP REST API Plugin
Open-source WordPress plugin extending REST API for headless CMS. Adds GA4, Polylang hreflang data, relative URLs and headless mode with 301 redirects.

Multilingual Corporate Website for an Aluminium Profiles Manufacturer
Multilingual corporate website showcasing Grupa Kęty's Extruded Products Segment — aluminum profiles, products and services.

Magento Open Source End of Support: A Complete Guide to the Decision You Need to Make in 2026
Adobe isn't shutting down Magento tomorrow — but for Open Source, extended support never existed. Real timeline, costs, regional integrations, migration plan, and the fourth option nobody talks about.