Translation vendors love to start with string files. Architecture should start with URLs.
/en/, en.example.com, and example.de are different products operationally: certificates, cookies, SEO, and content ownership all change. International SEO guidance from Google expects clear locale targeting and consistent alternate annotations — not a tangle of ?lang= parameters and accidental duplicates.

Each market needs a path. Crossing wires is not localization.
Common patterns
| Pattern | Pros | Cons |
|---|---|---|
Subfolder /fr/ |
One host, simpler ops | Shared crawl/host fate |
Subdomain fr. |
Clear separation | Cookie/SEO complexity |
ccTLD .fr |
Strong geo signal | Expensive multi-ops |
Pick one primary pattern per program. Hybrids need explicit rules written down.
hreflang is a map, not a plugin
Only emit alternates when:
- Pages are true equivalents
- URLs are live and canonical
- Reciprocal links are correct
x-defaultis intentional
Broken hreflang is worse than none — it confuses crawlers and wastes trust.
Content, not only chrome
Translated nav with English body is not a locale. Define process: when EN pricing changes, which locales lag, who approves legal differences, who owns hreflang updates.
Closing
Freeze URL strategy in the same workshop as brand markets. Then translate. Otherwise you will retranslate into a second information architecture mid-flight.
Planning multi-market sites? Start a project inquiry with target countries and whether legal pages differ by market.
Language vs region
fr is not always France. Decide whether you localize by language, country, or both. Currency, legal, and shipping rules often need region even when language is shared.
Cookie and consent interactions
Locale choice cookies may be essential; marketing tags still need their own consent rules. Do not bundle “language preference” with ad tracking.
CMS modeling
Separate:
- Shared global content
- Locale-specific overrides
- Market-specific legal entities
Fallback rules (missing FR → EN) must be explicit so you do not accidentally publish English under a /fr/ URL without a banner.
QA matrix
Test at least: default locale homepage, one secondary locale, hreflang reciprocity sample, locale switcher, and a localized form submit.
Migration between strategies
Moving from parameters to subfolders is a redirect-map project. Budget it like an IA migration, not a “config toggle.”
Default locale
Decide whether / is a chooser, a redirect to /en/, or market-detected. Detection by IP is fraught; prefer explicit choice with memory, and never trap users in the wrong market without an escape.
Discovery questions we ask
- What breaks if this is wrong in production next week?
- Who is paged, and is that written down?
- What does “done” mean in a checklist a stranger can run?
- Which metric proves the practice is working a month later?
If those answers are vague, the write-up is not finished — and neither is the system.
How this fits the rest of the journal
Pair this note with post-launch ownership, performance budgets, and technical SEO where relevant. Most failures are cross-cutting: a migration without redirects, a flag without expiry, a form without rate limits.
Closing reminder
Write the operating rules while the team that built the feature still remembers why. That is cheaper than reverse-engineering six months later during an outage.