---
title: "v2 to v3 · Nuxt OG Image · Nuxt SEO"
canonical_url: "https://nuxtseo.com/docs/og-image/migration-guide/v3"
last_updated: "2026-08-16T09:55:37.516Z"
meta:
  description: "Migrate Nuxt OG Image v2 to Nuxt OG Image v3."
  "og:description": "Migrate Nuxt OG Image v2 to Nuxt OG Image v3."
  "og:title": "v2 to v3 · Nuxt OG Image · Nuxt SEO"
---

Nuxt SEO on GitHub

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

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

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

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

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)

**Migration Guides**

# **v2 to v3**

### Playground

You must access the playground through Nuxt DevTools, the `**/__og_image__**` is no longer supported.

### OG Image URL

If you were referencing an OG Image URL, you will need to update it to use the new `**/__og-image__/image**` endpoint.

## Nuxt Config

Remove the following keys from your Nuxt config:

- `**playground**` - If you enable Nuxt DevTools, the module always enables the playground
- `**host**` - You must migrate to using [**~~Nuxt Site Config~~**](https://nuxtseo.com/docs/site-config/guides/how-it-works)
- `**siteUrl**` - You must migrate to using [**~~Nuxt Site Config~~**](https://nuxtseo.com/docs/site-config/guides/setting-site-config)
- `**runtimeBrowser**`, `**runtimeSatori**` - These are now handled by `**compatibility**`. If you intend to use the Browser renderer at runtime please see [**~~the Browser docs~~**](https://nuxtseo.com/docs/og-image/renderers/browser) for more information.

## Nuxt Hooks

Remove any usages of the `**og-image:prerenderScreenshots**` hook, as the module removed it.

If you were using this hook and have a use case for it, please [**~~open an issue~~**](https://github.com/harlan-zw/nuxt-og-image/issues/new/choose).

If you were using `**og-image:config**` you should replace this code with the new `**nuxt-og-image:runtime-config**` hook.

## Caching

You will need to delete all old cache keys: `**cacheTtl**`, `**cache**`, `**cacheKey**`, `**static**`

Please see the [**~~Runtime Cache docs~~**](https://nuxtseo.com/docs/og-image/guides/runtime-cache) for details on using the new `**cacheMaxAgeSeconds**`.

## Default Template

If you were referencing the default template as `**Fallback**` anywhere, you will need to update this to be `**NuxtSeo**`.

v2

```ts
// v3
defineOgImage({
  component: 'Fallback',
  // props ...
})
```

v3

```ts
// v3
defineOgImageComponent('NuxtSeo', {
  // props
})
```

## Components

It's now recommended to use the new `**defineOgImageComponent**` API over using components.

The module removed the following components:

- `**OgImageStatic**`
- `**OgImageDynamic**`
- `**OgImageCached**`
- `**OgImageWithoutCache**`

If you need to use components, do a search for these components and replace any instances or variations with `**<OgImage ... />**`

```vue
<template>
  <OgImageStatic :title="title" :description="description" />
</template>
```

If you're using components with Nuxt Content, you will now need to manually make them global.

nuxt.config.ts

```ts
export default defineNuxtConfig({
  ogImage: {
    componentOptions: {
      global: true,
    },
  },
})
```

## Composables

The module removed the following composables:

- `**defineOgImageStatic**`
- `**defineOgImageDynamic**`
- `**defineOgImageCached**`
- `**defineOgImageWithoutCache**`

Do a global search for these removed composables as well as `**defineOgImage**`. It's recommended to replace these with the new `**defineOgImageComponent**`.

The props work differently. You will need to pass them in explicitly as a second argument.

If you were using the default template previously, you should use the `**NuxtSeo**` as the template name. This will provide type-safety.

```ts
// v2
defineOgImage({
  title: String,
  description: String,
})
```

**Was this page helpful?**

### **Related **

[**v5 to v6**](https://nuxtseo.com/docs/og-image/migration-guide/v6)

[**Runtime Cache**](https://nuxtseo.com/docs/og-image/guides/runtime-cache)

[**How it works**](https://nuxtseo.com/docs/site-config/guides/how-it-works)

[**Nitro Hooks** Hook into the Nuxt OG Image runtime.](https://nuxtseo.com/docs/og-image/nitro-api/nitro-hooks) [**v5 to v6** Migrate Nuxt OG Image v5 to Nuxt OG Image v6.](https://nuxtseo.com/docs/og-image/migration-guide/v6)