Skip to main content

Open Graph image meets minimum size requirements

ab-002519 · seo-fundamentals.social-sharing.og-image-size
Severity: mediumactive

Why it matters

Facebook, LinkedIn, and iMessage upscale OG images below 1200x630 to fit their card templates, which produces blurry thumbnails on retina displays — exactly the screens the most active social users are reading on. Images under 600x315 are rejected entirely on some platforms and fall back to no-image cards. Specifying width and height in metadata also lets scrapers render the correct aspect ratio without fetching the image first, which matters for chat platforms that render previews synchronously.

Severity rationale

Medium because shares still unfurl with smaller images, but the preview quality is degraded on every retina device.

Remediation

Export OG images at exactly 1200x630 pixels (1.91:1 aspect ratio). Use PNG for images with text, JPEG for photographic content. Declare dimensions in metadata so scrapers do not need to fetch the file to compute aspect.

// app/layout.tsx
openGraph: {
  images: [{ url: '/og-image.png', width: 1200, height: 630 }],
}

For dynamic generation, use the size export in app/opengraph-image.tsx: export const size = { width: 1200, height: 630 } — Next.js uses this to set the correct metadata automatically.

Detection

  • ID: seo-fundamentals.social-sharing.og-image-size

  • Severity: medium

  • What to look for: If an og:image tag is present, check whether the referenced image meets the recommended minimum size of 1200x630 pixels. If the image is a local file in public/, check its dimensions. If it's a URL or dynamically generated, check for explicit width/height in the metadata.

  • Pass criteria: Count all OG image declarations. The OG image must be at least 1200 pixels wide and at least 630 pixels tall (as specified in metadata width/height properties, or determinable from the actual image file). Enumerate each OG image found with its dimensions.

  • Fail criteria: The OG image exists but is smaller than 1200x630, or dimensions cannot be determined and no explicit width/height is specified in the metadata. Do NOT pass when width is under 1200 or height is under 630.

  • Skip (N/A) when: No og:image tag exists (this is caught by the og-tags check). Also skip when the OG image URL points to a dynamic route (e.g., /api/og, /opengraph-image, a Next.js OG Image API route, or any route ending in /og or containing /opengraph). Dynamic OG images cannot have their dimensions statically verified. Detail on skip: "OG image is dynamically generated — dimensions should be validated manually or via the route's size export." Do NOT fail dynamic OG images for unresolvable dimensions.

  • Detail on fail: "OG image dimensions are 600x315 — below the recommended 1200x630 minimum" or "OG image specified but no width/height in metadata and image file dimensions not determinable"

  • Remediation: Social platforms display OG images at various sizes. The recommended minimum is 1200x630 pixels to ensure sharp display on high-DPI screens. Resize your OG image to at least 1200x630 and specify dimensions in your metadata:

    openGraph: {
      images: [{ url: '/og-image.png', width: 1200, height: 630 }],
    }
    

Taxons

History