Playback is solved. Gmail is not.
Gmail animates GIFs everywhere it runs: the web app, Android, iOS. No play button, no frozen poster frame, and that has held true for years (still does as of mid-2026). If your list skews Gmail, animation is simply available to you, which is more than classic desktop Outlook can say, since those older Word-engine builds show only the first frame.
That last part still matters even on a Gmail-heavy list, because no list is 100% anything. Compose your loop so frame one carries the whole message by itself. Do that and the stragglers on old Outlook get a decent static image while everyone in Gmail gets the show. With playback off the worry list, Gmail's actual quirks deserve your attention: a clipping rule almost everyone misreads, and a proxy that sits between you and every image you send.
The clip line is about markup, not your GIF
Gmail trims any message whose HTML weighs more than roughly 102KB and tucks the rest behind a "View entire message" link. Here's the part people get wrong: that budget is body markup, not image bytes. A 900KB GIF costs you nothing against the clip line. Three thousand lines of nested-table template soup will spend it all.
This is quietly the best argument for using a GIF in Gmail at all. One looping image can replace a stack of screenshots, headers, and explainer rows, which means less markup, which means more distance from the clip. And you want that distance, because anything below the cut is effectively invisible. Practical rules:
- Keep the template lean. Every wrapper div and inline style spends the same roughly 102KB budget your copy needs.
- Put the ask early. If a long message gets clipped, a call to action sitting below the line may as well not exist.
- Send yourself a test. The clip only shows in a real inbox, so proof it in Gmail before the list sees it.
Google's proxy sits between you and every open
Gmail doesn't load images from your server directly. It rewrites the URLs and serves everything through Google's image proxy, so a GIF in Gmail arrives from Google's cache, not your host. For readers this is good news: images display by default for most accounts, and they load fast. For you it means two things. First, relax: the proxy passes animation through untouched, so your loop plays exactly as exported. Second, don't get clever. Swapping the image on your server after send is unreliable once Google has cached it, so treat every GIF as final at the moment you hit send.
One habit survives the proxy era: alt text. Some corporate Gmail setups still block remote images, and an alt line that says what the loop shows beats an empty gray rectangle in every one of those inboxes.
The weight math for a Gmail inbox
Whatever Gmail technically tolerates, the practical limit is your reader's phone: plenty of opens happen on mobile data, and nobody's plan is your marketing budget. Hold to the standard email discipline of roughly 1MB or under, and go lighter whenever the loop survives it. Width-wise, most templates run roughly 600 to 640 pixels, so size to the slot instead of shipping camera-native resolution. Total email weight can also feed into deliverability, so a lean GIF is doing spam-folder insurance on the side.
Getting there is lever work, and the order matters. Trim the loop to 2 to 4 seconds first, since duration is the biggest multiplier. Then drop the frame rate to 10 to 15 fps, which email motion tolerates happily. Then cut the palette to 64 or 128 colors and let dithering smooth the gradients. The live size estimate updates as you pull each lever, so you can stop the moment the number is right instead of exporting on faith. If the file still fights you, the small-GIF playbook goes deeper on squeezing kilobytes without visible damage.
Build the whole thing without uploading a frame
Open What the GIF and drag in your video: mp4, mov, webm, whatever your browser can decode. Everything runs client-side in the tab, so the clip never touches a server, and there's no signup, no watermark, and no upload progress bar between you and the timeline. Trim is frame-accurate, with arrow keys stepping a single frame at a time, so the seam where the loop restarts can land precisely on a clean cut.
Need words on the loop? Add up to three text captions, either classic meme style (white, black outline, uppercase) or a clean style with a color picker, and give each one optional timing so a punchline can wait for its moment. Telling a longer story? Sequence up to three clips into one GIF with hard cuts; the output size follows the first clip and later clips scale to fill. When you're done, the GIF drops into Gmail's composer or your ESP like any other image. Assume it loops forever, and pick a cut you'd still smile at on the tenth lap.