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 #1 in Localization & Content#3 in International SEO#69 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 SEOMultilingual SEO is the practice of optimizing a website that serves content in more than one language so each language version is discoverable, indexable, and rankable in the right language's search results. It's about language, not geography — which makes it distinct from multi-regional 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 foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. 67% had hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. issues. Use subdirectories for most sites, never auto-redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer., 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 hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. 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 CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. “came with the Lang attributeThe HTML lang attribute is a global attribute — most importantly set on the <html> element (<html lang=\"en\">) — that declares the natural language of THIS document's content using a BCP 47 language tag (en, es, en-US, pt-BR). It's distinct from hreflang, which points to alternate-language URLs. Google ignores lang for language detection; Bing uses it as a fallback targeting signal; and it drives accessibility (screen-reader pronunciation) and the browser auto-translate prompt. 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 attributeThe HTML lang attribute is a global attribute — most importantly set on the <html> element (<html lang=\"en\">) — that declares the natural language of THIS document's content using a BCP 47 language tag (en, es, en-US, pt-BR). It's distinct from hreflang, which points to alternate-language URLs. Google ignores lang for language detection; Bing uses it as a fallback targeting signal; and it drives accessibility (screen-reader pronunciation) and the browser auto-translate prompt. 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 accessibilityWeb accessibility means designing sites so people with disabilities can use them, per the W3C's WCAG guidelines. It overlaps with SEO in specific, checkable ways — alt text, heading structure, descriptive link text, captions, and page speed all serve both audiences — but Google has said accessibility itself is not a ranking factor, and most WCAG success criteria (keyboard focus order, ARIA live regions, form labels) have no SEO effect at all. (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-defaultx-default is the reserved hreflang value that points to a fallback URL — the page Google shows when a user's locale doesn't match any of your other hreflang tags. It is optional and does not mean \"English.\" 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 sitemapAn XML sitemap is a UTF-8 file listing the canonical URLs on your site (with optional lastmod) so search engines can discover and prioritize them. It's a discovery and diagnostic aid, not a guarantee of indexing — and Google ignores its priority and changefreq tags. 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 tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content., 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 indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. of your new language pages. So hreflang isn’t only about serving the right version; it’s a discovery accelerant for newly launched languages.

TIP See whether every language version returns the relationship

Correct hreflang is a cluster property. One missing return can break a pair even when the other locale links are present.

Map the language cluster with my free returntag - hreflang checker Free

  1. Supply the multilingual sitemap set and inspect the full locale cluster.
  2. Find one-way relationships and confirm language-region codes and canonical URLs match.
  3. Repair reciprocal annotations, rerun, and verify any non-sitemap implementations separately.
The isolated missing return is easier to reason about in the context of the otherwise connected cluster.

The result contains en-US, en-GB, fr-FR, de-DE, and x-default across five URLs and 24 annotations. Nine pairs are reciprocal, one return is missing, and no targets are broken. The French page is missing its return to the US English page.

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

Another Illyes point worth internalizing: Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. 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 toolA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. 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. ccTLDsCountry-code top-level domain like .de or .co.uk — a strong geotargeting signal. are the strongest country geotargetingConfiguring a site or URL to target users in a specific country. signal but mean separate properties and separate link-building. URL parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. are explicitly “not recommended.”

Internal linkingLinks between pages on the same site. 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 crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. trap. This is where sites quietly break themselves. GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. “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 SEOMachine translation (MT) is using automated systems — Google Translate, DeepL, Microsoft Translator, or an LLM — to translate a site's content into other languages. It isn't banned for SEO; publishing raw, unreviewed MT in bulk purely to rank is what Google's scaled content abuse policy targets. MT reviewed and edited by a human (MTPE) is standard practice at scale..)

Schema for multilingual sites

Use the inLanguage property on your Article/Product/FAQPage schemaFAQPage schema (schema.org/FAQPage) is structured data for a page's frequently-asked-questions content. It used to make pages eligible for an expandable FAQ rich result in Google Search, but Google fully removed that rich result on May 7, 2026 — the markup itself stays valid schema.org vocabulary, Google says it still reads it for understanding, and Bing has announced no equivalent removal. 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-defaultx-default is the reserved hreflang value that points to a fallback URL — the page Google shows when a user's locale doesn't match any of your other hreflang tags. It is optional and does not mean \"English.\" (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, canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it., 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 a quote first.