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:imageand 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
- Drop your screenshot in. Whatever the source resolution.
- Pick the
og:imagepreset (1200×630). The crop auto-centers; drag if you want different framing. - Pick JPG, 85% quality. Most photo+text screenshots land around 200 KB.
- Download. Drop into your
public/directory. - 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" />
- 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.