Nuxt Config · Nuxt OG Image · 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)

**OG Image v6** is here! Looking for an older version? [View v5 docs](https://nuxtseo.com/docs/og-image/v5/getting-started/introduction).

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

[API](https://nuxtseo.com/docs/og-image/api/define-og-image)

[Releases](https://nuxtseo.com/docs/og-image/releases/v6)

OG Image

- [Switch to OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [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 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`` /`

v6 (latest)

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

### Nuxt API

- [`defineOgImage()`](https://nuxtseo.com/docs/og-image/api/define-og-image)
- [`defineOgImageComponent()`](https://nuxtseo.com/docs/og-image/api/define-og-image-component)
- [`defineOgImageScreenshot()`](https://nuxtseo.com/docs/og-image/api/define-og-image-screenshot)
- [Components](https://nuxtseo.com/docs/og-image/api/components)
- [nuxt.config.ts](https://nuxtseo.com/docs/og-image/api/config)
- [Nuxt Hooks](https://nuxtseo.com/docs/og-image/api/nuxt-hooks)

### Nitro API

- [Nitro Hooks](https://nuxtseo.com/docs/og-image/nitro-api/nitro-hooks)

Nuxt API

# Nuxt Config

[Copy for LLMs](https://nuxtseo.com/docs/og-image/api/config.md)

### [`enabled`](#enabled)

- Type: `boolean`
- Default: `true`

Conditionally toggle the module.

### [`defaults`](#defaults)

- Type: `OgImageOptions`
- Default: `{ width: 1200, height: 600, extension: 'png', emojis: 'noto', cacheMaxAgeSeconds: 60 * 60 * 24 * 3 }`

The default options to use when generating images.

See the [defineOgImage](https://nuxtseo.com/docs/og-image/api/define-og-image) documentation for more details.

### [`compatibility`](#compatibility)

- Type: `{ dev?: CompatibilityFlags, runtime?: CompatibilityFlags, prerender?: CompatibilityFlags }`
- Default: `{}`

Override the compatibility flags.

See the [Renderers](https://nuxtseo.com/docs/og-image/renderers) guide to learn more.

### [`zeroRuntime`](#zeroruntime)

- Type: `boolean`
- Default: `false`

Enable zero runtime mode. See the [Zero Runtime](https://nuxtseo.com/docs/og-image/guides/zero-runtime) documentation for more details.

### [`satoriOptions`](#satorioptions)

- Type: `SatoriOptions`
- Default: `{}`

Options to pass to Satori when generating images. See the [Satori docs](https://github.com/vercel/satori).

### [`resvgOptions`](#resvgoptions)

- Type: `ResvgOptions`
- Default: `{}`

Options to pass to Resvg when generating images. See the [Resvg docs](https://github.com/yisibl/resvg-js).

### [`sharpOptions`](#sharpoptions)

- Type: `SharpOptions`
- Default: `{}`

Options to pass to Sharp when generating images. See the [Sharp docs](https://sharp.pixelplumbing.com/).

### [`cacheVersion`](#cacheversion)

- Type: `string| false`
- Default: module version

Custom version string for cache key namespacing.

By default, the module uses its version number, which invalidates the cache on module upgrades. Set a static value like `'v1'` to persist the cache across module updates. Set to `false` to disable versioning entirely.

### [`fontSubsets`](#fontsubsets)

- Type: `string[]`
- Default: `['latin']`

Font subsets to download when resolving missing font families via `fontless`.

This option only controls which subsets the module downloads when supplementing missing families for the [Satori](https://nuxtseo.com/docs/og-image/renderers/satori) renderer. Fonts from `@nuxt/fonts` always include all their available subsets.

nuxt.config.ts

```
export default defineNuxtConfig({
  ogImage: {
    fontSubsets: ['latin', 'devanagari', 'cyrillic']
  }
})
```

### [`componentDirs`](#componentdirs)

- Type: `string[]`
- Default: `['OgImage', 'OgImageCommunity', 'og-image', 'OgImageTemplate']`

Extra component directories the module should use to resolve components.

### [`runtimeCacheStorage`](#runtimecachestorage)

- Type: `boolean| string| (Record<string, any> & { driver: string})`
- Default: `true`

Modify the runtime cache behaviour.

Passing a boolean will enable or disable the runtime cache with the default options.

Providing a record will allow you to configure the runtime cache fully.

```
export default defineNuxtConfig({
  ogImage: {
    runtimeCacheStorage: {
      driver: 'redis',
      host: 'localhost',
      port: 6379,
      password: 'password'
    }
  }
})
```

### [`buildCache`](#buildcache)

- Type: `boolean| { base?: string }`
- Default: `false`

Enable persistent build cache for CI environments. Caches rendered images to disk so they persist between CI runs.

The cache key includes the options hash, component template hash, and module version, ensuring automatic invalidation when any of these change.

```
export default defineNuxtConfig({
  ogImage: {
    buildCache: true
    // or with custom directory:
    // buildCache: { base: '.cache/og-image' }
  }
})
```

Default cache directory: `node_modules/.cache/nuxt-seo/og-image/`

See the [Caching Guide](https://nuxtseo.com/docs/og-image/guides/cache#build-cache-ci-persistence) for CI configuration examples.

### [`cacheQueryParams`](#cachequeryparams)

- Type: `boolean`
- Default: `false`

Include query parameters in cache keys.

Enabling this creates a separate cache for requests like `/page?foo=bar` and `/page`. Enable this if your OG image content depends on query parameters.

### [`warnMissingSuffix`](#warnmissingsuffix)

- Type: `boolean`
- Default: `true`

Warn about OG Image components missing the renderer suffix (`.satori.vue`, `.takumi.vue`, `.browser.vue`) in dev mode. Set to `false` to suppress warnings for legacy or test components.

### [`browser`](#browser)

- Type: `BrowserConfig`
- Default: `undefined`

Browser renderer configuration for screenshots.

When using browser-based rendering (screenshots), configure the browser provider. For [Cloudflare](https://cloudflare.com) deployments, specify the browser binding name.

nuxt.config.ts

```
export default defineNuxtConfig({
  ogImage: {
    browser: {
      provider: 'cloudflare',
      binding: 'BROWSER'
    }
  }
})
```

See the [Browser Renderer](https://nuxtseo.com/docs/og-image/renderers/browser) guide for more details.

### [`security`](#security)

- Type: `object`

Security limits for image generation. See the [Security Guide](https://nuxtseo.com/docs/og-image/guides/security) for full details.

- **`secret`**: Signing secret for URL tamper protection. When set, all runtime OG image URLs are signed and unsigned requests are rejected with `403`. Generate one with `npx nuxt-og-image generate-secret`. See the [Security Guide](https://nuxtseo.com/docs/og-image/guides/security#url-signing) for details.
- **`maxDimension`**: Maximum width or height in pixels. Default `2048`.
- **`maxDpr`**: Maximum device pixel ratio (Takumi renderer). Default `2`.
- **`renderTimeout`**: Milliseconds before the render is aborted with a `408` response. Default `15000`.
- **`maxQueryParamSize`**: Maximum query string length (in characters) for runtime requests. Returns `400` when exceeded. Default `null` (no limit).
- **`restrictRuntimeImagesToOrigin`**: Restrict runtime image generation to requests whose `Host` header matches allowed hosts. Default `false`. See the [Security Guide](https://nuxtseo.com/docs/og-image/guides/security#restrict-runtime-images-to-origin) for details.
- **`strict`**: Enable strict security mode. Requires `secret`, disables the deprecated `html` option, defaults `maxQueryParamSize` to `2048`, and enables `restrictRuntimeImagesToOrigin`. Default `false`. See the [Security Guide](https://nuxtseo.com/docs/og-image/guides/security#strict-mode) for details.

.env

```
NUXT_OG_IMAGE_SECRET=<your-secret>
```

nuxt.config.ts

```
export default defineNuxtConfig({
  ogImage: {
    security: {
      strict: true,
    }
  }
})
```

### [`debug`](#debug)

- Type: `boolean`
- Default: `false`

Enables debug logs and a debug endpoint.

[Edit this page](https://github.com/nuxt-modules/og-image/edit/main/docs/content/4.api/3.config.md)

[Markdown For LLMs](https://nuxtseo.com/docs/og-image/api/config.md)

Did this page help you?

[Components The OgImage and OgImageScreenshot components have been removed in v6.](https://nuxtseo.com/docs/og-image/api/components) [Nuxt Hooks Hook into the Nuxt OG Image build-time and runtime behaviour.](https://nuxtseo.com/docs/og-image/api/nuxt-hooks)

On this page

- [enabled](#enabled)
- [defaults](#defaults)
- [compatibility](#compatibility)
- [zeroRuntime](#zeroruntime)
- [satoriOptions](#satorioptions)
- [resvgOptions](#resvgoptions)
- [sharpOptions](#sharpoptions)
- [cacheVersion](#cacheversion)
- [fontSubsets](#fontsubsets)
- [componentDirs](#componentdirs)
- [runtimeCacheStorage](#runtimecachestorage)
- [buildCache](#buildcache)
- [cacheQueryParams](#cachequeryparams)
- [warnMissingSuffix](#warnmissingsuffix)
- [browser](#browser)
- [security](#security)
- [debug](#debug)

[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)