Compress GIF
Make a GIF smaller by dropping frames, cutting the palette and scaling down — the three levers that actually work. Set a size limit and the page keeps trying until it fits, in your browser.
- No upload
- Batch files at once
- Free, no sign-up
100% Local in Browser — No Server Upload, Instant & Private
Drop your files here, or click to choose
GIF, WebP, PNG or JPG up to 25MB. An animated GIF is compressed as an animation: frames and delays are preserved unless you ask for frames to be dropped.
Presets
How it works
- 1
Drop the GIF and set a target
Type a limit in MB — 9.5 fits Discord's free 10MB cap — or leave it empty and just take the smallest sensible result. Nothing is uploaded; the file is read from disk into the tab.
- 2
Choose the lever
Dropping every second frame halves the frame count and doubles each remaining delay, so the clip plays at the same speed. Cutting to 64 colours often removes a third of the bytes. Scaling to half the pixels removes three quarters of them.
- 3
Check and download
The result row shows frames, colours and final size, so you can see which lever did the work. If it still does not fit, the page says so instead of handing you a file over the limit.
More tools
- Merge ImagesPut two or more pictures into one image: stacked, side by side, or in a grid. Sizes are matched automatically so nothing is letterboxed, and the files never leave your browser.
- GIF ResizerResize a GIF — animated or still — to an exact size or half its pixels. Every frame is scaled, every frame keeps its own delay, and the file never leaves your browser.
- WebP to GIFConvert WebP to GIF, including animated WebP: every frame and every delay is carried over, so the result plays exactly like the original. Runs in your browser, no upload.
What it won't do
- Compressing is re-encoding: a GIF that is already optimised can come out slightly larger. The size is shown before you download, so compare rather than assume.
- Dropping frames changes the motion — a fast animation starts to stutter. The delay is doubled to keep the running time, but not the smoothness.
- Colour reduction uses one palette for the whole file: a clip that changes scene sharply can show banding in gradients.
- Everything runs in your tab, so a very large animation (hundreds of frames, full resolution) is bounded by your device's memory.
Questions
How do I get a GIF under Discord's 10MB limit?
Pick the Discord 10MB Limit preset and press Compress. The page retries with fewer colours and then a smaller canvas until the file fits, and tells you the final size. If it cannot get there, the message says which lever to pull further instead of returning a file that Discord will reject.
How do I make a GIF under 256KB for an emoji?
Discord's animated emoji cap is 256KB (and 128×128 is the size it renders). Use the Discord emoji preset — 128×128, 64 colours — and drop every second frame if it still does not fit. Emoji are small and flat, so 64 colours usually looks identical to the original.
Does dropping every second frame change the speed?
No. Each kept frame inherits the delays of the frames it replaced, so the total running time is unchanged and the clip plays at the same speed — it just moves in bigger steps. That is why this lever comes before shrinking the image.
Is it better to reduce colours or resolution?
Depends on the picture. Flat artwork, screencasts and emoji survive a 64-colour palette with almost no visible change, so cut colours first. Photographic or gradient-heavy clips band quickly, and scaling to half size is the better trade.
Why is my compressed GIF bigger than the original?
The source was probably already re-encoded by another tool, and rebuilding the palette from scratch costs bytes. Try a lower colour count, or compress the original rather than an already-compressed copy.
Are my files uploaded?
No. There is no upload step: decoding, re-encoding and the size check all happen in the browser. That is why the page can tell you immediately whether a target size is reachable.