Skip to content

Upgrading @nuxtjs/seo 5 to 6

Breaking5.3.16 → 6.0.1Breaking12New6Changed2Fixed10Other1

BreakingUpgrade verdict

12 breaking changes.

  • Two extra modules now come included out of the box, so projects get their features without opting in.
  • Older APIs from version 5 for content and listing modules are gone, so code using them will stop working.
  • Setting the nuxtseo option to false now turns off the modules that ship with the package.
  • The sitemap module bundled with the package moves to a new major version.
Top 3 of 12 that need code or config changes

Requires Node.js ^22.22.3 || ^24.15.0 || >=26.0.0 from 6.0.0 (none stated before).

Adds nuxt-ai-ready ^3.0.1, nuxt-skew-protection ^2.0.1, semver ^7.8.5.

Installs 170 packages in all (was 218).

Breaking12
Bundles AI Ready and Skew Protection by default.
Removes deprecated v5 content and module list APIs.
Makes nuxtseo: false skip the bundled modules.
nuxtseo
Bumps Nuxt Sitemap to v9.0.0.
Bumps Nuxt OG Image to v7.0.0.
Bumps Nuxt Link Checker to v6.0.0.
Bumps Nuxt SEO Utils to v9.0.0.
Bumps Nuxt Site Config to v5.0.0.
Bumps Nuxt Skew Protection to v2.0.0.
Bumps Nuxt AI Ready to v3.0.0.
Bumps bundled modules to new major versions: Nuxt Robots v7, Sitemap v9, OG Image v7, Schema.org v7, Link Checker v6, SEO Utils v9, Site Config v5, Skew Protection v2, AI Ready v3.
Bumps Nuxt Schema.org to v7.0.0.

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • added: const config: { nitroBuilder: 'nitro-v2' | 'nitro-v3'; installedModuleSlugs: import('nuxtseo-shared/const').NuxtSEOModule['slug'][]; disabledModuleSlugs: import('nuxtseo-sha…
  • added: default config
  • removed: export { normalModules } from 'nuxtseo-shared/const'
  • removed: export { standaloneModules } from 'nuxtseo-shared/const'
  • added: export { bundledModules } from 'nuxtseo-shared/const'
  • removed: function asSeoCollection<T>(collection: Collection<T>): Collection<T>
  • added: property ModuleOptions.tips: boolean
  • added: const _default: any
  • added: default _default
  • added: const _default: any
  • added: default _default
  • added: function collectSetupDebugData(options: { installedModuleSlugs: Set<ModuleSlug>; disabledModuleSlugs?: Set<ModuleSlug>; baseURL: string; fetch: (path: string, signal: AbortSignal) => Promise<unknown>; timeout?: number }): Promise<Map<ModuleSlug, Record<string, any>>>
  • added: function createHomepageSetupCheck<T extends HomepageResponse>(baseURL: string, run: (response: T) => Promise<void>, reportFailure: (cause: unknown) => void, homepagePaths?: string[]): (response: T) => void
  • added: function reportSetupChecklist(results: ModuleChecklistResult[], dependencies: { allowTips: () => Promise<boolean>; warn: (message: string) => void; info: (message: string) => void }): Promise<void>
  • added: interface HomepageResponse
  • added: property HomepageResponse.contentType: string
  • added: property HomepageResponse.path: string
  • added: property HomepageResponse.status: number
  • added: function claimSetupTips(options: { stateDirectory: string; now?: () => number; fileSystem?: SetupTipsFileSystem }): Promise<SetupTipsClaim>
  • added: type SetupTipsFileSystem = Pick<typeof fs, 'mkdir' | 'readFile' | 'writeFile' | 'stat' | 'rename' | 'rm' | 'rmdir'>
  • added: declare module '#nuxt-seo/setup.mjs'