← Blog/Best Practices

Animated GIFs in email without wrecking deliverability

October 15, 2026·6 min read·By MailPilot

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

ClientAnimation
Gmail (web, iOS, Android)Plays
Apple Mail (macOS, iOS)Plays
Outlook.com / Outlook webPlays
Outlook for MacPlays
Outlook for Windows (desktop)First frame only
Windows 10/11 MailPlays
Yahoo Mail, ThunderbirdPlays

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

  1. Put the product, the offer and any readable text in the first frame.
  2. Never animate text in and out — a frame-one reader sees the "out" state.
  3. Do not put the only call to action inside the animation. Use a real text button beneath it.
  4. Start on the state that makes sense as a still: the finished before-and-after, the full discount, the product in view.
  5. 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=2 sets 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 width attribute and height: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-motion is 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

  1. The offer appears in frame ten, so Outlook desktop readers see a teaser and nothing else.
  2. A multi-megabyte GIF exported at default settings.
  3. An email that is a single GIF with no live text, no readable alt text and no text link.
  4. Animated text that leaves the frame.
  5. Hosting the GIF on a free image host with unknown reputation.
  6. Infinite rapid looping, which is both uncomfortable and distracting.
  7. 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.

MailPilot

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
Reach the Inbox, Every Time
Connect unlimited inboxes for warmup. Free 7-day trial, no credit card.
Try for Free
WORKS WITH
OZOHO
inbox placement99.2%
free trial7-day
companies trust us340+

Start for free - no credit card required.

Get started freeBook a demo