GIF is an old format: 256 colors at most per frame and simple lossless compression. Animated GIFs from screen recordings and meme makers routinely reach 10–30 MB, which is too much for chat apps, email and most CMS uploads.
This tool re-packs GIF frames in the browser. The quality slider controls how many colors are kept, and the max width shrinks every frame. Halving the width cuts the file to roughly a quarter, which is usually the biggest win.
How to compress a GIF
Drop the GIF
Animated and still GIFs both work. The output is already set to GIF on this page so the animation is kept.
Set a max width
Try 480 pixels for chat and 640 for a blog. This is where most of the saving comes from.
Lower quality for fewer colors
Screen recordings of apps survive with fewer colors. Gradients and photos band quickly, so check the comparison.
Why GIFs get so big
Every frame is a picture
A 5-second clip at 20 frames per second is 100 images. Fewer pixels per frame shrinks all of them at once.
Noise defeats compression
GIF compresses repeated pixels well. Video grain and gradients change every frame, so they compress badly.
Consider a video instead
If you control the page, a short MP4 or WebM is usually far smaller than the same GIF and looks better. GIF still makes sense where video is not allowed: some chat apps, email signatures and older forums.
GIF size levers
| Change | Typical effect |
|---|---|
| Halve the width | About 70–75% smaller |
| Fewer colors | 10–40% smaller |
| Shorter clip | Proportionally smaller |
GIF compression questions
Will my animated GIF still move?
Yes, as long as the output stays GIF. Converting to JPEG or PNG keeps only the first frame.
How do I get a GIF under 10 MB?
Set a max width of 480 pixels and lower the quality a little. Most screen-recording GIFs drop below 10 MB with that alone.
Why does my GIF look grainy after compressing?
Fewer colors means dithering, which looks like grain. Raise the quality slider to keep more colors, and reduce the width instead.
Is the GIF uploaded?
No. Frames are decoded and re-encoded in this browser tab.