Image ยท Oct 14, 2026 ยท 4 min read

How to Make a GIF Smaller (and Why Some Tools Make It Bigger)

Size and frame count do most of the work (77.0% smaller on our full-motion test, loop length unchanged), and storing only what changes is what keeps re-encoding from making a GIF bigger.

Why GIFs Are Big

A GIF is a stack of images, each limited to 256 colors and compressed with LZW, a method that shrinks long runs of repeated values. It has no motion prediction of the kind video formats use, so a few seconds of footage can weigh more than a video file of the same clip. Making a GIF smaller means storing fewer pixels, fewer colors, fewer frames, or less of each frame.

The Four Levers, Measured

We made two 4-second, 15 fps GIFs with FFmpeg’s palette filters, a full-motion test pattern and a mostly static “screen recording” with one small moving element, and ran them through our GIF Compressor in Chromium:

SettingFull motionScreen-capture style
Original413 KB52 KB
Same size, 128 colors349 KB15.5% smaller51 KB1.7% smaller
Same, without changed areas456 KB10.3% larger89 KB71.4% larger
75% size, 64 colors, every 2nd frame95 KB77.0% smaller22 KB57.4% smaller
50% size, 32 colors, every 2nd frame46 KB88.9% smaller10 KB79.7% smaller

The size and the frame count do most of the work: three-quarters of the width and every second frame took the full-motion GIF from 413 KB to 95 KB. Colors matter less on their own. And dropping frames does not have to speed the animation up: each kept frame can take the time of the frame it replaces, so every output above kept the original 4.00-second loop.

Store Only What Changes

The lever most people never see is inside the file. After the first frame, a GIF frame can be a small rectangle placed anywhere on the canvas, and pixels that should stay as they were can be marked transparent. Encoding only the changed area, with unchanged pixels inside it left transparent, gives LZW long runs to compress. Switching that off made our re-encoded GIFs 10.3% and 71.4% larger than the originals, while leaving it on saved 23.3% and 42.7% against the same settings. FFmpeg’s GIF encoder already does this by default (its offsetting and transdiff flags), which is why its output shrinks only a little until you change the size or frames.

Frames Are Not Always Full Pictures

Because frames can be partial, each one carries a disposal method in the GIF89a specification: leave it in place, clear its area to the background, or restore what was there before it. A tool that reads the stored frames without replaying those rules gets fragments. That matters when you turn a GIF into a sprite sheet for a game or a CSS animation: our GIF to Sprite Sheet converter replays every frame the way a browser plays it, and on test GIFs using all three disposal methods its sheets matched Pillow’s fully composited frames exactly (0 pixels differed).

Timing Has a Resolution of 10 ms

GIF frame delays are stored in hundredths of a second, so 33 ms (30 fps) cannot be stored exactly; it becomes 30 or 40 ms. When you build a GIF from frames, pick delays that are multiples of 10 ms.

When Not to Use a GIF

For anything long or photographic, a short MP4 or WebM video is usually far smaller. Keep GIFs for short loops, reactions and places that accept only images.

Compress a GIF

Resize, fewer colors, drop frames at the same speed, store only changed areas.

Open GIF Compressor โ†’

Frequently Asked Questions

What is the best way to reduce a GIF's file size?
Reduce its dimensions and frame count first, then colors. In our test, 75% size with every second frame took a full-motion GIF from 413 KB to 95 KB (77.0% smaller) with the loop length unchanged.
Does removing frames make a GIF play faster?
Only if the delays are left alone. If each remaining frame takes the time of the frames removed, the loop length stays the same; our compressor does this automatically.
Why did re-saving my GIF make it bigger?
Usually because the new file stores every frame in full. Encoders that store only the changed area of each frame, as FFmpeg's does by default, avoid that; with changed-area encoding switched off, our re-encoded test GIFs came out larger than the originals.
Why are frame delays rounded?
The GIF format stores delays in hundredths of a second, so any delay is rounded to the nearest 10 ms.
Why do some GIF frame extractors give broken frames?
Many GIF frames store only the changed rectangle plus a disposal rule. Extracting them without replaying the rules gives fragments; a correct tool composites each frame the way a browser plays the animation.

Published Oct 14, 2026 by Derek Giordano

๐Ÿ“š References & Further Reading
Browse all image tools โ†’
โšกGIF Compressorโ†’โšกGIF to Sprite Sheetโ†’
UtilityComplete Guide to Barcode Types & When to Use Eachโ†’UtilityHow to Design Professional Business Cards for Freeโ†’GuideHow Fancy Text Works (And When Not to Use It)โ†’DeveloperHow to Convert Between Binary, Octal, Decimal, and Hexโ†’DeveloperHow to Create a Markdown Table (Syntax & Generator)โ†’ColorHow to Generate a Color Palette from Scratchโ†’ColorHow to Generate Shades and Tints of Any Colorโ†’ImageHow to Generate a Favicon for Your Websiteโ†’