---
title: "og:description / og:site_name missing, or og:url ≠ canonical (seo/og-incomplete)"
description: "seo/og-incomplete: A page-level openGraph object in Next.js replaces the layout's entirely (verified on 16.3.5), silently dropping siteName and locale;…"
canonical: https://void-design.vercel.app/rules/seo/og-incomplete
lastModified: 2026-09-16
---

# og:description / og:site_name missing, or og:url ≠ canonical

`seo/og-incomplete` · severity **warn** · category SEO · detected by `void seo` and `void audit`

## Why it matters

A page-level openGraph object in Next.js replaces the layout's entirely (verified on 16.3.5), silently dropping siteName and locale; og:url that differs from the canonical attributes shares to another URL.

## How to fix it

Build openGraph with one helper that always re-adds siteName and locale, and sets url to the canonical path.

## Example

```ts
openGraph: { type: 'article', url: path, title, description, siteName: site.name, locale: site.locale }
```

## References

- https://ogp.me/
- https://nextjs.org/docs/app/api-reference/functions/generate-metadata#merging

## More seo rules

`void seo` reports 60 rules in this category. What search engines need from the raw response: status codes, titles and descriptions in <head>, self-referencing canonicals, one h1, crawlable links, Open Graph, icons, robots.txt and a sitemap with real dates.

- `trailing-slash` Both trailing-slash and non-slash URLs serve 200 — [seo/trailing-slash](https://void-design.vercel.app/rules/seo/trailing-slash)
- `hreflang-invalid` hreflang uses invalid codes or relative URLs — [seo/hreflang-invalid](https://void-design.vercel.app/rules/seo/hreflang-invalid)
- `hreflang-not-reciprocal` hreflang set isn't self-referencing and reciprocal — [seo/hreflang-not-reciprocal](https://void-design.vercel.app/rules/seo/hreflang-not-reciprocal)
- `og-missing` Required Open Graph tags missing (og:title, og:type, og:image, og:url) — [seo/og-missing](https://void-design.vercel.app/rules/seo/og-missing)
- `og-image-invalid` og:image isn't a reachable, absolute, raster image within size limits — [seo/og-image-invalid](https://void-design.vercel.app/rules/seo/og-image-invalid)
- `og-image-size` og:image is smaller than 1200×630 or far from 1.91:1 — [seo/og-image-size](https://void-design.vercel.app/rules/seo/og-image-size)
- `og-image-meta` og:image:width/height missing or wrong, or og:image:alt missing — [seo/og-image-meta](https://void-design.vercel.app/rules/seo/og-image-meta)
- `twitter-card` twitter:card missing — [seo/twitter-card](https://void-design.vercel.app/rules/seo/twitter-card)

Detected by `void seo` and `void audit`. Explain it in a terminal: `void rules seo/og-incomplete`
