If your company sells in Germany, the US and the UK, you probably have the same page in two or three languages. Hreflang is the small tag that tells Google which version to show to which searcher. When it is wrong, a German buyer can land on the English page, or the German page never shows at all.
Hreflang errors are quiet. Nothing breaks on the page, and no visitor reports it. You only see it later, as wrong-language traffic or translated pages that never rank. So I check it the way I checked equipment on a gas plant: a fixed list, every time, in the same order.
The seven checks
All rules below come from Google’s guide Tell Google about localized versions of your page.
- Every version lists itself and all the others. If the English page names the German page, the German page must name the English page too. Google says: “If two pages don’t both point to each other, the tags will be ignored.” These are called return links, and they are the first thing to check.
- The codes are real codes. The language comes first, in ISO 639-1 (
de,en,ru). A region is optional and comes second, in ISO 3166-1 Alpha 2 (de-AT,en-GB). A country code alone is not valid. A common mistake isen-UK: the code for the United Kingdom isGB, and Google says reserved codes likeUKandEUhave no effect. - The URLs are full URLs. Google requires the full address with https, for example
https://example.com/de/, not/de/. - Every URL in the set works. Each alternate must return 200, with no redirect and no noindex. A tag that points to a redirect or a 404 is a broken promise to Google.
- The canonical points to the same page. The German page’s canonical tag should name the German page, not the English one. If a translation says “the English page is the real one”, you are asking Google to drop the translation.
- There is a fallback.
x-defaulttells Google which page to show when no language matches the searcher. For many B2B sites this is the English page. - One method, used the same way everywhere. You can put hreflang in the HTML head, in HTTP headers or in the XML sitemap. Google treats the three as equal. Pick one, or make sure two methods say exactly the same thing.
What hreflang does not do
Hreflang does not translate anything, and it does not tell Google what language a page is in. Google says it uses its own algorithms for that, not hreflang and not the HTML lang attribute. So a “German” page that is half English is still half English to Google. Hreflang only works when the pages really are translated.
Google also says localized pages are only treated as duplicates when the main content stays untranslated. Translating the menu and leaving the body in English is the usual way to fall into that.
What I found on my own sites
On 10 November 2026 I ran these checks on two sites I work on. This site has 77 URLs in its sitemap in four languages (English, German, Russian, Armenian). 76 of them carry a full set of hreflang tags: every version lists itself, the other three and x-default, every return link exists, and every canonical points to its own page. The one URL without tags is an English-only article, which is correct: a page with no translation needs no hreflang.
On Layerly, my agency’s site, 18 of 27 sitemap URLs have English and Armenian pairs with x-default, all with return links. The other 9 are English-only pages (eight articles and the guides index), so again no tags are needed.
No errors this time. But both sites changed many pages in the last two weeks, and hreflang is exactly the kind of thing that breaks quietly when one template changes. That is why the check is on a list, not left to memory.
How to run the check yourself
- Open your XML sitemap and list every URL that has a translation.
- For each one, open the page source and copy the
hreflanglines and the canonical. - Check the seven points above. A spreadsheet with one row per URL and one column per language makes missing return links easy to see.
- In Search Console, look at which pages get impressions in which country. A German page with impressions only from the US is a sign that something is off.
On a site with a few hundred URLs this takes an afternoon by hand. On a bigger site a crawler can do the comparison, but someone still has to read the result.
Work with me
I run SEO and AI search projects through my agency, Layerly. If your site has several languages and the wrong pages show up in the wrong countries, a free website check is a good first step.
Related reading: