
Hreflang and International SEO - Multilingual Visibility in Google and AI Models
The most damage in international SEO comes from one misconception: that hreflang lifts rankings. It doesn't. Hreflang is a routing directive - it tells Google which language version to show which user, not which page should rank higher. Yet its errors are the most common mistake on multilingual sites: audits regularly find incomplete or non-reciprocal annotations on most large properties, and the result is always the same - Google shows a Polish user the English version, conversion drops, and you go looking for the cause in the content, not the header.
Hreflang is not a ranking factor - it's language routing, and its errors are the most common multilingual SEO mistake, which audits find on most large sites. In the AI era there's a second stake: ChatGPT and Perplexity cite different sources for the same question asked in different languages. The complete workshop: three URL architectures, five rules of error-free hreflang, slug translation and multilingual GEO.
In the AI era there's a second stake the classic guides stay silent about: language models treat the query language as a source signal. The same question asked of ChatGPT in Polish and in English returns different citations - because the model reaches for content in the language of the question. Multilingual architecture is therefore no longer just a Google matter; it also decides whether you're visible at all in the Polish and English AI answer.
This post is the complete workshop: what hreflang really is, how to choose a URL architecture, five rules for error-free implementation, slug translation (on our own PL/EN pattern) and multilingual GEO.
What hreflang is - and what it is not
Let's start by separating two things that blur together in people's heads.
Hreflang is not a ranking factor. It doesn't make a page rank higher, doesn't pass "authority", doesn't replace links or content. Google's documentation describes it as a signal, not a binding directive - it can be ignored if the rest of the signals say otherwise.
Hreflang is a map of language versions. For a page available in several languages or regions it tells the search engine: "these are variants of the same content, show the user the right one." The effect isn't in ranking, but in getting the right version to the right user - which saves CTR and conversion, not position.
The two most common symptoms of missing or broken hreflang:
- Wrong version in results. A Polish user sees an English URL, clicks less often, and if they do - they bounce. You lose CTR and conversions in exactly the markets you care about.
- Cross-language cannibalization. Without mapping, Google treats the versions as competing pages on the same topic and picks a "winner" itself - often not the one you want.
Three URL architectures - ccTLD, subdomain, subfolder
Before you touch hreflang, you have to decide where the language versions live at all. It's a decision for years - changing the architecture means a full migration with the risk of losing rankings.
/// THREE MULTILINGUAL URL ARCHITECTURES
A decision for years — changing it means a full migration
| Architecture | Example | When to choose |
|---|---|---|
| ccTLD (country domain) | yourcompany.pl / .de | Strong geo targeting, budget for multiple domains, real in-country presence |
| Subdomain | pl.yourcompany.com | Separate infrastructure per language under one brand, weaker authority consolidation |
| Subfolder (directory) | yourcompany.com/pl/ | The default choice - all domain authority in one place |
For the vast majority of companies - especially those aiming for AI visibility - the subfolder wins. The reason is the same as with crawl budget: one domain accumulates all the authority and all the entity signal, instead of scattering it across separate hosts. A ccTLD makes sense when you genuinely operate locally in a given country (warehouse, support, currency) and can afford to maintain several domains as separate sites. That's exactly our choice on this site: one domain, versions under /pl/ and /en/.
Five rules of error-free hreflang
Hreflang breaks on details. These five rules eliminate most of the problems audits catch on large sites.
/// FIVE RULES OF ERROR-FREE HREFLANG
They eliminate most of the issues audits catch
- 1.Reciprocity. If the PL page points to EN, EN must point back to PL. A one-way annotation is ignored by Google - the most common error in audits.
- 2.Self-referencing. Every version must also point to itself. The PL page lists PL among its own hreflang annotations.
- 3.x-default. Add an hreflang="x-default" entry pointing to the default version (usually English or a language-selection page) for users outside the defined languages.
- 4.Absolute URLs, post-301. URLs in hreflang must be full (with https://) and lead to the final address, not to a redirect. Pointing at a URL that 301s breaks the mapping.
- 5.Canonical alignment. hreflang and canonical must not contradict each other: the PL page's canonical points to itself, not to EN. A conflict is the classic reason Google ignores the whole group.
A correct set for two languages looks like this - the same three links in the head of each version:
<link rel="alternate" hreflang="pl" href="https://yourdomain.com/pl/oferta" /><link rel="alternate" hreflang="en" href="https://yourdomain.com/en/offer" /><link rel="alternate" hreflang="x-default" href="https://yourdomain.com/en/offer" />
Keep the language codes compliant with BCP 47 (ISO 639-1 for the language, optionally ISO 3166-1 for the region): "pl", "en", and if you distinguish regions - "en-GB", "en-US", "pt-BR". Don't invent your own codes; "en-UK" is invalid (correct: "en-GB").
Slug translation - our PL/EN pattern
A frequent question: translate the slug (the part of the URL after the domain), or keep one for all languages? Translate. A slug in the user's language is a relevance signal for the search engine and a higher CTR - an English speaker is more likely to click /en/hreflang-international-seo-geo than /en/miedzynarodowe-seo.
The catch is that translated slugs have to be linked together so hreflang and the language switcher know what maps to what. Our pattern on this site: every post has one numeric identifier, and slugs are translated per language and paired by it. The English counterpart of this post is hreflang-international-seo-geo - a different slug, the same identifier. The language switcher resolves the pair by identifier, not by matching the URL text, so translating slugs breaks nothing.
The same applies to the brand entity: a consistent language architecture strengthens the knowledge graph and entity, because Google and AI models see one brand in many languages, not several unconnected entities.
Multilingual GEO - why AI cites different sources per language
Here begins the part missing from classic hreflang guides. Language models treat the query language as a source filter. Ask ChatGPT for "the best tools for something" in Polish, then in English - you'll get two different citation lists, because the model prefers content in the language of the question.
/// QUERY LANGUAGE = SOURCE FILTER IN AI
Same question, two languages — two different citation lists
- →Cites Polish expert content
- →Polish forums, blogs, trade media
- →Your /pl/ version — if it exists and is strong
- →Cites English-language content
- →Reddit, global media and blogs
- →Your /en/ version — a separate citation pool
Consequences for strategy:
- An EN-only version won't give you visibility in Polish AI answers. If all the expert content is in English, you're invisible in Polish ChatGPT - the model cites competitors' Polish sources.
- Translation is not a machine carbon copy. Models and Google reward content that reads natively and is grounded in local context - examples, currency, market reality. Automatic translation without editing is a low-quality signal.
- The citation-friendly structure works in every language. The rules from the post on optimizing for AI Overviews - answer first, question headings, attributed data - apply to each language version separately.
In other words: hreflang handles the technical side (the right version to the right user), but AI citations are decided by whether you have strong, native content in that language at all.
How to verify the implementation
Before you call it done, check four things:
- Search Console - beware of outdated guides. Google retired the International Targeting report with its list of hreflang errors in 2022, and there's no replacement today. What remains in GSC is URL Inspection (which version Google chose as canonical and whether it merged your language versions); errors in the annotations themselves are caught with a crawler.
- Manual test in the page source - open the HTML preview without JS rendering and check whether the hreflang links are in the head. If you inject them with JavaScript, some crawlers won't see them - the same problem as in JavaScript SEO.
- Crawler (Screaming Frog / Sitebulb) - the hreflang report catches non-reciprocal and non-canonical references at the scale of the whole site.
- Per-language AI test - ask the models the same question in Polish and in English and check whether they cite your correct versions. This measures a layer invisible in GA4 - how to set it up I describe in AI traffic analytics.
Step-by-step rollout plan
- 1.Choose an architecture (subfolder for most) and stick to it across the whole site.
- 2.Fix the list of languages and regions and the correct BCP 47 codes - no home-made inventions.
- 3.Generate hreflang programmatically from a single source of truth (an identifier → slug per language map), not by hand per page.
- 4.Add x-default and self-referencing to every group.
- 5.Align canonicals - every version canonical to itself.
- 6.Translate the slugs and pair them by a stable identifier (our pattern).
- 7.Edit the content natively per language - not a machine copy; optimize each version separately for AI citations.
- 8.Verify in GSC, in the source without JS, with a crawler and with a per-language AI test.
- 9.On every migration update hreflang in the same deployment - stale references to old URLs break the mapping.
---
I design multilingual architecture from domain choice to hreflang generated from a single source of truth - as part of technical SEO and AI optimization (GEO). I teach this in the SEO & GEO course. Get in touch - I'll start with an hreflang audit and a language map for AI visibility.
Worth reading next:
/// RELATED_SERVICES
Need these concepts implemented? Explore the services related to this topic.
Technical SEO
Technical SEO that makes your site fast, crawlable and easy to understand — for Google and for AI search engines. Audits, Core Web Vitals, Schema.org, migrations and link building.
View serviceServiceGEO – AI Search Optimization
Generative Engine Optimization (GEO) gets your brand into AI answers — ChatGPT, Google AI Overviews and AI Mode, Gemini, Perplexity and Copilot. I make AI know your company, cite your site and recommend you.
View service/// SOURCES
- 01Google Search Central - Localized versions of your pages (hreflang, official docs)
- 02Google Search Central - Managing multi-regional and multilingual sites
- 03RFC 5646 (BCP 47) - Tags for Identifying Languages
- 04W3C Internationalization - Language tags in HTML and XML
- 05Google - AI features and your website (official docs)
/// RELATED_RECORDS
Ecommerce Faceted Navigation and SEO - Which Filters to Index and Which to Block (noindex, canonical, robots.txt)
Which ecommerce filters to index and which to block: a rule with thresholds, noindex vs canonical vs robots.txt vs nofollow in one table, a check of filters in 11 Polish stores, Shopify, WooCommerce, PrestaShop and IdoSell defaults, URL counts at two scales, robots.txt rules, a script and two pitfalls.
Ecommerce Keyword Research - How to Map Queries to Categories, Filters and Products
How to do ecommerce keyword research and map queries to categories, filters, product pages and guides: a mapping rule with thresholds, a keyword map from 1,109 Google suggestions and real store product counts, Search Console, Keyword Planner, Senuto and Ahrefs with prices, a sheet template and a cannibalisation script.
Ecommerce SEO Strategy - a 3, 6 and 12-Month Roadmap
How to build an ecommerce SEO strategy ranked by revenue: a one-day diagnosis from Search Console, a priority matrix, a 3, 6 and 12-month roadmap with KPIs, SEO vs Google Ads cost at two scales, an audit of product data in 26 Polish online stores and a quick-wins script.
Signal received?
Terminate
Silence
Initiate protocol. Establish connection. Let's build something loud.
