---
title: "v2 to v3 · Nuxt OG Image · Nuxt SEO"
canonical_url: "https://nuxtseo.com/docs/og-image/v5/migration-guide/v3"
last_updated: "2026-08-16T10:00:31.933Z"
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

You're viewing **OG Image v5** documentation. For the latest, [~~switch to v6~~](https://nuxtseo.com/docs/og-image/getting-started/introduction).

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

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

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

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 have Nuxt DevTools enabled then the playground will always be enabled
- `**host**` - You must migrate to using [**~~Nuxt Site Config~~**](https://nuxtseo.com/site-config/guides/setting-site-config)
- `**siteUrl**` - You must migrate to using [**~~Nuxt Site Config~~**](https://nuxtseo.com/site-config/guides/setting-site-config)
- `**runtimeBrowser**`, `**runtimeSatori**` - These are now handled by `**compatibility**`. If you intend to use Chromium at runtime please see [**~~the Chromium docs~~**](https://nuxtseo.com/docs/og-image/guides/chromium) for more information.

## Nuxt Hooks

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

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 [**~~caching docs~~**](https://nuxtseo.com/docs/og-image/guides/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 following composables have been removed:

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

If you need to using components then 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.

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

## Composables

The following composables were removed:

- `**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 a little bit 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?**

[**Nitro Hooks** Hook into the Nuxt OG Image runtime.](https://nuxtseo.com/docs/og-image/v5/nitro-api/nitro-hooks) [**v5.0.0** Release notes for Nuxt OG Image v5.](https://nuxtseo.com/docs/og-image/v5/releases/v5)