|
Tiempo de lectura
6 min
Hreflang for multilingual websites
Hreflang tells Google which URL is the right language or regional version of the same content. It does not translate pages or fix thin copy; it only works when equivalents are real, indexable, and linked reciprocally. This page walks through implementation, validation, and the mistakes that make Google ignore the whole cluster.
What problem does hreflang solve?
Hreflang resolves ambiguity between equivalent pages aimed at audiences with different languages or markets. If your store has a category in Spanish for Spain and another adapted for Mexico, Google needs signals to understand they are not accidental duplicates, but legitimate regional alternatives. It also helps a user find the most appropriate version from search. I would start by defining which URLs have a real language or country equivalent before generating tags at scale.
How to implement it correctly
Correct implementation starts with closed groups of equivalent URLs: each page must list its available variants and also declare itself. For example, a services page in Spain Spanish, Mexico Spanish, and English should form a single set with three accessible, coherent URLs. Do not pair a category with a product page just because they share a topic. I would prepare an equivalence inventory first and validate the editorial logic before touching templates, modules, or automatic rules.
Build groups of equivalent URLs
Define language and region with valid codes
The hreflang tag uses language codes and can add a region when segmentation requires it. A value like es-ES identifies Spanish aimed at Spain, while es-MX identifies the alternative for Mexico; if there is no market-specific adaptation, es may be enough. The choice should match the content and user intent, not the country where the server is hosted. I would document each approved combination to avoid invented variants or inconsistent formats across teams.
Include self-reference and reciprocity
Every URL in the group must link via hreflang to the other versions and to itself. If the Spanish page points to the Mexican one, but the Mexican page does not return that link, the relationship is incomplete and Google may ignore it. Think of a set of three pages: all three must contain exactly the same three references, unless one version is removed. I would check annotations from both directions before publishing a new translation or retiring a regional version.
Decide when to use x-default
The x-default value marks a fallback version when no alternative fits the user’s language or country. It can be a language picker page or a neutral international version, as long as it offers a logical experience and does not block navigation. If a site offers Spain Spanish, Mexico Spanish, and English, the English version does not have to be the default automatically. I would use x-default only when a URL is clearly designed for that role and include it in the same reciprocal group.
Common mistakes that break it
The most damaging failures appear when hreflang is applied without checking the real state of URLs. An annotation does not fix a page with noindex, a redirected target, or a canonical pointing elsewhere. If a translated page has been replaced, keeping it in the language map creates contradictory signals. I would review HTTP status, indexability, and canonical on each target before diagnosing a problem as purely linguistic.
Using URLs that are not equivalent
Linking pages with different intent is one of the most common mistakes in international SEO. It happens when an English version has fewer categories, a regional campaign does not exist in another country, or translations were published with different structures. Hreflang must not force correspondences between pages that do not answer the same need. I would exclude any URL without a direct alternative and review its internal linking, canonical, and indexation strategy on its own.
Confusing hreflang with canonical or redirects
The canonical tag indicates the main URL among very similar content, while hreflang communicates valid alternatives for different languages or regions. Automatic redirects based only on location do not replace these signals and can stop users or crawlers from reaching other versions. To sort decisions, it helps to review internal duplication first in our guide on fixing website indexing problems, which covers canonical use alongside indexation. I would keep a self-referencing canonical on each international version when all of them should be indexed separately.
How to validate it
Validation means checking both the code and page behavior. Review a representative sample in each language: correct response, indexable, coherent canonical, and all expected annotations present. Then extend the review to templates, pagination, filters, and pages with incomplete translations, because broken groups often appear there. I would combine a URL audit with coverage monitoring, using the same criteria as how to detect and fix website indexing problems to separate hreflang errors from general indexation issues.
Search Console’s international targeting report and URL inspection help confirm which version Google selected for a sample query. Third-party crawlers can export hreflang pairs, but they still need manual review: a crawler will happily report reciprocity on URLs that redirect to the homepage. I would fix structural problems before trusting a green checkmark in a spreadsheet.
In short: hreflang is powerful and unforgiving
Hreflang works best when it reflects an international strategy that is already defined: priority markets, equivalent content, stable URL structure, and clear rules for new publications. If your restaurant has different menus for Spain and Mexico, changing currency or translating a title is not enough; you must decide which pages are truly comparable and maintain that relationship in every version. I would integrate this review into publishing and every migration, together with an updated XML sitemap submitted to Google.
Document who owns the equivalence map: marketing, product, and development should agree before hreflang goes live in the CMS. When a locale launches late, add it to every sibling page in the group the same day, not in a follow-up sprint. Partial updates are how reciprocity breaks quietly after a redesign.
Hreflang signals Google uses
Google treats hreflang as a hint for language and optional region on localized pages. Reciprocity is operational: every version must list the same set and include itself. Broken groups are common after URL changes, redesigns, or retired locales; validation should start with crawlable, indexable targets and real content parity.
Check | Pass | Fail |
|---|---|---|
Reciprocity | All locales list the same hreflang set | ES points to EN but EN omits ES |
Self-reference | Each URL includes itself in the group | Only alternate languages listed |
Target status | 200, indexable, self-canonical | noindex, redirect, or wrong canonical |
Equivalence | Same intent and comparable content | Category paired with a product page |
Conclusion
Hreflang is powerful and unforgiving. It is not a tag for every multilingual URL, but precise relationships between equivalents kept current as the site changes. Each version must be useful, accessible, and indexable on its own before you connect alternates. Complex international setups benefit from a coordinated SEO review so hreflang does not become contradictory signals.
Frequently asked questions about hreflang
What is hreflang used for?
Hreflang tells search engines which URL targets which language or region when several versions of the same page exist. It helps Google show the Spanish page to Spanish queries and the English page to English queries. It does not translate content or fix duplicate quality issues by itself.
Do I need hreflang on every page?
Only on URLs that have true equivalents in other languages or markets. Listing hreflang on pages without alternates creates noise and broken reciprocity. Start with templates that are fully localized—services, categories, core landings—and expand deliberately.
Can hreflang fix duplicate content?
No. Canonical tags handle duplication among similar URLs; hreflang declares valid alternates for different locales. If two URLs are not equivalents, hreflang is the wrong tool. Fix indexation and canonicals first, then connect locales that should coexist in the index.
Where should hreflang live?
In HTML link elements, HTTP headers, or an XML sitemap hreflang entry—pick one consistent method per site where possible. Mixed implementations can work but increase audit effort. Whatever you choose, keep groups reciprocal and update them when URLs change.
Need a marketing team?
Let’s talk and grow your business

Let's build something remarkable

