Blog article
Optimizing SEO for Multilingual Websites
Technical SEO best practices for sites with multiple languages.
Why SEO Matters for Multilingual Sites
Search engines need clear signals about language and regional targeting. A well-structured multilingual site can rank in multiple countries simultaneously.
Hreflang Tags
Hreflang tells Google which language version of a page to show:
<link rel="alternate" hreflang="en" href="https://example.com/en/about" /><link rel="alternate" hreflang="id" href="https://example.com/id/about" /><link rel="alternate" hreflang="x-default" href="https://example.com/about" />This starter includes automatic hreflang generation via the hreflangLinks() function in src/lib/seo.ts.
Canonical URLs
Every page should have a self-referencing canonical URL:
export function canonicalUrl(locale: Locale, path: string): string { const prefix = localePrefix(locale); const normalized = path.replace(/\/$/, ""); return `${SITE_CONFIG.url}${prefix}${normalized || ""}`;}Structured Data (JSON-LD)
Use jsonLdWebSite() for the home page and jsonLdBlogPost() for articles:
const websiteJsonLd = jsonLdWebSite({ title: "My Site", description: "Site description", locale: "en", url: "https://example.com",});Sitemap
The @astrojs/sitemap integration generates a sitemap-index.xml that includes all locale variants of every page, ensuring search engines discover all language versions.
Performance Considerations
- Static generation: Pages are pre-built, ensuring fast load times
- CDN delivery: Cloudflare’s global network caches content at the edge
- Core Web Vitals: Astro’s zero-JS architecture helps achieve good scores