SnappiconsnappiconGenerate Free
← Blog
May 2026·4 min read

OG Image Size Guide: What Actually Works in 2026

The short answer: 1200×630px. That's the safe universal size that renders correctly across every major platform. But if you want to know exactly why, and what the edge cases are — read on.

Platform reference

PlatformRecommendedNotes
Twitter / X1200×628Card type must be summary_large_image
LinkedIn1200×628Under 5MB. PNG or JPG.
Facebook1200×630Aspect ratio is the key — 1.91:1
Slack1200×630Reads og:image, shows in link previews
iMessage1200×630Reads og:image from the page
Discord1200×630Max 8MB. Animated GIF supported.

The copy-paste meta tags

<!-- Open Graph -->
<meta property="og:image" content="https://yoursite.com/og-image.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:alt" content="Your app description" />

<!-- Twitter / X -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://yoursite.com/og-image.png" />
<meta name="twitter:image:alt" content="Your app description" />

Next.js: the easy way

In Next.js App Router, drop a opengraph-image.png (1200×630) into app/ and Next.js generates the tags automatically. For dynamic images per-page:

// app/opengraph-image.tsx
import { ImageResponse } from "next/og";

export const size = { width: 1200, height: 630 };
export const contentType = "image/png";

export default function OGImage() {
  return new ImageResponse(
    <div style={{ background: "#0a0a0f", width: "100%", height: "100%", display: "flex", alignItems: "center", justifyContent: "center" }}>
      <h1 style={{ color: "white", fontSize: 64 }}>Your App</h1>
    </div>,
    { ...size }
  );
}

Why your OG image isn't showing

  • Cached by the platformTwitter, LinkedIn, and Facebook cache OG images aggressively. Use their debugging tools to force a refresh: cards.twitter.com/validator, LinkedIn Post Inspector, Facebook Sharing Debugger.
  • Relative URL in og:imageMust be an absolute URL (https://). Relative paths are ignored.
  • Image behind authenticationThe scraper can't access private images. Your OG image must be publicly accessible.
  • File too largeLinkedIn rejects images over 5MB. Twitter rejects over 5MB. Keep it under 1MB in practice.

Generate a 1200×630 OG image in seconds

Upload your logo and Snappicon generates a production-ready OG image in your brand colors — with 6 layout templates for Pro users. Comes with copy-paste meta tags included in the ZIP.

Generate for free