🗜️
Creator & Video/GIF Compressor

GIF Compressor

Shrink GIFs with two-pass palette optimization — fewer colors, lower fps, smaller width. 100% in-browser.

LOCAL · FFMPEG.WASMUp to 95% off3 presetsBefore/after100% local
Saved Presets· Auto-save on
▾
The CalculatorPage 1
🗜️
Drop a GIF here, or click to browse
.gif (max 50 MB)
🗜️

Drop a GIF, pick a preset, and shrink it with two-pass palette optimization

Data Source & Legal Disclaimer
Effective: 2026Last updated: 2026-09-07Update: Manual review
Sources: ffmpeg.wasm — Browser-based media processing

GIF compression runs entirely in your browser using ffmpeg.wasm. Your file is never uploaded to any server.

See all data sources & update policy →
How it worksPage 2

Where GIF size actually comes from — illustrated

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.

fps + width decimation → palettegen (N colors) → paletteuse re-map
Input GIFevery frame = fullpixels + 8-bit indexDecimate + scalefps 30→15: −50% frames640→480 px: −44% pxpalettegenpick N best colors64 / 128 / 256paletteusere-map frames→ smaller GIFsize ≈ width × height × fps × seconds — every lever multipliesfewer colors = shorter index = smaller bytes, at the cost of gradient banding

GIFs lack inter-frame compression, so fewer frames, fewer pixels, and fewer colors are the only real levers.

Slack-ready bug report GIF — Tom's capture

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.

  1. Diagnose the size:800 px × 30 fps × 6 s of full-pixel frames is the whole problem — GIF has no inter-frame compression, so nothing else in the file matters as much
  2. Pick Balanced:15 fps + 480 px + 128 colors: frame count halves (30→15) and pixel area drops to (480/800)² = 36% of the original
  3. Two-pass compress:palettegen studies the decimated frames and picks 128 colors; paletteuse re-maps every frame — the result card shows the real saving computed from the two file sizes
  4. Check readability:He zooms the preview to confirm the error text is still legible at 480 px; if it were not, the Light preset (640 px, 256 colors) is one click away
FAQ & detailsPage 3

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.

About this tool

What is this tool?

Compress GIFs up to 95% with two-pass palette optimization. In-browser, free.

Up to 95% off3 presetsBefore/after100% local

What Is the GIF Compressor?

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.

How to Compress a GIF

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.

Where GIF Bytes Actually Go

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.

Frequently Asked Questions

Why are GIFs so large in the first place?

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.

How does the compression actually work?

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.

Will compression make my GIF look bad?

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.

Why is my GIF so large even at small dimensions?

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.

Does GIF compression lose quality?

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.

Should I convert to WebP or MP4 instead of compressing the GIF?

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.

What do the presets actually change?

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.

Related tools

Joke of the Day
Oct 14

What do you call a nosy pepper?

Free core, no account

Keep the Free Edition Free

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 tier

100% of proceeds go towards hosting & building more free tools.