Multilingual SEO

How to optimize a site that serves multiple languages — multilingual vs. multi-regional, how Google really detects language, hreflang, URL structure, and Bing.

First published: Jun 25, 2026 · Last updated: Jul 18, 2026 · Advanced
demand #2 in Localization & Content#4 in International SEO#213 on the site

Multilingual SEO is optimizing a site that serves more than one language so each version reaches the right searcher. The thing almost everyone gets wrong: Google ignores your <html lang> attribute and Content-Language headers — it reads the visible text to detect language. hreflang doesn't tell Google a page's language either; it maps which URLs are alternates of each other. Bing is the opposite — it leans on the content-language meta tag. Get the language right first, then connect alternates with hreflang, then pick a URL structure (subdirectories for most sites). 67% of hreflang setups have errors, but Google fixes many of them automatically.

TL;DR — Get the mental model right and most multilingual SEO falls into place. Google does not read your <html lang> attribute or Content-Language HTTP header to detect language — it primarily uses visible text. Other engines may use different signals, so verify their current guidance. hreflang doesn’t declare a page’s language; it maps which URLs are alternates so Google can swap in the right one — and it’s a hint, not a directive. It’s also fiendishly error-prone: my study of 374,756 domains found 67% had hreflang issues. Use subdirectories for most sites, never auto-redirect Googlebot, and only translate pages with a real business case.

Evidence for this claim Google recommends distinct URLs for each language version and cautions against relying on cookies or browser settings to swap content at one URL. Scope: Current Google multilingual site guidance. Confidence: high · Verified: Google Search Central: Managing multilingual sites Evidence for this claim hreflang can connect equivalent language or regional URLs, while page language is determined from visible content rather than the annotation alone. Scope: Current Google localized-version guidance. Confidence: high · Verified: Google Search Central: Localized versions

Multilingual ≠ multi-regional

The foundational distinction. Multilingual is about language; multi-regional is about country. A Swiss site in German, French, and Italian is multilingual but single-regional. A US/UK English site is multi-regional but single-language. They overlap all the time, but they use different signals and create different problems, so I keep them separate in my head and so should you. Google’s own framing: “A multilingual website is any website that offers content in more than one language,” versus “A multi-regional website is one that explicitly targets users in different countries.”

How Google actually detects page language (this is the big one)

Here is the single most-misunderstood thing in this whole topic, and it’s worth overstating because so many people get it wrong:

Google ignores your <html lang> attribute. Google ignores your Content-Language HTTP header. It reads the visible text.

Straight from the docs: “Google uses the visible content of your page to determine its language. We don’t use any code-level language information such as lang attributes, or the URL.” And on the hreflang page: “Google doesn’t use hreflang or the HTML lang attribute to detect the language of a page; instead, we use algorithms to determine the language.”

On Search Off the Record (July 2024), Gary Illyes gave this a name: LDCP — Language Demotion, Country Promotion. His explanation: “if someone is searching in German and your page is in English, then you would get a demotion.” That’s a ranking mechanism, and it’s more fundamental than hreflang — if your page isn’t genuinely in the searcher’s language, LDCP demotes it regardless of what your tags say. (Illyes also signaled this kind of manual signaling is on the way out, noting Google already had systems “automatically learning” to pair alternate-language versions — auto-detection is the direction of travel.)

Why does Google distrust <html lang> so much? Because it’s wrong constantly. Gary told the Joomla story: the CMS “came with the Lang attribute set to English, and there was no way to override it… And then you looked at the page, and it was 100% German. So it was like you can’t trust that.” John Mueller has said the same — the HTML lang attribute is “something we don’t use at all” and “almost always wrong. So we tend to ignore that.”

The takeaway: language detection is a content problem, not a markup problem. Write real content in the target language. The lang attribute still matters for accessibility (screen readers) and for Bing — just not for Google’s language detection.

Bing does it the opposite way

