Two different crop formats
The key challenge: Instagram crops your og:image differently depending on context.
- Story link stickers – square crop. Ideal: 1080 x 1080px. A standard 1200x630 landscape image loses significant content on the sides.
- DM previews – landscape crop, similar to Facebook. 1200 x 630px works well.
You get one og:image for both. No way to specify separate images.
Designing for both crops
Use a 1200 x 630px image but keep important content – text, logos, key visuals – within the center 630 x 630px area. Story stickers show that center square; DM previews show the full landscape.
Think of it as a safe zone: full image = DM preview, center square = Story preview.
Size thresholds
Shared with Facebook’s image pipeline:
- 1200 x 630px or larger – best DM quality
- 1080 x 1080px – optimal for Stories (but not ideal for DMs)
- Below 200 x 200px – image ignored entirely
- Maximum file size: 8 MB
Supported formats
JPEG, PNG, WebP, GIF (static frame only). Images are re-encoded and cached on Meta’s CDN after the first fetch. Subsequent views serve from Meta’s servers.
Specifying dimensions
og:image:width and og:image:height let the crawler render previews immediately:
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
Without these, the first share may show no image while Meta’s servers process it in the background.
Image URL requirements
The og:image URL must be:
- An absolute URL (not
/images/og.jpg) - Accessible to
facebookexternalhitwithout authentication - Served over HTTPS
- Not behind redirects that require cookies or JavaScript
- Returning a valid image content type (
image/jpeg,image/png, etc.)