Crop any image to a 1200×630 og:image.

When someone pastes your link into Slack, iMessage, Twitter/X, LinkedIn, or Discord, they see the image you set in your `og:image` meta tag. Every one of those previews crops to 1.91:1 at 1200 wide. Drop an image, get the exact pixels.

The size every link preview wants

There is no single "Open Graph spec" — Facebook, Twitter, LinkedIn, Slack, and Discord all read <meta property="og:image"> but each crops to its own aspect. The shape they all share is 1200×630 (1.91:1).

  • Facebook / Open Graph: 1200×630 recommended, minimum 600×315. Source: Facebook Sharing best practices.
  • Twitter / X (summary_large_image): 1200×628 recommended, accepts 2:1.
  • LinkedIn: 1200×627 (effectively 1.91:1).
  • Slack / iMessage / Discord: read og:image and render at the source aspect, but crop to ~1.91:1 in their preview cards.

Submitting one 1200×630 image satisfies every one of those surfaces. File should be under 8 MB for the widest compatibility (Facebook's cap).

Common mistakes

Square or portrait og:image. A 1080×1080 source gets cropped to 1.91:1 by every consumer of og:image — top and bottom of the frame disappear. Cropping in advance keeps you in control.

Subject in the corner. Some platforms crop slightly differently (Twitter is closer to 2:1; LinkedIn is closer to 1.91:1). If your subject is dead-center, every crop renders correctly. If it's in the corner, one of the platforms will clip it.

Text too small. Link previews render at small sizes — typically 360-480 pixels wide on desktop, 320 on mobile. If your text fills less than ~10% of the image height, it disappears. Headline text should be 80-120 pixels tall in the source.

Missing dimensions in the meta tag. Specify og:image:width and og:image:height in your meta tags. Without them, Twitter Cards and Facebook may fall back to a smaller card style. Set both to 1200 and 630 respectively.

Best practices

A good og:image is a billboard, not a thumbnail. It needs to read at a glance in a feed where the user has not yet decided whether to click.

  • Headline first. Most click-through comes from the og:image, not the title. Treat it like the title.
  • High contrast text. Dark text on a light background (or vice versa) survives JPEG compression. Mid-tone gradients lose definition after the platform re-encode.
  • Center-safe. Keep critical content within the central 1200×600 region. Outside edges may get cropped on some platforms.
  • JPG at 80-85% quality. Lands around 150-300 KB for a typical photo+text image. Well under the 8 MB cap and faster to fetch on the link-preview crawler's timeout window (most crawlers give up after 5-10 seconds).

Walkthrough: turning a screenshot into an og:image

  1. Drop your screenshot in. Whatever the source resolution.
  2. Pick the og:image preset (1200×630). The crop auto-centers; drag if you want different framing.
  3. Pick JPG, 85% quality. Most photo+text screenshots land around 200 KB.
  4. Download. Drop into your public/ directory.
  5. Set the meta tag:
<meta property="og:image" content="https://yoursite.com/og.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://yoursite.com/og.jpg" />
  1. Validate. Run the URL through Twitter Card Validator and Facebook Sharing Debugger to confirm the preview renders right.

Frequently asked

What size should an og:image be?

The shape every major preview uses is 1.91:1. The recommended size is 1200×630 pixels — Facebook's recommendation, and within Twitter's and LinkedIn's acceptable ranges.

Does Twitter use a different size?

Twitter's summary_large_image card prefers 1200×628 (closer to 2:1 than 1.91:1). The difference is two pixels in height — 1200×630 renders correctly on Twitter and on every other platform.

Why does my og:image not show up in Slack/iMessage?

Three usual reasons: the meta tag uses a relative URL (it must be absolute), the image is over 5 MB (some preview crawlers time out), or the image is behind authentication (the crawler can't fetch it). Using a https:// absolute URL on a public path fixes all three.

Can I use the same image for og:image and twitter:image?

Yes. Both render at 1.91:1 at 1200 wide. Set both meta tags to the same URL — that's the standard pattern.