Multi-language sites: routing, hreflang, and the mistakes that tank rankings
Building a site to serve multiple languages or regions introduces a category of technical SEO complexity that a single-language site never has to deal with: hreflang tags, URL structure decisions, and the risk of search engines showing the wrong language version to the wrong audience. Get it wrong and you can end up with duplicate content penalties or the wrong regional page ranking in the wrong market, both quietly damaging and non-obvious until traffic data reveals the problem.
Choosing a URL structure, once, correctly
Separate country-code domains (.co.uk, .de), subdomains (uk.example.com), or subdirectories (example.com/uk/) each have different SEO implications for how authority consolidates across regions, and switching between them later is a genuine migration project, not a quick fix. We recommend subdirectories for most mid-size businesses, since they consolidate domain authority most effectively while remaining relatively simple to implement and maintain.
hreflang tags: small syntax, big consequences
hreflang tags tell search engines which language and regional version of a page to show to which searchers, and they need to be bidirectional and mutually consistent across every language version, a common source of subtle bugs. A single mismatched or missing return tag can cause search engines to ignore the entire hreflang cluster for that page, silently reverting to default ranking behavior that ignores your careful regional targeting.
Avoiding auto-redirect based on browser location
Automatically redirecting visitors based on detected location or browser language, rather than letting them choose and land wherever the URL they clicked actually points, is a well-documented SEO anti-pattern: it can prevent search engine crawlers (which don't have a consistent "location") from properly indexing all regional versions, and it frustrates real users who wanted a different version than the one being force-redirected to them.
Translated content versus machine-translated content
Search engines increasingly evaluate content quality per language version independently, and thin, obviously machine-translated content without human review tends to underperform properly localized content, sometimes significantly. For markets that matter enough to target with a dedicated regional page, budgeting for real translation and localization, not just automated translation, is usually worth the additional cost.
Testing before launch, region by region
We test every regional version of a multi-language site using tools that simulate a search engine crawler from different geographic locations, checking that hreflang tags resolve correctly and that each region's canonical version is unambiguous. It's a more involved QA process than a single-language launch, and skipping it is how most multi-language SEO problems end up shipping unnoticed until months later.
The x-default tag, a small detail with an outsized effect
Beyond the language-specific hreflang tags, an x-default tag specifies which version to show visitors whose language or region doesn't match any of your explicitly targeted variants, and skipping it leaves search engines to guess, sometimes showing an unexpected regional page to a large, untargeted chunk of global traffic. We set x-default deliberately on every multi-region site, usually pointing to either a genuinely global default page or the primary market's version, rather than leaving it unset and letting search engines make that decision on the site's behalf.
Beyond the language-specific hreflang tags, an x-default tag specifies which version to show visitors whose language or region doesn't match any of your explicitly targeted variants, and skipping it leaves search engines to guess, sometimes showing an unexpected regional page to a large, untargeted chunk of global traffic.
Currency and pricing display, a related but distinct problem from language
Language and currency don't always align cleanly with the same regional boundaries, a Spanish-speaking user in the US market still expects USD pricing, not the pricing shown to a Spanish-speaking user in Spain, and getting this wrong is a common source of both lost conversions and user confusion that has nothing to do with translation quality itself. We map currency and pricing logic separately from language routing during scoping, rather than assuming the two naturally travel together, since conflating them is a frequent, avoidable source of friction in international eCommerce sites specifically.
Monitoring after launch, since problems tend to surface slowly
Unlike many technical SEO issues that show up quickly in a crawl report, hreflang and regional targeting problems often take weeks to fully manifest in search results, since search engines gradually reassess indexing and regional targeting rather than reacting instantly to a change. We set a specific check-in point, typically four to six weeks post-launch, to review regional search visibility and confirm the right pages are actually ranking in the right markets, rather than considering the international SEO work done the moment the site technically launches with hreflang tags in place.
Canonical tags and hreflang, a combination that trips up even experienced teams
Canonical tags and hreflang tags serve different purposes but interact in ways that surprise even experienced technical SEO practitioners: a canonical tag pointing a regional page back to a single "main" version, a common pattern for handling near-duplicate content, can directly undermine the entire hreflang setup by telling search engines to consolidate signals toward one page while hreflang is simultaneously trying to say each regional version deserves its own visibility. We check that canonical tags on regional pages point to themselves, not to a single global version, specifically because this particular conflict is common enough that it's one of the first things we verify on any multi-language technical audit.
Content parity across regions, not just translated navigation
A frequent shortcut we see on multi-language sites: fully translated navigation and core UI text, but core content pages, blog posts, product descriptions, FAQs, only partially translated or simply left in the original language with a note. Search engines evaluate each regional page largely on its own merits, and a page that's mostly untranslated content wrapped in translated navigation tends to underperform in that region's search results regardless of how correctly the technical hreflang setup is configured. We flag content parity gaps as part of the same audit that checks technical hreflang correctness, since the two issues often get treated as separate projects when they're really both prerequisites for the same regional visibility goal.
Sitemaps and hreflang, kept in sync as regions are added
As a multi-language site grows, new regional pages sometimes get added to the live site without a corresponding update to the XML sitemap's hreflang annotations, quietly leaving the new region invisible to the same crawling and indexing signals the rest of the site relies on. We treat sitemap updates as a required step in the same checklist as adding a new region, not a separate task owned by a different part of the team, since a mismatch between what's actually live and what the sitemap describes is a common, easily preventable gap.