Index of every page on this site: llms.txt

enabled: boolean

  • Default: true

Conditionally toggle the module.

debug: boolean

  • Default: false

Enables debug logs.

canonicalQueryWhitelist: string[]

  • Default: ['page', 'sort', 'filter', 'search', 'q', 'category', 'tag']

When set, only these query parameters are included in the canonical URL. All other query parameters are stripped.

canonicalLowercase: boolean

  • Default: true

When enabled, the canonical URL will be lowercased. Recommended to keep on for consistency. It also lowercases og:url, useShareLinks() URLs, and the Schema.org BreadcrumbList item URLs. Breadcrumb to links keep their case.

redirectToCanonicalSiteUrl: boolean

  • Default: false

When enabled, it will redirect any request to the canonical domain (site url) using a 301 redirect on non-dev environments.

E.g., if the site url is www.example.com and the user visits example.com, they will be redirected to www.example.com.

This is useful for SEO as it prevents duplicate content and consolidates page rank.

redirects: Redirects

  • Default: undefined

Old URLs keyed by path, without app.baseURL. A trailing /** matches the path and every path below it.

  • A moved URL sets to, addedAt, and optionally statusCode (301 by default, or 308).
  • A gone URL sets statusCode (410 or 404) and addedAt. It has no to.
  • Both accept reviewedAt and a private reason.
export default defineNuxtConfig({
  seo: {
    redirects: {
      '/blog/old-post': { to: '/blog/new-post', addedAt: '2026-10-13' },
      '/spring-sale': { statusCode: 410, addedAt: '2026-10-13', reason: 'The sale ended.' },
    },
  },
})

See Redirects and Gone URLs.

redirectReviewAfterDays: number | false

  • Default: 365

The number of days until nuxt dev and nuxt build list an entry for review. The count starts at the later of addedAt and reviewedAt. To turn off the review, set false. No entry expires on its own.

automaticDefaults: boolean

  • Default: true

Will set up a number of defaults for meta tags and Schema.org, if the modules and config are available.

mergeWithSiteConfig: boolean

  • Default: true

Injects site config into the useHead composable such as setting the title template and template params like %siteName.

fallbackTitle: boolean

  • Default: true

Will ensure a title is always set by providing a fallback title based on the casing of the last slug segment.

metaDataFiles: boolean

  • Default: true

Whether to use the files in the public directory to infer tags such as favicon, apple-touch-icon, and open graph images.

automaticOgAndTwitterTags: boolean

  • Default: true

Whether to infer head data from the current input to fill in the gaps.

For example:

  • If you supply a title, this will automatically add an og:title.
  • If you provide an og:image, it will automatically add a twitter:image.

automaticTwitterTags: boolean

  • Default: true

Whether to infer Twitter metadata from Open Graph metadata.

Set this to false to keep Open Graph inference without adding twitter:card.

tagPriority: number | 'critical' | 'high' | 'low' | \before:${string}` | `after:${string}``

  • Default: 'low'

Sets the tagPriority for SEO and Open Graph meta tags generated by this module. The default 'low' ensures module tags act as fallbacks that page-level useSeoMeta() calls can override. Use a numeric value or 'critical'/'high' to place tags earlier in the <head> (useful for OG crawlers with byte limits).

Route rule head and seoMeta do not use this option. They always override app.head and seo.meta, and a page-level call always overrides them.

minify: boolean | { build?: boolean, runtime?: boolean }

  • Default: { build: true, runtime: false }

Minifies inline <script> and <style> tags in SSR responses. Both modes can be toggled independently.

Build mode (build): Minifies static app.head JavaScript and CSS with Rolldown/esbuild and lightningcss. Compacts JSON and CSS in prerendered HTML. Preserves dynamic JavaScript and custom script types.

Runtime mode (runtime): Compacts JSON scripts and inline CSS per request via an Unhead ssr:render plugin. Preserves dynamic JavaScript and custom script types.

seo: { minify: { build: true, runtime: false } }

JSON script types (application/ld+json, application/json) are minified via JSON round-tripping. importmap and speculationrules types are left untouched. Only active in production builds.

treeShakeUseSeoMeta: boolean

  • Default: true

Attempts to treeshake the useSeoMeta function. Can save around 5kb in the client bundle.

extendRouteRules: boolean

  • Default: true

Adds head and seoMeta to the route rules and app config.

  • Default: true

Tries to convert relative image paths to absolute paths in meta tags.

extendNuxtConfigAppHeadSeoMeta: boolean

  • Default: true

Extends app.head with the seoMeta key.

extendNuxtConfigAppHeadTypes: boolean

  • Default: true

Augments the head schema with /public files making it easier to reference them in the head.

meta: MetaFlatSerializable

  • Default: {}

The SEO meta object to be used as site-wide defaults. Takes the same input as useSeoMeta(). See the Nuxt Config SEO Meta guide for details.

setupNuxtConfigAppHeadWithMoreDefaults: boolean

  • Default: true

Sets up additional default head values in your nuxt.config app.head section.

Was this page helpful?