Make animated GIFs smaller without losing the animation
Animated GIFs are everywhere — reaction clips, product demos, stickers, banners — and they are often far bigger than they need to be. This GIF compressor decodes every frame of your GIF and rebuilds it with the techniques dedicated GIF optimisers use: one shared palette, transparent pixels wherever nothing changed, optional lossy matching, fewer frames and a smaller size.
You see the original and the optimised animation playing side by side, with the frame count, dimensions, duration and file size of both, so you can trade quality for size with confidence. The GIF is processed entirely in your browser; nothing is uploaded.
How to use the GIF Compressor
- Drop a GIF on the upload area, click it to choose one, or paste it with Ctrl+V.
- Pick the number of Colours — 128 is a good start; simple graphics often look fine at 32 or 64.
- Raise the Lossy level to re-use pixels that barely changed between frames; this usually saves the most.
- If it is still too big, drop frames or reduce the Size. Turn on dithering if gradients show bands.
- Compare both animations, then press Download GIF.
GIF Compressor features
Frame differencing
Pixels that are the same as on the previous frame become transparent, so each frame only stores what moved — exactly the kind of data GIF’s LZW compression packs tightly.
Lossy optimisation
The Lossy slider treats nearly identical pixels as unchanged, removing the shimmer of noise that bloats GIFs made from video.
One shared palette
A single global palette is built from all frames, avoiding up to 768 bytes of local colour table per frame and keeping colours stable.
Frame dropping with timing kept
Drop every 2nd, 3rd or 4th frame; the removed frames’ delays are added to the frames before them, so the animation runs at the same speed.
Transparency and looping kept
Transparent GIFs stay transparent, and the original loop setting is copied into the new file.
Built-in decoder
Interlaced GIFs, local palettes and every disposal method are decoded in the page itself; encoding uses the open-source gifenc library (MIT licence).
Why animated GIFs get so large
GIF dates from 1987. Each frame is a picture of up to 256 colours compressed with LZW, and unlike video formats there is no motion prediction. Many apps that export GIFs write every frame as a complete image with its own palette, even when only a small part moves. The result can be several megabytes for a few seconds of animation.
Most of the savings come from not storing the same pixels again. When a pixel is unchanged it is written as transparent, so the previous frame shows through; long runs of transparent pixels cost very little. Lossy matching extends this to pixels that changed by an amount you would not notice, which matters for GIFs converted from video, where compression noise makes almost every pixel differ slightly.
Which setting to change first
| Goal | Setting | Typical effect |
|---|---|---|
| Biggest saving, little visible change | Lossy 20–40 | Large savings on GIFs made from video |
| Simple graphics, logos, text | Colours 32–64 | Smaller files with no visible loss |
| Hard size limit for chat or email | Size 50% | Roughly a quarter of the pixels |
| Long or very smooth animations | Drop every 2nd frame | About half the frames, same duration |
| Banding in skies or gradients | Ordered dithering | Smoother look, slightly larger file |
Frame timing and browser quirks
GIF frame delays are stored in hundredths of a second. Browsers treat a delay of 0 or 1 hundredth as a tenth of a second, so very “fast” GIFs actually play at 10 frames per second; the tool uses the same rule when it merges delays, so the speed you see is the speed you get. Ordered dithering is used instead of error diffusion because its pattern stays fixed from frame to frame, which avoids flicker and keeps frame differencing effective.
If the optimised GIF would be larger than the original — which can happen with GIFs that are already well optimised — the original is kept. Need a GIF in the first place? Make one with Video to GIF. For a still image, the WebP compressor or PNG compressor will give a much smaller file.
GIF Compressor FAQ
How do I reduce the size of a GIF without losing quality?
Choose 256 colours and set Lossy to 0. The GIF compressor then only removes repeated pixels and duplicate palettes; a GIF that uses no more than 255 colours in total comes out pixel-identical.
How can I make a GIF small enough for a chat app or email?
Combine settings: set Size to 50%, raise Lossy to 40–60 and drop every 2nd frame. Check the optimised size in the stats and adjust until it fits the limit.
Why is my optimised GIF not smaller?
The GIF was probably already optimised. In that case the original is kept; reduce the size, drop frames or choose fewer colours to save more.
Does the GIF compressor keep transparency?
Yes. Transparent pixels stay transparent in every frame, and the tool clears the canvas between frames whenever a moving object leaves a transparent area behind.
Will my GIF still loop?
Yes. The loop setting of the original — forever, a set number of times or once — is copied into the new GIF.
Is my GIF uploaded to a server?
No. Decoding and encoding run in your browser, so the file never leaves your device.