Nuxt SEO Kit to Nuxt SEO · Nuxt SEO

[NuxtSEO](https://nuxtseo.com/ "Home")

- [Modules](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [Tools](https://nuxtseo.com/tools)
- [Pro](https://nuxtseo.com/pro)
- [Learn SEO](https://nuxtseo.com/learn-seo/nuxt) [Releases](https://nuxtseo.com/releases)

[1.4K](https://github.com/harlan-zw/nuxt-seo)

[Nuxt SEO on GitHub](https://github.com/harlan-zw/nuxt-seo)

[User Guides](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)

[Releases](https://nuxtseo.com/docs/nuxt-seo/releases/v5)

Nuxt SEO

- [Switch to Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [Switch to Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)
- [Switch to Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)
- [Switch to OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [Switch to Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Switch to Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)
- [Switch to SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)
- [Switch to Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)
- [Switch to Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [Switch to AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)

Search…```k`` /`

v5.1.0

- Playgrounds
- [Discord Support](https://discord.com/invite/275MBUBvgP)

### Changelog

### Migration Guides

- [v2 RC to v2 Stable](https://nuxtseo.com/docs/nuxt-seo/migration-guide/rc-to-stable)
- [v2 Beta to v2 RC](https://nuxtseo.com/docs/nuxt-seo/migration-guide/beta-to-rc)
- [Nuxt SEO Kit to Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/migration-guide/nuxt-seo-kit)
- [v3 to v4](https://nuxtseo.com/docs/nuxt-seo/migration-guide/v3-to-v4)
- [v4 to v5](https://nuxtseo.com/docs/nuxt-seo/migration-guide/v4-to-v5)

### Releases

- [v5.0.0](https://nuxtseo.com/docs/nuxt-seo/releases/v5)

Migration Guides

# Nuxt SEO Kit to Nuxt SEO

[Copy for LLMs](https://nuxtseo.com/docs/nuxt-seo/migration-guide/nuxt-seo-kit.md)

What you'll learn

- Package changed from `nuxt-seo-kit` to `@nuxtjs/seo`
- `<SeoKit>` and `useSeoKit()` removed, functionality is now automatic
- Site config moved from `runtimeConfig.public` to `site` key

## [Support](#support)

If you get stuck with the migration or have post-migration bugs, please get in touch.

- [Jump in the Discord](https://discord.com/invite/5jDAMswWwX)
- [Make a GitHub issue](https://github.com/harlan-zw/nuxt-seo/issues)
- [Provide feedback](https://github.com/harlan-zw/nuxt-seo/discussions/108)

## [Module Rename](#module-rename)

With v2 the module name and scope is clarified with the rename to Nuxt SEO.

- 1.* - Nuxt SEO Kit `nuxt-seo-kit` (Nuxt Layer)
- 2.x - Nuxt SEO `@nuxtjs/seo` (Nuxt Module)

The v2 allows you to use all SEO modules at runtime, prerendering is no longer required. It also comes with improved i18n compatibility.

It has been renamed to provide a better base for growing out the Nuxt SEO ecosystem as well as to make the layer -> module change more obvious.

pnpm

yarn

npm

```
# remove nuxt-seo-kit
pnpm remove nuxt-seo-kit && pnpm i -D @nuxtjs/seo
```

```
yarn remove nuxt-seo-kit && yarn add -D @nuxtjs/seo
```

```
npm remove nuxt-seo-kit && npm install -D @nuxtjs/seo
```

nuxt.config.ts

```
export default defineNuxtConfig({
-  extends: ['nuxt-seo-kit'],
  modules: [
+  '@nuxtjs/seo',
  ]
})
```

## [Breaking Changes](#breaking-changes)

We removed the `<SeoKit>` component and `useSeoKit()` composable. Delete these from your code; a plugin now handles the functionality automatically.

### [`<SeoKit>`, `useSeoKit()` Removed](#seokit-useseokit-removed)

These APIs set up all the default meta and module configuration for you.

In v2, they are no longer needed as functionality has been moved to a plugin.

```
<template>
-  <SeoKit />
</template>
```

```
<script setup>
-  useSeoKit()
</script>
```

If you'd like to opt-out of the these v2 configurations, you can set [automaticDefaults](https://nuxtseo.com/docs/seo-utils/api/config#automaticdefaults) to `false`.

## [Site Config Changes](#site-config-changes)

In v1, site config was set through runtime config. In v2, we have a dedicated module with helpers for handling this config called [nuxt-site-config](https://nuxtseo.com/docs/site-config/getting-started/introduction).

The move to a module is to allow greater flexible in changing site configuration at runtime.

If you were specifying any static config in `runtimeConfig` previously, it's now recommended to move this to the `site` key.

v1

v2

```
export default defineNuxtConfig({
  runtimeConfig: {
    public: {
      // you can remove environment variables, they'll be set automatically
      siteUrl: process.env.NUXT_PUBLIC_SITE_URL,
      siteName: 'My App'
    }
  }
})
```

```
export default defineNuxtConfig({
  site: {
    name: 'My App'
  }
})
```

When updating your config:

- All keys are without the `site` prefix
- The `language` config has been renamed to `defaultLocale`

The behaviour for environment variables hasn't changed, it's recommended to read [how site config works](https://nuxtseo.com/docs/site-config/getting-started/how-it-works) for more advanced configuration.

## [Prerendering Changes](#prerendering-changes)

In v1, you had to prerender all pages, and we modified your `nuxt.config` to ensure this happened.

In v2, the server can generate everything at runtime, and we no longer provide the prerendering changes.

If you'd like to keep the prerendering changes, you can add this to your nuxt.config.

```
export default defineNuxtConfig({
  nitro: {
    prerender: {
      crawlLinks: true,
      routes: [
        '/',
      ],
    },
  },
})
```

## [Module Upgrades](#module-upgrades)

### [Nuxt Robots](#nuxt-robots)

Upgraded from v1 to v3:

- [v2 release notes](https://github.com/harlan-zw/nuxt-simple-robots/releases/tag/v2.0.0)
- [v3 release notes](https://nuxtseo.com/docs/robots/releases/v3)

No breaking changes.

### [Nuxt Sitemap](#nuxt-sitemap)

Upgraded from v1 to v3:

- [v2 release notes](https://github.com/nuxt-modules/sitemap/releases/tag/v2.0.0)
- [v3 release notes](https://nuxtseo.com/docs/sitemap/releases/v3)

No breaking changes.

### [Nuxt Schema.org](#nuxt-schemaorg)

Upgraded from v2 to v3:

- [v3 release notes](https://nuxtseo.com/docs/schema-org/releases/v3)

No breaking changes.

### [Nuxt OG Image](#nuxt-og-image)

Upgraded from v1 to v2:

- [v2 release notes](https://nuxtseo.com/docs/og-image/releases/v2)

We removed the following options from `nuxt.config` `ogImage`:

- `host`, `siteUrl` - see [installation](https://nuxtseo.com/docs/og-image/getting-started/installation) for details.
- `forcePrerender` - removed (no longer needed)
- `satoriProvider` - removed (use `runtimeSatori` instead)
- `browserProvider` - removed (use `runtimeBrowser` instead)
- `experimentalInlineWasm` - we removed this; it's now automatic based on environment
- `experimentalRuntimeBrowser` - we removed this; it's now automatic based on environment

The following options have been deprecated from the `defineOgImage` options:

- `static` - use `cache` instead

If you were referencing the old default template, you will need to update it.

- `OgImageBasic` - remove the property and let the system select the fallback automatically

Composables & Components:

- `defineOgImageStatic()` is deprecated, use `defineOgImage()` (default behaviour is to cache), if you want to be verbose you can use `defineOgImageCached()` or `<OgImageCached />`
- `<OgImageStatic />` is deprecated, use `<OgImage />`
- `defineOgImageDynamic()` is deprecated, use `defineOgImageWithoutCache()`
- `<OgImageDynamic />` is deprecated, use `<OgImageWithoutCache />`

If you were using the runtime browser previously, you will need to manually opt-in for it to work in production.

```
export default defineNuxtConfig({
  ogImage: {
    runtimeBrowser: true
  }
})
```

v1

v2

```
<script setup lang="ts">
defineOgImageStatic({ /* */ })
</script>
```

```
<script setup lang="ts">
defineOgImage({ /* */ })
</script>
```

### [Nuxt Link Checker](#nuxt-link-checker)

Upgraded from v1 to v2:

- [v2 release notes](https://nuxtseo.com/docs/link-checker/releases/v2)

Changes to nuxt.config `linkChecker`:

- `exclude` renamed to `excludeLinks`
- `failOn404` renamed to `failOnError`

### [Nuxt SEO Utils](#nuxt-seo-utils)

The `nuxt-unhead` module has been renamed to `nuxt-seo-utils`. This is to better reflect the scope of the module.

Upgraded from v1 to v3:

- [v2 release notes](https://github.com/harlan-zw/nuxt-seo-utils/releases/tag/v2.0.0)
- [v3 release notes](https://nuxtseo.com/docs/seo-utils/releases/v3)

If you were using the `unhead` key to configure the module, you will need to change it to `seo`.

```
export default defineNuxtConfig({
-  unhead: {
+  seo: {
  }
})
```

[Edit this page](https://github.com/harlan-zw/nuxt-seo/edit/main/docs/content/6.migration-guide/3.nuxt-seo-kit.md)

[Markdown For LLMs](https://nuxtseo.com/docs/nuxt-seo/migration-guide/nuxt-seo-kit.md)

Did this page help you?

[v2 Beta to v2 RC Migrate from the Nuxt SEO v2 beta to the v2 RC.](https://nuxtseo.com/docs/nuxt-seo/migration-guide/beta-to-rc) [v3 to v4 Migrate from Nuxt SEO v3 to v4.](https://nuxtseo.com/docs/nuxt-seo/migration-guide/v3-to-v4)

On this page

- [Support](#support)
- [Module Rename](#module-rename)
- [Breaking Changes](#breaking-changes)
- [Site Config Changes](#site-config-changes)
- [Prerendering Changes](#prerendering-changes)
- [Module Upgrades](#module-upgrades)

[GitHub](https://github.com/harlan-zw/nuxt-seo) [ Discord](https://discord.com/invite/275MBUBvgP)

### [NuxtSEO](https://nuxtseo.com/ "Home")

- [Getting Started](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [MCP](https://nuxtseo.com/docs/nuxt-seo/guides/mcp)

Modules

- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)

### [NuxtSEO Pro](https://nuxtseo.com/pro "Home")

- [Getting Started](https://nuxtseo.com/pro)
- [Dashboard](https://nuxtseo.com/pro/dashboard)
- [Pro MCP](https://nuxtseo.com/docs/nuxt-seo-pro/mcp/installation)

### [Learn SEO](https://nuxtseo.com/learn-seo "Learn SEO")

Nuxt

- [Mastering Meta](https://nuxtseo.com/learn-seo/nuxt/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers)
- [Launch & Listen](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen)
- [Routes & Rendering](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering)
- [Staying Secure](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/security)

Vue

- [Vue SEO Guide](https://nuxtseo.com/learn-seo/vue)
- [Mastering Meta](https://nuxtseo.com/learn-seo/vue/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/vue/controlling-crawlers)
- [SPA SEO](https://nuxtseo.com/learn-seo/vue/spa)
- [SSR Frameworks](https://nuxtseo.com/learn-seo/vue/ssr-frameworks)
- [SEO Checklist](https://nuxtseo.com/learn-seo/checklist)
- [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup)
- [Backlinks & Authority](https://nuxtseo.com/learn-seo/backlinks)

### [Tools](https://nuxtseo.com/tools "SEO Tools")

- [Social Share Debugger](https://nuxtseo.com/tools/social-share-debugger)
- [Robots.txt Generator](https://nuxtseo.com/tools/robots-txt-generator)
- [Meta Tag Checker](https://nuxtseo.com/tools/meta-tag-checker)
- [HTML to Markdown](https://nuxtseo.com/tools/html-to-markdown)
- [XML Sitemap Validator](https://nuxtseo.com/tools/xml-sitemap-validator)
- [Schema.org Validator](https://nuxtseo.com/tools/schema-validator)
- [Keyword Research Pro](https://nuxtseo.com/tools/keyword-research)
- [SERP Analyzer Pro](https://nuxtseo.com/tools/serp-analyzer)
- [Domain Rankings Pro](https://nuxtseo.com/tools/domain-rankings)

Copyright © 2023-2026 Harlan Wilton - [MIT License](https://github.com/harlan-zw/nuxt-seo/blob/main/license) · [mdream](https://mdream.dev)