Bing does not support hreflang. And where Google ignores your code-level language hints, Bing depends on them. Bing’s priority order:

  1. <meta http-equiv="content-language" content="en-us"> — the primary signal.
  2. <html lang=""> attribute — secondary.
  3. On-page text content.

Bing’s format is a 2-letter ISO 639 language code, a dash, then an ISO 3166 geography code (en-us, es-mx). So a properly internationalized site running on both engines wants distinct-URL content plus hreflang (for Google/Yandex) plus the content-language meta tag (for Bing). They’re not redundant; they feed different engines.

What hreflang actually does (and doesn’t)

hreflang is a relationship map, not a language detector. It doesn’t tell Google the language of a page — Google already gets that from content. It tells Google which URLs are alternates of each other and for which language-region audience, so Google can swap in the right one per searcher. Google: “Use hreflang to tell Google about the variations of your content, so that we can understand that these pages are localized variations of the same content.”

Three things have to be right or the cluster is ignored:

  • Bidirectional. “If two pages don’t both point to each other, the tags will be ignored.” English points to Italian, Italian must point back.
  • Self-referencing. Each page lists itself plus all the others.
  • x-default as a fallback for unmatched languages (recommended, not strictly required).

Three delivery methods: HTML <link> tags in the <head>, the HTTP Link header (useful for non-HTML files like PDFs), or an XML sitemap with the xhtml:link namespace. URLs must be fully qualified including https://.

And critically: hreflang is a hint, not a directive. Google’s own line is that “hreflang annotations are a hint to Google, not a directive.” It can and will override you when canonical tags, content signals, or indexation status disagree.

The valuable, under-covered angle: hreflang speeds indexing of new languages

Here’s a benefit almost nobody talks about. On the same SOTR episode, Gary Illyes said discovering hreflang triggers a verification crawl of the alternates: “There is a dependency crawl triggering when we discover Hreflang, like we want to verify that.” In plain terms — when Google finds hreflang on a page, it goes and crawls the alternate-language versions to verify the relationship, which speeds up indexing of your new language pages. So hreflang isn’t only about serving the right version; it’s a discovery accelerant for newly launched languages.

Why your GSC hreflang data looks thin (and that’s normal)

Another Illyes point worth internalizing: “Search Console only reports canonicals… the vast majority of the Hreflang clusters… are not canonical.” Most hreflang alternates aren’t canonical URLs, so they don’t show up individually in GSC’s coverage reporting. If your dashboards make it look like your language pages “aren’t indexed,” that’s often just GSC reporting canonicals — not a real problem. Verify with the URL Inspection tool and live SERPs rather than trusting the aggregate count.

Duplicate content: es-MX vs. es-ES

A common fear is that two Spanish variants will be flagged as duplicates. Google’s actual rule: “Localized versions of a page are only considered duplicates if the main content of the page remains untranslated.” Two genuinely-Spanish pages with real regional differences (currency, vocabulary, local references) are distinct. But two es-ES and es-MX URLs with identical text and no regional differentiation will be treated as duplicates — hreflang alone doesn’t separate them; distinct regional content does. Within a valid hreflang cluster, signals can also consolidate across the alternates, which is generally helpful.

URL structure, internal linking, and language detection

Structure. Subdirectories (/es/, /fr/) for most sites — they inherit root domain authority and are low-maintenance. Subdomains get treated more like separate sites. ccTLDs are the strongest country geotargeting signal but mean separate properties and separate link-building. URL parameters are explicitly “not recommended.”

Internal linking between versions. Link language versions to each other sensibly (the language switcher is part of this), but don’t treat every alternate as a primary nav link. Let hreflang carry the formal relationship; let the switcher serve users.

Language detection UX — and the crawlability trap. This is where sites quietly break themselves. Googlebot “sends HTTP requests without setting Accept-Language in the request header” and crawls mostly from US IPs (though it does use some non-US IPs too). If you auto-redirect users to a language version based on IP or Accept-Language, Googlebot may only ever see your English version and never discover the rest. Google’s blunt instruction: “Avoid automatically redirecting users from one language version of a site to a different language version.”

