How do animated GIFs affect performance?
Still have a question, spotted an error, or have a better explanation or a source we should cite?
You've built a GIF that looks perfect at full resolution and 60 frames per second, and it comes back from export at 3.2MB. That file is going to cause problems before a single subscriber opens it: it'll slow your email's load time on mobile, it counts against your total message weight, and in Outlook 2007 through 2019 on Windows, none of the animation will play anyway.
File size is the primary performance variable, and it's driven by four factors: dimensions, frame count, frame rate, and color palette. A 600px-wide GIF needs to load all 600 pixels per frame, and if you've got 30 frames at 24 colors, the math compounds fast. The most effective compression lever is frame reduction: cutting from 30 frames to 10 or 15 and adjusting the delay timing to maintain the feel can cut file size by 50 percent or more. Dropping the color palette to 64 colors, or 32 for simpler animations, is the second lever and it's often invisible to the human eye. Target a final file size under 500KB, ideally under 200KB for anything going to a mobile-heavy list. The image optimization guide covers techniques that apply to GIFs and static images both.
Client rendering is just as important as file size. Gmail and Apple Mail animate GIFs without issues, and most mobile clients do too, but Outlook 2007 through 2019 on Windows shows only the first frame. That's not a rendering bug you can fix with code; it's how those versions handle the format. The practical consequence is that your first frame has to work as a complete standalone image. Don't start with a blank lead-in frame, don't bury the key message in frame 5, and don't rely on the animation to finish a sentence started in static text. Check the email client support breakdown for which clients animate and which don't before you finalize your design.
There's also a battery and data cost on mobile devices. A continuously looping GIF that never stops playing drains battery faster than a static image and keeps pulling data on each loop if the client doesn't cache properly. Two or three loops is a reasonable default: enough for the animation to land without becoming a drain. If the motion isn't adding meaning and is purely decorative, a static image is almost always the better choice from a performance standpoint. For cases where you need motion but can't get the GIF small enough, linking to a video on a landing page is the cleaner solution.
Before your next send, run your GIF through a compression tool like Ezgif and aim for the 200KB target. Then look at your first frame in isolation to confirm it communicates the point without the animation. Both checks take under five minutes and catch the issues that would otherwise show up in a subscriber's inbox.
Contributors
Who worked on this answer
Every name links to their profile. Every company links to their site. Real people, real accountability.