Choose a durable URL model before translating
Use a stable, crawlable URL for every indexable locale. Subdirectories such as /en/products and /fr/products are usually straightforward to deploy and analyze. Domains and subdomains can also work, but they add operational ownership and tracking complexity.
Language
Use a language code when the content is intended for speakers regardless of country.
Language + region
Add a region only when pricing, regulation, inventory, or vocabulary makes that page materially different.
Default experience
Keep one clear fallback and make locale switching reversible instead of forcing permanent redirects from a guess.
Do not create thin locale routes that still render the source language. Publish a locale only when its navigation, primary content, metadata, calls to action, and support path are ready.
Localize the complete search result
Translate each page title and description for the terms real customers use. Keep the canonical self-referencing for the current locale; translated pages are alternatives, not duplicates that should all canonicalize to English.
const seo = messages[locale].productSeo;
const canonical = origin + "/" + locale + "/products";
<Head>
<title>{seo.title}</title>
<meta name="description" content={seo.description} />
<link rel="canonical" href={canonical} />
</Head>Localize structured-data values that users read, while keeping identifiers consistent across translations. Confirm currency, units, dates, addresses, and legal statements follow the selected market rather than the browser's accidental defaults.
Connect equivalent pages with reciprocal hreflang tags
Every translated page should list itself and every real alternative. Each alternative must point back to the others. Use supported language or language-region codes, and include x-default only for the genuine neutral selector or fallback experience.
Language detection can suggest an experience, but crawlers and users still need ordinary links between locale routes. Preserve the equivalent path during switching and avoid redirect loops caused by cookies, geography, and middleware disagreeing. Our Next.js middleware guide covers safe matching and redirect behavior.
Publish locale-aware sitemaps
Include only canonical, indexable, successful URLs. Large sites can split sitemaps by locale or content type and reference them from a sitemap index. Use the true content modification date; rebuilding the application does not mean every translated page changed.
- Generate URLs from published records rather than guessing every locale-slug combination.
- Keep alternates consistent with the tags rendered in the page head.
- Remove retired translations and redirect their known backlinks deliberately.
- Monitor submitted versus indexed counts by locale and route family.
When localized content comes from a CMS, connect publication events to the focused update strategy in our cache revalidation guide.
Test localization as a product workflow
Automate checks for status codes, canonicals, reciprocal alternatives, missing messages, wrong-language metadata, and broken locale switches. Add visual review for text expansion, right-to-left layout, truncated controls, images containing text, and fonts that lack required characters.
Track organic landing sessions, engagement, conversion, and crawl errors by locale. A translation can be technically indexable yet still fail because its search intent, examples, proof, or offer do not fit the market. Give each locale a content owner and a retirement process.
Next.js international SEO checklist
✓ Every published locale has a stable URL
✓ Canonicals point to the current locale
✓ Titles and descriptions are truly localized
✓ Hreflang sets are valid and reciprocal
✓ Locale switching uses crawlable links
✓ Sitemaps include only published URLs
✓ Structured data matches visible content
✓ Automated and human QA cover every locale
Build a global site that stays coherent
Endurance Softwares helps teams plan and build scalable Next.js platforms with localization workflows, technical SEO, performance, and measurable delivery.
