Shrink GIFs with two-pass palette optimization — fewer colors, lower fps, smaller width. 100% in-browser.
Drop a GIF, pick a preset, and shrink it with two-pass palette optimization
GIF compression runs entirely in your browser using ffmpeg.wasm. Your file is never uploaded to any server.
A GIF stores every frame as palette indices for full pixels — there is no inter-frame video compression. Size therefore scales with width × height × fps × seconds, capped by the palette: a 256-color palette spends 8 bits per pixel, while 64 colors needs only 6. This tool attacks all three levers at once in two passes: pass one builds an optimal palette (palettegen) from the downsampled, decimated frames; pass two re-maps every frame to it (paletteuse). Dropping 30 fps screen-capture footage to 15 fps alone halves the frame count; adding 320 px width and 64 colors typically cuts 80–95% off.
GIFs lack inter-frame compression, so fewer frames, fewer pixels, and fewer colors are the only real levers.
Tom captures a 6-second UI bug at 30 fps, 800 px wide, and the GIF comes out at 9.2 MB — too big for Slack's inline preview.
Compress GIFs up to 95% with two-pass palette optimization. Everything runs locally; nothing is uploaded.
FreeToolHub GIF Compressor is a free browser-based tool — compress GIFs up to 95% with two-pass palette optimization. No signup, no upload; everything runs locally in your browser.
Compress GIFs up to 95% with two-pass palette optimization. In-browser, free.
The GIF Compressor shrinks animated GIFs with three presets that combine frame-rate decimation (10/15/20 fps), width scaling (320/480/640 px), and palette reduction (64/128/256 colors) using ffmpeg's two-pass palettegen + paletteuse pipeline. It shows the real before/after sizes and the computed saving. All local via ffmpeg.wasm.
Drop your GIF, pick a preset (Aggressive for chat, Balanced for most uses, Light when readability matters), and click Compress. Compare the two previews, then download — the savings percentage is computed from the actual file sizes.
GIF size is dominated by frame count, not frame size: every frame stores either full image data or a diff against the previous one, so a 3-second animation at 15 fps carries 45 chances to spend kilobytes. Cutting frame rate, shrinking dimensions, and trimming duration each attack the problem from a different side - frame rate is usually the biggest lever because halving fps removes half the frames outright. The compressor applies presets that balance all three so you do not have to guess which dial matters for your particular animation.
GIF stores every frame as full pixels with palette indices — there is no inter-frame video compression. Size scales with width × height × fps × seconds, so a 6-second 30 fps 800 px capture can easily reach 9 MB.
Two passes with ffmpeg: palettegen studies the decimated frames and picks the best 64/128/256 colors, then paletteuse re-maps every frame to that palette. Before that, frames are decimated to a lower fps and scaled to a smaller width — each lever multiplies the savings.
Lower fps can make motion less smooth and fewer colors can band gradients, but text-heavy and flat-color UI captures tolerate aggressive settings extremely well. Compare the before/after previews and step up to the Light preset if readability suffers.
Because GIFs store up to 30-50 frames where a static image stores one, and each frame costs bytes even when it barely differs from the last. A 480px-wide animation can easily outweigh a 1920px JPEG photo. Frame rate is the lever that matters most: dropping from 15 fps to 10 fps removes a third of the frames - and a third of the size - with minimal visible difference for most screen content.
The GIF format itself is lossless (LZW), but it caps every frame at 256 colors from one shared palette - so photographic content was already degraded the moment it became a GIF. Compression here reduces frames and dimensions, which changes smoothness rather than color. Text and flat graphics survive frame reduction perfectly; gradients and video clips suffer first.
If you control where the animation is displayed, yes - animated WebP typically runs 50-70% smaller than an equivalent GIF, and MP4 is smaller still with full color. But GIF remains the universal fallback: email clients, older chat apps, and some CMS embeds render it when nothing else. Compress the GIF when compatibility is the requirement; re-encode to WebP when bandwidth is.
The balanced preset targets roughly half the original size by trimming redundant frames and modestly reducing dimensions; the aggressive preset pushes further with heavier frame skipping and downscaling; the quality preset prioritizes smoothness and only removes frames that are near-duplicates. Run the same GIF through two presets and compare the output side by side - the preview shows exactly what each choice does to motion before you commit.
What do you call a nosy pepper?
No signups, no data sold. Every tool is free to use — the free tier allows 5 downloads or saves per day, and the optional Pro plan ($7/mo, $59/yr) adds unlimited downloads, batch processing, white-label exports and an ad-free experience.
☕Support me on Ko-fi— support the free tier100% of proceeds go towards hosting & building more free tools.