An animated GIF will not get you filtered. A 4MB animated GIF, an email that is nothing but images, or a message whose entire offer appears in frame twelve will. Two rules cover almost all of it: put the message in frame one, because Outlook on Windows shows only that frame, and keep the file small enough that the email loads instantly on a phone.
Why GIFs still get used
They show a product in motion, a before-and-after, a few UI steps, or a number counting up — without a video player, a plug-in or a click. Support is near-universal, the markup is a plain <img>, and nothing has to be negotiated with the mail client.
How GIFs affect deliverability
The format itself carries no penalty. The real mechanisms:
- Message weight. A heavy GIF slows rendering, costs mobile data and increases the chance of a timeout on image fetch. Gmail also clips messages over roughly 102KB of *HTML* — that limit is markup, not images, but a GIF-driven template usually carries bloated markup too, and clipping can hide your unsubscribe link.
- Image-to-text ratio. An email that is one large animation and twelve words of text sits in the same scoring band as image-only spam. Keep substantive live text in the message.
- Image blocking. Outlook on Windows blocks remote images by default, so for a meaningful share of readers your GIF is alt text and empty space. If the GIF is the only content, the email is empty.
- Hosting. Serving a large GIF from a free image host or a shortener introduces an unknown link domain. Serve from a subdomain you control, with its own CNAME.
- Nothing else. There is no filter rule that says "contains GIF". If your GIF email went to spam, look at authentication, reputation and list quality first.
Client support
| Client | Animation |
|---|---|
| Gmail (web, iOS, Android) | Plays |
| Apple Mail (macOS, iOS) | Plays |
| Outlook.com / Outlook web | Plays |
| Outlook for Mac | Plays |
| Outlook for Windows (desktop) | First frame only |
| Windows 10/11 Mail | Plays |
| Yahoo Mail, Thunderbird | Plays |
The Outlook desktop behaviour comes from its Word-based rendering engine. There is no CSS or markup workaround, and that is the constraint your design has to be built around rather than patched after.
Designing for frame one
- Put the product, the offer and any readable text in the first frame.
- Never animate text in and out — a frame-one reader sees the "out" state.
- Do not put the only call to action inside the animation. Use a real text button beneath it.
- Start on the state that makes sense as a still: the finished before-and-after, the full discount, the product in view.
- Test by exporting frame one as a PNG and asking whether the email still works with only that image.
Keeping the file size down
Aim for under 1MB, and prefer under 600KB. In order of effectiveness:
- Shorten the clip. Two or three seconds is plenty. Duration is the biggest multiplier.
- Crop, do not scale. Animate a small region of a larger design rather than the whole canvas.
- Cut the frame rate to 10–12fps. Motion still reads smoothly at that rate.
- Reduce the colour palette to 64 or 128 colours. GIF is indexed-colour; this is where the savings are.
- Limit loops to two or three rather than infinite —
gifsicle --loopcount=2sets it. This also helps readers who find looping motion uncomfortable. - Avoid gradients and photographic backgrounds, which dither badly and inflate the file. Flat colour compresses well.
gifsicle --optimize=3 --colors 128 --lossy=40 --loopcount=2 in.gif -o out.gif
If the content is photographic and you cannot get under 1MB, it probably should not be a GIF. Use a static JPEG thumbnail linked to a hosted video page instead.
The Outlook fallback, handled properly
There is no conditional way to swap a static image for the GIF on Outlook desktop, so the fallback is the design:
- Frame one *is* the fallback. Make it complete.
- Give the
<img>alt text that reads as a sentence:alt="Reputation score climbing from 42 to 88 over four weeks". - Set an explicit
widthattribute andheight:auto, so blocked-image placeholders do not collapse the layout. - Add
style="display:block;border:0;max-width:100%;"to avoid gaps and borders around linked images.
<a href="https://example.com/report">
<img src="https://img.example.com/score-climb.gif" width="600"
alt="Reputation score climbing from 42 to 88 over four weeks"
style="display:block;border:0;max-width:100%;height:auto;" />
</a>Accessibility
- Do not flash. WCAG 2.3.1 sets a limit of three flashes in any one-second period; flashing content can trigger seizures. Nothing in a marketing email needs strobing.
- Avoid infinite loops.
prefers-reduced-motionis not available in email, so you cannot respect a reader's setting — cap the loop count instead and keep the final frame meaningful. - Keep motion out of the reading path. Animation beside text the reader is trying to parse makes the text harder to read for many people.
- Never put essential information only in motion. The same rule as frame one, for a different reason.
- Contrast applies to every frame, not just the first.
Mistakes that cost you
- The offer appears in frame ten, so Outlook desktop readers see a teaser and nothing else.
- A multi-megabyte GIF exported at default settings.
- An email that is a single GIF with no live text, no readable alt text and no text link.
- Animated text that leaves the frame.
- Hosting the GIF on a free image host with unknown reputation.
- Infinite rapid looping, which is both uncomfortable and distracting.
- Testing in Gmail only, then being surprised by Outlook.
Pre-send checklist
- Frame one works as a standalone image and carries the message
- File under 1MB, ideally under 600KB
- Loop count capped, no flashing faster than three times per second
- Alt text written as a descriptive sentence
- Explicit
width,display:block,height:auto - Live text and a real text button outside the image
- HTML under about 100KB to avoid Gmail clipping
- Rendered with images blocked, in Outlook on Windows, and on a phone over mobile data
MailPilot covers whether the email arrived at all: warm-up over OAuth or SMTP/IMAP, SPF, DKIM and DMARC verification, daily per-mailbox reputation, and real inbox placement per provider from a seed-inbox network — so a heavy template that starts landing in spam shows up as a measurement rather than a hunch.
Ready to reach the inbox every time?
Automated email warmup across real peer mailboxes. Live inbox placement monitoring. Free 7-day trial - no credit card required.
Start free trial