Do this instead: serve distinct URLs, annotate with hreflang, and if you want to help users, show a non-intrusive nudge banner (“This page is available in English — switch?”) that keeps them on their current URL and remembers their choice via cookie or localStorage. Use Accept-Language as a suggestion, never a redirect trigger. And don’t use flags as language identifiers — flags are countries, not languages.

Translation quality and machine translation

Machine translation itself isn’t banned. Google’s own definition: “Scaled content abuse is when many pages are generated for the primary purpose of manipulating search rankings and not helping users.” Jump to quote Translation is named as one example of an automated transformation covered by that policy — “including through automated transformations like synonymizing, translating, or other obfuscation techniques,” specifically “where little value is provided to users.” Jump to quote The judgment is value, not production method. Raw MT dumped at scale with no editorial oversight is the real risk; MT with human review and curation (a workflow often called MTPE) is a standard, scalable way to stay clear of it. Judge a translated page the way you’d judge any page — does it serve real search intent for that market — and don’t just translate your English keywords: do real keyword research per language, because intent and phrasing differ market to market. (More depth: machine translation and SEO.)

Schema for multilingual sites

Use the inLanguage property on your Article/Product/FAQPage schema to state the content’s language, and give each language version its own schema block in that language. Schema and hreflang do different jobs: hreflang maps alternate URLs; schema clarifies content meaning and language. They’re complementary layers.

The error rate: my 374,756-domain study

I ran a study across 374,756 domains using hreflang. The headline: over 67% had issues. The breakdown, most common first: missing x-default (56.3%), missing self-referencing tags (18%), broken/redirected references (16.9%), missing reciprocal tags (15.3%), non-canonical references (8%), wrong ISO codes (4.6%), inconsistent HTML lang vs. hreflang (3.2%), duplicate language entries (2.5%), and the same page declared for multiple languages (2.5%).

Two caveats keep this from being doom. First, the top two — x-default and self-referencing — are recommended, not strictly required, so the real-severity picture is softer than 67% suggests. Second, Google fixes a lot of this for you. Gary Illyes has said hreflang errors “didn’t cause problems” in his implementation era, and my own long-standing position (from my Enterprise SEO Chaos SMX talk) is that it may not be worth your time chasing every hreflang error because Google is probably correcting many of them automatically. But the structural errors — missing reciprocal links, broken URLs — do break the cluster and should be fixed. Triage: fix structural, monitor behavioral.

The 2025 threat: Google’s translate.goog proxy

A newer wrinkle worth knowing about (Motoko Hunt’s June 2025 Search Engine Land piece): when Google determines there’s no high-quality, local-language content available, it auto-translates content via a translate.goog proxy. The browser matters — Chrome users get routed to the publisher’s original URL (traffic preserved), but Safari/Firefox users go through translate.goog (traffic lost). Ahrefs data put this at 6.2 million AI Overview appearances with translated URLs and hundreds of millions of clicks of exposure. The strategic read: publishing native local-language content is both the defense (Google won’t proxy-translate what you already provide) and the offense (you rank for those markets yourself). Treat auto-translated SERPs as a signal of unmet demand.

Mueller’s caution: don’t translate everything

Finally, restraint. John Mueller warns against the all-languages reflex — “Let’s create all languages! Let’s make pages for all countries! What if someone in Japan wants to read it in Swahili?” — and notes “it’s easy to dig into endless pits of complexity with hreflang.” His advice, which I echo: “first… limit the number of pages you create to those that are absolutely critical & valuable.” Prioritize high-traffic, high-conversion pages in markets with demonstrated demand (use GSC to find queries already pulling impressions in a target language). Every language version you create is crawl, indexation, canonicalization, and maintenance overhead — only spend it where there’s a real return.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin an expert quote first.