The pattern repeats often enough to be predictable. A company commissions translations of its site into four languages, publishes them properly, waits a quarter, and sees almost no traffic from any of the new markets. Worse, the German page occasionally shows up in American results and the American page shows up in Germany. Nobody made an obvious mistake. What went wrong is hreflang, the least glamorous part of a multilingual website and the one that decides whether the translation investment ever pays back.

What hreflang is and what it is not

The short version of what is hreflang: it is an annotation that tells a search engine "this page has an equivalent version for readers of this language in this region". It is a hint about which version to show whom. It is not a ranking signal, it does not make a page rank better, and it will not rescue a page nobody wants to read. Its entire job is routing.

The annotation can live in three places: as link elements in the page head, as HTTP headers for non-HTML files like PDFs, or inside the XML sitemap. Pick one and use it consistently. Mixing methods across a site is not forbidden but it multiplies the chances of contradicting yourself, and contradictions are how the whole thing gets ignored. Google sets the ground rules in its documentation on localized versions of your pages, and those rules are stricter than most implementations assume.

Reciprocity is the rule people break first

Hreflang only works when the pages agree with each other. If the English page points to the French page, the French page must point back to the English one, and to itself, and to every other language in the set. A one-way declaration is not a weak signal, it is an invalid one, and search engines will usually discard the entire cluster rather than guess at your intent.

This is where the self referencing hreflang requirement catches people out. Every page in the group must include an annotation pointing at itself. It feels redundant, it looks like noise in the markup, and leaving it out is the single most common error in real audits. Add it and a surprising number of mysterious problems resolve themselves.

The hreflang canonical conflict

The second classic failure is subtler and more damaging. A site publishes a French page, annotates it correctly, and then sets its canonical tag to point at the English original. That combination tells a search engine two incompatible things at once: treat this page as a separate French version, and also treat it as a duplicate of the English page that should not be indexed. The canonical wins, the French page falls out of the index, and the hreflang cluster collapses.

The hreflang canonical rule is simple once stated. Every language version should carry a self-referencing canonical pointing at its own URL. Cross-language canonicals are almost always a mistake, usually introduced by a plugin default or a well-meaning developer trying to prevent duplicate content that was never duplicate content in the first place.

Language codes, region codes, and the difference

The value format is language, optionally followed by a region: fr for French anywhere, fr-CA for French in Canada, es-MX for Spanish in Mexico. The region part is optional and frequently misused. Using en-UK rather than the correct en-GB is common enough to be a running joke among technical auditors, and the invalid code is simply discarded.

A regional split is only worth making when the content genuinely differs by market: prices in local currency, different product availability, market specific legal terms. Splitting into eight regional variants of the same identical English page creates eight pages competing with each other and no benefit whatsoever. The broader background on internationalisation and localisation is useful here, because the decision about how far to split is a product decision before it is a technical one.

Translation quality still decides the outcome

Correct annotations route the right visitor to the right page. What happens next is content. A page that was machine translated and never reviewed will collect the visit and lose the conversion, and the bounce back to the results page is itself a signal. PoliLingua covers the adjacent problem well in its guide to building localized landing pages that work, particularly the point that keywords rarely translate literally and that researching them fresh in each market is not optional.

That is also why hreflang alone is never the whole plan. It solves routing, not demand. A complete international SEO strategy has to account for local search behaviour, local competitors and local link building, none of which appear in the markup.

A short audit you can run this week

Pull a list of every language version of a single template page. Check that each one references every other and itself. Check that each canonical points at its own URL. Check every code against the standard, paying attention to the region suffixes. Confirm that the annotations use absolute URLs, because relative ones are ignored. Then check the same template again in a month, because content management systems have a habit of reintroducing exactly these errors during routine updates.

It is tedious work and it takes an afternoon. Compared to the cost of translating a site into four languages and getting nothing back, it is the cheapest hour of the entire project.