WhatsApp & Multiple Images · Nuxt OG Image · Nuxt SEO

-
-
-
-

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

.

OG Image

-
-
-
-
-
-
-
-
-
-

Search…```k`` /`

v6 (latest)

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

### Getting Started

-
-
-
-

### Core Concepts

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

### Overview

-
-
-
-

### Integrations

-
-
-

Core Concepts

# WhatsApp & Multiple Images

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

Different social platforms have different requirements for OG images:

| Platform | Recommended Size | Aspect Ratio |
| --- | --- | --- |
| Twitter/X | 1200x600 | 2:1 |
| Facebook | 1200x630 | 1.91:1 |
| LinkedIn | 1200x627 | 1.91:1 |
| WhatsApp | 800x800 | 1:1 (square) |

WhatsApp displays OG images as square thumbnails, so the default landscape image gets cropped. To avoid this, you can generate multiple images with different dimensions.

## [Basic Usage](#basic-usage)

Pass shared props and an array of size variants to `defineOgImage`. The module shares props across all variants - no need to repeat them:

```
<script lang="ts" setup>
defineOgImage('NuxtSeo', { title: 'My Page' }, [
  // Default landscape for Twitter/Facebook
  { key: 'og' },
  // Square for WhatsApp
  { key: 'whatsapp', width: 800, height: 800 },
])
</script>
```

Each image gets a unique URL based on its options:

- `/_og/s/title_My+Page,p_...` (default)
- `/_og/s/k_whatsapp,w_800,h_800,title_My+Page,p_...`

## [How Keys Work](#how-keys-work)

The `key` option determines which meta tags the module generates:

| Key Value | Meta Tags Generated |
| --- | --- |
| `'og'` (default) | Both `og:image` and `twitter:image` |
| `'twitter'` | Only `twitter:image` |
| Any other string | Only `og:image` (additional images) |

Since WhatsApp uses `og:image` meta tags, multiple OG images with different keys will all be available for WhatsApp to choose from. WhatsApp typically picks the first image that meets its size requirements.

## [Recommended Setup](#recommended-setup)

For optimal display across all platforms:

```
<script lang="ts" setup>
defineOgImage('NuxtSeo', { title: 'My Page' }, [
  // Primary image for og:image and twitter:image (1200x600)
  { key: 'og' },
  // Additional square image for WhatsApp (800x800)
  { key: 'whatsapp', width: 800, height: 800 },
])
</script>
```

## [Twitter-Only Images](#twitter-only-images)

Use `key: 'twitter'` to generate an image that only appears in Twitter meta tags:

```
<script lang="ts" setup>
defineOgImage('NuxtSeo', { title: 'My Page' }, [
  // og:image only (no twitter:image)
  { key: 'og-only' },
  // twitter:image only
  { key: 'twitter' },
])
</script>
```

## [Per-Variant Prop Overrides](#per-variant-prop-overrides)

Shared props can be overridden per variant using the `props` field:

```
<script lang="ts" setup>
defineOgImage('NuxtSeo', { title: 'My Page', description: 'Full description here' }, [
  { key: 'og' },
  { key: 'whatsapp', width: 800, height: 800, props: { description: 'Short' } },
])
</script>
```

## [Accessing Image URLs](#accessing-image-urls)

`defineOgImage` returns an array of generated URLs:

```
<script lang="ts" setup>
const urls = defineOgImage('NuxtSeo', { title: 'Default' }, [
  { key: 'og' },
  { key: 'square', width: 450, height: 450 },
])

// urls = [
//   '/_og/s/title_Default,p_...',
//   '/_og/s/k_square,w_450,h_450,title_Default,p_...'
// ]
</script>
```

## [Component Variants](#component-variants)

You can use different components for different platforms using the array-only syntax:

```
<script lang="ts" setup>
defineOgImage('OgImageLandscape', [
  { props: { title: 'My Page' } },
  {
    component: 'OgImageSquare',
    props: { title: 'My Page' },
    key: 'whatsapp',
    width: 800,
    height: 800,
  },
])
</script>
```

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

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

Did this page help you?

On this page

- [Basic Usage](#basic-usage)
- [How Keys Work](#how-keys-work)
- [Recommended Setup](#recommended-setup)
- [Twitter-Only Images](#twitter-only-images)
- [Per-Variant Prop Overrides](#per-variant-prop-overrides)
- [Accessing Image URLs](#accessing-image-urls)
- [Component Variants](#component-variants)

[GitHub](https://github.com/harlan-zw/nuxt-seo) [ Discord](https://discord.com/invite/275MBUBvgP)

###

-
-

Modules

-
-
-
-
-
-
-
-
-

###

-
-
-

###

Nuxt

-
-
-
-
-

Vue

-
-
-
-
-
-
-
-

###

-
-
-
-
-
-
-
-
-
-

Copyright © 2023-2026 Harlan Wilton - [MIT License](https://github.com/harlan-zw/nuxt-seo/blob/main/license) · [mdream](https://mdream.dev)