Blog

GIF vs APNG vs WebP vs PNG for email

Published August 18, 2026 · 6 min read

On the web, you rarely have to choose an image format anymore — the browser tells the server what it accepts, and tooling negotiates the rest. Email is not like that. An email image is fetched by an unpredictable mix of clients, proxies, and caches, none of which you control, so there is no per-client format negotiation — the sender picks a format up front and every recipient gets a response the server can honestly produce for it. That makes the choice worth five minutes of actual thought. Here is the honest version of it.

What each format is actually good at

GIF is the universally safe animated format. Every email client that shows images shows GIFs, and most animate them (some Outlook for Windows setups famously freeze them on the first frame — covered in depth in our Outlook post). Its limits are baked into the format: a frame can use at most 256 colors, and transparency is all-or-nothing — no soft alpha edges. Gradients and photographic content tend to band or dither visibly.

PNG is the universally safe static format: lossless, millions of colors, real alpha transparency. If the image does not need to move, PNG is the boring, correct answer.

APNG is animation grafted onto PNG — full color and full alpha, so animated content that would band as a GIF can look clean. It has one genuinely useful property for email: a client that does not understand the animation decodes the file as an ordinary PNG and shows a still image, so it degrades gracefully instead of breaking. But client support for the animation itself is narrower than GIF’s, and it varies — treat it as an enhancement for audiences you have tested, not a default.

WebP is the modern all-rounder: typically smaller files than GIF for comparable animated content, good color, alpha support. Its problem in email is the same as APNG’s, without the graceful-degradation story: support is narrower than GIF/PNG and varies by client. Where it is not supported, the image simply does not display.

The support reality, without a fake table

You may have seen compatibility matrices listing exact client versions for each format. We are deliberately not publishing one, because we could not stand behind it: email client behavior changes without notice, differs between platforms and rendering engines of the “same” client, and is further muddied by image proxies re-serving cached bytes. The durable facts are these:

  • GIF is safe everywhere images display; animation plays in most clients and freezes to the first frame in a few.
  • PNG is safe everywhere images display, full stop.
  • APNG and WebP work in fewer clients than GIF and PNG, and the exact set shifts — support varies, so test in the clients your audience actually uses.

“Test in your audience’s clients” is not a cop-out; it is the only method that produces answers you can act on. Your list’s client mix can be estimated from your own analytics — with the caveat that proxies mask user agents, so some traffic is always uncertain — and a five-address test matrix beats any published chart.

File size and quality, at a useful altitude

Animation multiplies size: an animated image is roughly a stack of frames, so a 60-frame countdown costs many times its static equivalent. GIF pays an additional quality tax on gradients (the 256-color limit) that flat, chart-like graphics — bars, digits, solid backgrounds — mostly avoid, which is why widget-style content survives GIF well while photographic content does not. WebP generally buys file-size savings at equal or better quality where it is supported. A static image is usually far smaller than its animated equivalent simply because it is one frame; among static options, PNG prioritizes universal support and lossless quality, while static WebP is often smaller where support is acceptable. If your design uses soft shadows or gradients and must animate, that is the case where APNG or WebP visibly beat GIF — and where you should test hardest before committing.

How DynaMail exposes the choice

DynaMail renders widgets server-side — fresh on each cache miss, within short type-specific cache windows — and the URL extension requests the output format. There is no user-agent sniffing, for the reasons above (in email, the requester is often a proxy, and a cached guess would be re-served to the wrong client). One honest nuance: the extension is a request, and the server keeps it compatible with the design. A countdown honors render.png as a static snapshot and the animated extensions as animation; for other widgets, an animated design requested with a static extension may come back in an animated format (and a static design requested as GIF may come back still). You change the format by changing one word:

One widget, four formats

https://img.dynamail.io/widgets/YOUR-WIDGET-ID/render.gif   → animated GIF
https://img.dynamail.io/widgets/YOUR-WIDGET-ID/render.apng  → animated PNG
https://img.dynamail.io/widgets/YOUR-WIDGET-ID/render.webp  → WebP
https://img.dynamail.io/widgets/YOUR-WIDGET-ID/render.png   → PNG (static; for countdowns, a single-frame snapshot)

Two behaviors worth knowing. For countdown timers, render.png is defined as a static single-frame snapshot — the time remaining at the moment of the request, as one still image. And for some other widget types, an animated design may be served in a compatible animated format even when a static extension is requested — the design’s animation, not just the extension, informs the encoding. When you need a guaranteed-static countdown, render.png is the explicit way to say so.

How to choose

  • Animated content for a broad or unknown audience: GIF. It is the only animated format you can ship without checking anything first.
  • Static content, always: PNG.
  • Animated content with gradients/soft edges, for an audience you have tested (for example, a heavily Apple-client list): consider APNG — its worst case is a clean still image.
  • WebP when you have verified support in your audience’s clients and the size savings matter; its worst case is no image at all, so verify, don’t hope.
  • When in doubt: GIF for motion, PNG for stills. It is the pair that never surprises you.

Frequently asked questions

Which image format is safest for email?

GIF for animation, PNG for static images. Both display in effectively every email client. APNG and WebP have narrower support — support varies by client, so test with the clients your audience actually uses before relying on either.

Do animated PNGs (APNG) work in email?

In some clients. APNG has a useful property: a client that does not support the animation decodes the file as an ordinary PNG and shows a still image, so it degrades gracefully rather than breaking. But if animation is the point, GIF reaches more of your audience.

Why does my .png countdown timer not animate?

Because that is what the extension asks for. In DynaMail, requesting render.png for a countdown returns a deliberately static single-frame snapshot of the time remaining at that moment. Request render.gif if you want the ticking animation.