Hreflang Tag Best Practices for Global Websites
Build a multilingual website that holds together across markets with stable locale URLs, correct hreflang, edge delivery, adaptable typography, and localized UX.
Start with a locale model, not a language dropdown
Make routing and `hreflang` agree
Deliver assets through a locale-aware edge layer
Let typography and direction change the layout
Design localized journeys, not just localized screens
Test the system before every market launch
Sources & References
Frequently asked questions
What is the best architecture for a multilingual website?
Use stable locale-aware URLs backed by a shared component system and a market-specific content layer. Generate routing, canonical URLs, hreflang, metadata, and asset selection from one locale model. That gives each market room to differ without creating an unmaintainable fork of the whole site.
What is an `hreflang` tag used for?
An hreflang tag identifies the language or regional version of a page for search engines. Each version should list itself and its alternates with fully qualified URLs, and the alternate pages should reference one another. It does not replace translated content or determine a page’s language by itself. Keep the mapping beside the locale data that drives routing, so a new market cannot publish with only half of its alternate links.
Should a multilingual website use subdomains or subdirectories?
Either can work when URLs are stable, content is localized, and the alternate mapping is complete. Subdirectories simplify one-platform operations, while subdomains can separate deployments or teams. Country domains can fit strong regional operations, but they add domain management and maintenance work.
How do you handle RTL languages in web design?
Set lang and dir on the document, use logical CSS properties, and test the entire interface in an RTL locale. Check text expansion, icons, punctuation, numbers, forms, focus order, and mixed-direction content. Do not assume that every visual element should mirror. Include real user-generated text in the test set.
How can a CDN serve localized website assets correctly?
Put locale-specific assets in an explicit manifest and include the locale or content version in the cache key when the response varies. Keep shared assets immutable and shared. Test cold and warm cache requests for each market so an asset from one locale cannot appear in another.
What should you test before launching a localized site?
Test direct URLs, fallback behavior, reciprocal hreflang, canonical tags, translated fields, long strings, RTL layout, localized formats, forms, assets, analytics, and performance. Add human review for cultural references, imagery, legal text, and the tone of calls to action. Automated checks catch consistency errors, while people catch meaning and context.