OG image size reference

The dimensions each platform actually uses for link previews, and the safe zone that survives every crop.

The short answer

1200×630px, an aspect ratio of roughly 1.91:1. It's the one size that reads correctly on Facebook, LinkedIn, Discord and Twitter/X's large card, so build one image and stop thinking about platform-specific variants.

PlatformUsesRecommended sizeMin sizeFile size
Facebook / Open Graphog:image1200×630200×200< 8 MB
LinkedInog:image1200×6271200×627 recommended< 5 MB
Twitter / X (large card)twitter:image + summary_large_image1200×630300×157< 5 MB
Discordog:image1200×630-< 8 MB

LinkedIn's own guidance rounds to 1200×627; a 1200×630 image displays fine there in practice. The 3px difference isn't visible after LinkedIn's own crop.

Safe zone

Every platform crops slightly differently depending on device and card type. Keep headline text and logos inside the center ~88% of the frame so nothing important sits where a client trims it.

1200×630, with safe zone marked

Rules that hold across platforms

  • Use one aspect ratio, not one per platform. 1.91:1 (1200×630) is accepted everywhere in the table above; square (1200×1200) is a fallback some platforms use for image posts, not link cards. Don't design for it unless you've confirmed you need it.
  • Text at 44px or larger. Cards render small in a feed. 1200×630 gets scaled down to a few hundred pixels wide on most timelines, so anything under about 40-44px at full resolution turns illegible.
  • High contrast, not decoration. A card competes with everything else in a feed for half a second of attention. Plain, high-contrast type reads faster than a busy background.
  • PNG for text and UI, JPEG for photos. PNG keeps text edges sharp; JPEG compresses photographic detail smaller at the same visual quality.
  • Test the real crop before shipping. Facebook's Sharing Debugger and Twitter's Card Validator both show the exact crop a real client will use. A quick check catches a logo trimmed at the edge before it goes out in a tweet.
Generating these from real post data at build time? ogrender renders 1200×630 PNGs from HTML and CSS with real Chromium. See the docs.