---
title: "I18n"
description: "How Nuxt SEO modules integrate with @nuxtjs/i18n and nuxt-i18n-micro."
canonical_url: "https://nuxtseo.com/docs/nuxt-seo/guides/i18n"
last_updated: "2026-08-28T06:43:42.910Z"
---

All Nuxt SEO modules integrate automatically with [@nuxtjs/i18n](https://i18n.nuxtjs.org/) and [nuxt-i18n-micro](https://nuxt.com/modules/nuxt-i18n-micro). You do not need extra configuration; Nuxt SEO detects the integration when you install either module.

## Example Setup

```ts [nuxt.config.ts]
export default defineNuxtConfig({
  modules: [
    '@nuxtjs/i18n', // or 'nuxt-i18n-micro'
    '@nuxtjs/seo',
  ],

  site: {
    // fallback if no nuxtSiteConfig translation is provided
    name: 'My Site',
  },

  i18n: {
    baseUrl: 'https://example.com',
    defaultLocale: 'en',
    strategy: 'prefix_except_default',
    langDir: 'locales/',
    locales: [
      { code: 'en', language: 'en-US', file: 'en.ts' },
      { code: 'fr', language: 'fr-FR', file: 'fr.ts' },
    ],
  },
})
```

## Translated Site Name & Description

Your site name and description will often differ per locale. You can provide translated values through a `nuxtSiteConfig` key in your locale files. These override the `site.name` and `site.description` set in `nuxt.config.ts`.

::code-group
```ts [locales/en.ts]
export default {
  nuxtSiteConfig: {
    name: 'My Site',
    description: 'Welcome to my site!',
  },
}
```

```ts [locales/fr.ts]
export default {
  nuxtSiteConfig: {
    name: 'Mon Site',
    description: 'Bienvenue sur mon site!',
  },
}
```
::

All modules use the translated values automatically: meta tags, [Schema.org](http://Schema.org), OG images, and anywhere else site name or description appears.

See [Site Config I18n docs](/docs/site-config/guides/i18n) for the full details.

## What Each Module Does

With the config above, here is what each module produces.

### SEO Utils

Locale meta tags are set automatically on the `<html>`{lang="html"} element and in `<head>`{lang="html"}.

**English (`/`):**

```html
<html lang="en-US">
<head>
  <title>My Site</title>
  <meta property="og:locale" content="en_US">
  <meta property="og:site_name" content="My Site">
  <meta name="description" content="Welcome to my site!">
  <link rel="canonical" href="https://example.com/">
</head>
```

**French (`/fr`):**

```html
<html lang="fr-FR">
<head>
  <title>Mon Site</title>
  <meta property="og:locale" content="fr_FR">
  <meta property="og:site_name" content="Mon Site">
  <meta name="description" content="Bienvenue sur mon site!">
  <link rel="canonical" href="https://example.com/fr">
</head>
```

[Full docs](/docs/seo-utils/guides/i18n)

### Sitemap

The sitemap module generates a sitemap index with a separate sitemap per locale:

```xml
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/__sitemap__/en-US.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://example.com/__sitemap__/fr-FR.xml</loc>
  </sitemap>
</sitemapindex>
```

Each locale sitemap includes `hreflang` alternatives linking between translations.

[Full docs](/docs/sitemap/guides/i18n)

### Robots

Robots rules are automatically expanded to include locale-prefixed paths based on your i18n strategy.

```txt
User-agent: *
Disallow:

Sitemap: https://example.com/sitemap_index.xml
```

[Full docs](/docs/robots/advanced/i18n)

### [Schema.org](http://Schema.org)

[Schema.org](http://Schema.org) creates a `WebSite` entity per locale with `workTranslation` linking between them:

```json
{
  "@type": "WebSite",
  "name": "My Site",
  "description": "Welcome to my site!",
  "inLanguage": "en-US",
  "url": "https://example.com/",
  "workTranslation": [
    { "@id": "https://example.com/#website" },
    { "@id": "https://example.com/fr#website" }
  ]
}
```

[Full docs](/docs/schema-org/guides/i18n)

**OG Image**: generates images per locale, using the locale-specific site name and description as default props. [Full docs](/docs/og-image/integrations/i18n)

**Site Config**: extracts `url`, `defaultLocale`, and `currentLocale` from your i18n config. The `nuxtSiteConfig` translation key provides per-locale `name` and `description`. [Full docs](/docs/site-config/guides/i18n)