You Have an English Site, a Spanish Site, and a French Site. Google Shows the Wrong One to Everyone.
Without hreflang tags, Google guesses which language version to show each user. It guesses wrong. A lot.
Your Spanish page shows up for English searches. Your French users see the German version. Nobody is happy.
What Hreflang Does
Hreflang tags tell Google: "This page exists in multiple languages/regions. Here are all the versions. Show the right one to the right user."
Each page includes hreflang annotations pointing to all its language variants, including itself.
The Syntax
`<link rel="alternate" hreflang="en-us" href="https://example.com/page" />`
`<link rel="alternate" hreflang="es" href="https://example.com/es/page" />`
`<link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />`
Language code (required) + optional country code. Always include an `x-default` for the fallback version.
The Rules That Trip Everyone Up
Return links are required. If page A references page B as a variant, page B must reference page A back. If the return link is missing, Google ignores the hreflang.
Canonical and hreflang must align. The canonical URL must match the hreflang self-reference. Mismatches cause Google to ignore everything.
Each page must reference all variants, including itself. Do not forget the self-referencing hreflang tag.
Implementation Options
In the HTML `<head>`. In HTTP headers (for PDFs and non-HTML files). In your XML sitemap. Google's SEO documentation covers hreflang as part of international SEO.
Pick one method. Stick with it. Do not mix methods for the same pages.
Why Most Hreflang Implementations Are Broken
Because they are maintained manually. Someone adds a new page in French and forgets to update the English and Spanish hreflang annotations. Now the return links are missing. Google ignores everything.
Automate it. Use your CMS to generate hreflang tags dynamically.
Track international SEO setup with seocheckup.app. 113 tasks. Free. No credit card. 30 seconds.