Image Handling

Image requirements, privacy-preserving downloads, and HTTPS enforcement for Signal previews

Recommended dimensions

Signal doesn’t document specific requirements. 1200 x 630 pixels at 1.91:1 works well. Signal displays the image above the title in a rounded card on mobile.

HTTPS-only

Signal enforces HTTPS for images too. HTTP og:image URLs are ignored:

<!-- Will work -->
<meta property="og:image" content="https://example.com/images/preview.jpg">

<!-- Won't work: HTTP -->
<meta property="og:image" content="http://example.com/images/preview.jpg">

Privacy-preserving image downloads

Signal downloads images using overlapping range requests instead of a single sequential download. This makes it harder for servers to fingerprint or track downloads based on request patterns. Your server needs to support HTTP range requests (most do by default).

If your server or CDN strips Range headers or doesn’t support 206 Partial Content responses, Signal may fail to download the image even though the URL is valid.

Supported formats

  • JPEG: photographs
  • PNG: graphics with text or transparency
  • WebP: supported on modern Signal versions
  • GIF: static only, first frame is used

SVG is not reliably supported.

File size limits

Signal stops downloading a preview image once it passes a hard cap, then shows the card with a generic link icon where the image should be. The title and description still appear, so the preview looks half broken instead of missing.

Client Image cap
Signal Desktop 1 MiB (1,048,576 bytes)
Signal Android 2 MB

Desktop is the tighter one, so treat 1 MiB as the real limit. Large PNGs of photo-heavy pages go over it easily. A 2x PNG screenshot of a page full of photos can run 3 MB. The same image as a JPEG is usually a few hundred KB with no visible difference.

Client-side fetching means bandwidth matters

Since Signal fetches images from the sender’s device through the privacy proxy, download speed depends on the sender’s internet connection. Staying under the cap isn’t enough on a slow connection. Keep images under 500KB to ensure fast preview generation on mobile.

Cropping

Signal crops images to fit its card layout. Keep important content centered; the center 80% is the safe zone.

Additional resources

Keep Signal previews fixed

Previews break again after a deploy or a CMS edit. OpenGraph+ monitors every page and keeps them correct on every platform.