OG Image File Size: Why a 5 MB Card Fails on Mobile
Keep your Open Graph image between 100 and 200 KB. A 1200×630 JPEG exported at quality 80 lands around 150 KB — small enough that a scraper or a phone on a weak signal pulls it in before giving up, sharp enough that nobody notices the compression. A 5 MB PNG hits the same pixel dimensions and looks identical in your editor, but on mobile it is the difference between a preview that renders and a blank gray box.
Why does file size matter if the dimensions are correct?
Dimensions decide whether the image fits. File size decides whether it loads. When you paste a link, the receiving platform's scraper fetches your og:image within a short timeout window — often a couple of seconds. A multi-megabyte file on a slow origin can blow past that window, and the scraper falls back to no image rather than a partial one. The user sees a bare blue link, not your branded card.
The platforms that read these tags do publish ceilings, but ceilings are not targets. Facebook accepts up to 8 MB; X (Twitter) up to 5 MB. The real constraint is the quietest one: WhatsApp wants the file under 300 KB or it may skip the preview entirely.
What is the right OG image file size?
The working target is 100–200 KB. Below that, you risk visible compression artifacts on photographic cards; above it, you gain nothing a viewer can see while raising the odds of a slow or failed fetch.
| Platform | Max file size | Practical target |
|---|---|---|
| 8 MB | 100–200 KB | |
| X / Twitter (large) | 5 MB | 100–200 KB |
| — | 100–200 KB | |
| Discord | — | 100–200 KB |
| Slack (expanded) | — | 100–200 KB |
| 300 KB | under 200 KB |
How do I get an OG image under 200 KB?
Three levers, in order of impact: dimensions, format, and compression quality.
- Export at 1200×630, not larger. A 2400×1260 "retina" card is four times the pixels and roughly four times the bytes — for a preview the platform downscales to a small box anyway. The extra resolution is pure weight.
- Pick the format to match the art. JPEG for photographs and gradients; PNG for flat text-and-color designs that would show JPEG ringing around the type. WebP compresses smaller than both, but older scrapers still mishandle it — treat JPEG as the safe default.
- Compress at quality 80. A JPEG at quality 80 is visually indistinguishable from quality 100 at a fraction of the size. This single step usually takes a raw export from 1–2 MB down to ~150 KB.
Format and compression are easy to get right once. The discipline of doing it for every post, every time, is where most blogs slip — which is the whole argument for generating cards programmatically.
What if the file is small but still won't render?
A correctly sized file can still fail for reasons that have nothing to do with weight. The og:image value must be an absolute HTTPS URL — a relative path like /card.jpg is the single most common reason a preview comes back blank, regardless of file size. The origin also has to respond fast; a 150 KB image on a cold serverless function that takes four seconds to wake up can still miss the scraper's window.
Serve cards from a CDN or blob store, not a slow dynamic route, and reference them with a full https:// URL. When a preview still won't appear after that, work through why your link preview is broken, and confirm the underlying tags against what Open Graph actually is.
The one-line takeaway
Export at 1200×630, compress to a sub-200 KB JPEG, and serve it from an absolute HTTPS URL — that single card loads fast and renders on every platform, WhatsApp included. Producing one for every post automatically, already sized and compressed, is what Social Card Studio does so you never ship a 5 MB card by accident.
Frequently asked questions
What is the ideal OG image file size?
Aim for 100–200 KB. A well-compressed 1200×630 JPEG at quality ~80 lands around 150 KB — small enough to load before a scraper times out, large enough to look sharp. Facebook accepts up to 8 MB and most platforms up to 5 MB, but those are ceilings, not targets.
Why is my OG image not loading?
The most common causes are a file that is too large to fetch quickly, a relative (non-HTTPS) og:image URL, or a slow origin that times out during the scraper's short fetch window. Compress the image under ~200 KB and serve it from an absolute HTTPS URL on fast storage.
Does WhatsApp have a stricter file size limit?
Yes. WhatsApp wants the OG image under 300 KB or it may not render a preview at all. That single limit is the strongest argument for keeping every card well under 200 KB so one asset works everywhere.
Should I use JPEG, PNG, or WebP for an OG image?
Use JPEG for photographic cards and PNG for flat text-and-color designs. WebP compresses smaller than both but support across older scrapers is inconsistent, so JPEG remains the safest default for maximum compatibility.