You export a gorgeous 2400×3000 product hero at 4MB, attach it to an MMS blast, hit send, and check it on your own phone. It arrives soft, muddy, and about a third the resolution you designed. Nobody warned you. No error, no bounce. The carrier just quietly re-encoded your file down to something it was willing to move across its network, and your crisp studio shot became a JPEG that's been through a copier twice.
Full disclosure: I work for Ready, an SMS/MMS platform. So I have skin in the game when I tell you MMS is worth sending — but I'd rather you send it well than send it blurry, and I'd rather you not send it at all when the math doesn't pay. Let's get specific about what's actually happening between your send button and your customer's lock screen.
The ceiling nobody publishes: ~600KB, enforced by transcoding
There is no single official MMS file-size limit written into a spec you can cite. What exists in practice is a set of carrier-side ceilings that hover around 600KB for reliable delivery, with some networks tolerating up to ~1–1.2MB and some older or budget carriers choking below 500KB. The number floats. What doesn't float is the behavior: send something over the ceiling and the carrier transcodes it — re-compresses, downscales, sometimes strips it to a link — rather than rejecting it.
Transcoding is the silent killer here. A rejection you'd catch in your logs. Transcoding just degrades the file in transit and delivers the degraded version, so on your test phone (probably on a good carrier) it looks fine, and on a chunk of your list it looks like a fax.
The practical planning number: aim for ~500KB or under. Not 600KB with fingers crossed. 500KB gives you headroom for the carrier with the tightest ceiling on your list, and you almost never lose visible quality getting a product photo down there if you prep it right.
Why your 4MB export is 4MB (and how to fix it without losing crispness)
A raw phone-camera or Photoshop export is huge for reasons that have nothing to do with how it looks on a 6-inch screen:
- Resolution far beyond the display. Phones show MMS images at roughly 1080px wide, max. A 2400px-wide file carries more than double the pixels anyone will see.
- Uncompressed or near-lossless quality. A "quality 100" JPEG or a PNG stores detail invisible at phone scale.
- Color profiles and metadata riding along for the trip.
The fix is a repeatable recipe, not a guess:
- Resize to 1080px on the long edge. For a portrait product shot, 1080×1350 is plenty. You are not printing a billboard.
- Export as JPEG at quality 70–80. Below 70 you start seeing artifacts on gradients and skin tones; 70–80 is the sweet spot where a product photo is indistinguishable from the original on a phone but a fraction of the size.
- Strip metadata (most export tools have a checkbox).
- Check the file size. A 1080×1350 JPEG at quality 78 typically lands 150–350KB — comfortably under the ceiling, no transcoding.
Do this once per creative and MMS delivers exactly what you designed. Skip it and you're gambling with the carrier's compressor.
GIFs and PNGs: usually a trap
A short product GIF is charming and almost always blows the size ceiling — animation frames stack up fast. PNGs for photographic content are enormous for no benefit (PNG shines on flat graphics and transparency, not product photography). If you must animate, keep it to a couple of frames and a tiny palette, and expect to fight for every kilobyte. Most of the time, one clean JPEG outperforms a GIF that got transcoded into slideshow soup.
The part that actually decides whether MMS is worth it: the surcharge
Here's where ecommerce marketers get burned. An MMS costs meaningfully more than an SMS. On Ready, a text is billed per segment — $0.02 on the Standard tier plus the $0.0045 carrier pass-through, so $0.0245 all-in per segment. MMS carries a higher per-message cost because you're moving a media payload, not 160 characters. (The exact MMS rate is on the product page; the point of this section is the comparison, not the digit.)
So the real question isn't "can I send an image?" It's "does the image earn its premium over just linking to it?"
Run the math on a 10,000-contact promo:
| Approach | What sends | Cost basis | Rough all-in |
|---|---|---|---|
| SMS + short link to product page | 1 segment, text only | 10,000 × $0.0245 | ~$245 |
| SMS + short link, 2 segments (longer copy) | 2 segments | 10,000 × 2 × $0.0245 | ~$490 |
| MMS with inline product image | 1 MMS | 10,000 × MMS rate | noticeably higher |
The MMS column is always the priciest per recipient. That doesn't make it wrong — a hero image on a product drop, a coupon graphic, or a visual that is the offer can lift conversion enough to cover the gap. But a plain restock alert or a "20% off, code SAVE20, shop now" message does not need an image, and paying the MMS premium to attach a logo nobody asked for is lighting money on fire.
My rule: use MMS when the image is the offer, not the decoration. A new product's first photo, a lookbook shot, a visual promo code — yes. A text you could have written in one segment — no.
When the link beats the image
For most transactional and reminder-style texts, an SMS with a short link to a fast product page wins on both cost and clarity. The customer taps through to a real page with a buy button, real photos, and your checkout — which converts better than an image sitting in a message thread with nowhere to tap.
One catch: click tracking on that link can trip carrier filters if you set it up carelessly. If you're wrapping URLs to measure clicks, do it on a branded domain rather than a shared shortener — I wrote up the branded-domain setup that tracks without hurting delivery separately, because it's a whole deliverability topic on its own.
Deliverability isn't just file size — it's registration
Even a perfectly sized image won't land if your traffic is unregistered. Carriers filter unregistered A2P messaging aggressively, and MMS from an unregistered brand is a fast route to nowhere. You need A2P 10DLC registered — brand plus campaign — before you send volume, image or not.
Ready handles that registration in-app: brand (~$10/mo in carrier fees) plus campaign (~$20/mo), approval typically 1–3 days. If you're weighing your sender path, toll-free verification takes longer and caps throughput — here's why most senders should pick 10DLC instead. Get the registration right and your crisp 300KB JPEG has a clear road to the handset.
A pre-send checklist for MMS creative
Before any image blast goes out, run this:
- [ ] Under 500KB. Not "close." Under.
- [ ] 1080px long edge, JPEG, quality 70–80.
- [ ] Metadata stripped.
- [ ] Tested on at least two different carriers, not just your own phone.
- [ ] The image is the offer — you can't say the same thing in one SMS segment for a fifth the cost.
- [ ] Sender is 10DLC-registered and the campaign matches the content.
- [ ] Fallback plan if the image is stripped: does the accompanying text still make sense on its own?
That last one matters more than people think. Some recipients on some carriers will get your MMS as text-only or a link. If your message is "👀 [image]" with no words, those people get nothing. Always write text that stands alone.
The takeaway
MMS isn't blurry because MMS is bad. It's blurry because you handed the carrier a file too big to move, and the carrier compressed it for you — badly, silently, and only on part of your list. Prep to ~500KB, 1080px, JPEG at 70–80, and the image lands the way you designed it. Then decide, per campaign, whether the image earns its premium over a plain SMS and a good link.
If you want to sanity-check the cost side against your own list size, the per-segment and MMS pricing is all laid out transparently — carrier fees itemized, no markup games — on the Ready product page, and you can start with 2,500 free credits at signup to test how your actual creative lands before you spend a dollar. Send one blast to a small segment, check it on two carriers, and trust your eyes.