Image Handling

Image sizes, aspect ratios, and cropping behavior for Instagram link previews

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 facebookexternalhit without authentication
  • Served over HTTPS
  • Not behind redirects that require cookies or JavaScript
  • Returning a valid image content type (image/jpeg, image/png, etc.)