GIF Compressor

Shrink animated GIFs to an exact target size — 100% in your browser. No uploads, no accounts, no limits. Frames, looping, and transparency preserved.

The only free compressor with a target-size mode: Discord 8 MB, email 10 MB, or any custom size — and it tells you honestly when a target can’t be reached.

Drop animated GIFs here

or — multiple files welcome, paste works too

Up to 50 MB per file · up to 20 files per batch · nothing ever uploads

Compression settings
Mode
Target size finds the gentlest setting that fits. Choose quality runs one pass at your settings.
Target size
O2/O3 replace unchanged pixels between frames with transparency. O1 can make an already-optimised GIF larger — the tool returns your original instead.

Privacy proof — verify it yourself

This page compresses your GIFs entirely on your device, using gifsicle compiled to WebAssembly. All JavaScript and the engine are bundled locally — no CDNs, no webfonts. The only third-party requests are the site's own analytics (Google Analytics and a Cloudflare beacon), which load when the page opens and never see your files.

Network requests during processing: 0 (zero — as it should be)

  1. Press F12 to open developer tools, then open the Network tab.
  2. Drop a GIF above and let it compress.
  3. Watch the Network tab: zero requests while it compresses. The counter above shows the same number live. (The page's own analytics load once when the page opens — before you start — and never touch your files.)
  4. Bonus: turn your internet off after the page loads — compression still works.

How to compress a GIF without uploading it

  1. Drop your GIFs above (or paste them). You can add up to 20 at once.
  2. Pick a target size — Discord 8 MB, email 10 MB, or a custom size — or switch to Choose quality and set the lossy level and colours yourself.
  3. Download each GIF, or grab everything as one ZIP. Your originals are untouched and nothing leaves your device. Each result shows an animated preview of the real output, so you can check the quality before downloading.

Why compress a GIF at all?

Discord, email, and forums all cap attachments — a screen recording exported as a GIF easily lands at 20–50 MB. Most GIFs also carry wasted bytes: full frames where only a corner moved, or 256 colours where 64 would look identical. gifsicle’s frame optimisation and lossy mode strip that waste while keeping the animation, the loop, and the transparency intact.

Honest limitations

Frequently asked questions

How can I compress a GIF without uploading it anywhere?

Use a tool that processes files locally in your browser. This compressor loads your GIF into your device's memory and runs gifsicle — the standard GIF optimiser — compiled to WebAssembly, entirely on your machine. Your GIF files are never sent to any server; the only network requests on this page are the site's own analytics (Google Analytics and a Cloudflare beacon), which load when the page opens and never see your files. You can verify it by watching the Network tab in your browser's developer tools while a file compresses — the live counter on this page shows zero requests during processing. The page keeps working with your internet disconnected after it loads.

How do I compress a GIF to a specific size, like 8 MB for Discord?

Pick the Discord 8 MB preset (or email 10 MB, or a custom target). The compressor runs a gentle optimisation pass first, then binary-searches lossy levels and colour counts until the output fits under your target — keeping the best quality that still fits. If even the strongest setting cannot reach the target, it tells you so plainly and gives you the smallest file it could make.

Does compressing a GIF lose frames or stop the animation?

The animation itself is never damaged. Every output is verified before it is offered for download: the total duration must match the input exactly, and the loop setting is preserved. One exception is disclosed, not hidden: if a GIF contains identical consecutive frames (for example a static image saved as 20 frames), the optimiser merges them into one frame with the same total duration — the animation looks and lasts exactly the same, and the card tells you how many frames were merged. If compression would change the timing, the file is refused with a clear message. Transparency is checked the same way.

What is lossy GIF compression, and how much quality do I lose?

Lossy GIF compression lets gifsicle change some pixels to values that compress better, trading a little visual fidelity for a much smaller file. On a typical noisy 640×360 animated GIF, lossy 80 with 128 colours shrinks the file by about 23%, and lossy 120 with 64 colours by about 38%. Target-size mode always picks the gentlest setting that still hits your target.

Why is my GIF still bigger than the target size?

Some GIFs cannot shrink below a certain size without resizing them: a long, large, noisy animation has a hard floor set by its pixel count and frame count. This tool reports that honestly and returns the smallest file it could produce. Resizing is the only remaining lever, and this tool deliberately does not resize your GIFs without asking.

Can I compress a GIF that is already optimised?

Yes, and the tool will tell you the truth about the result. If compression cannot make the file smaller, it returns your original file unchanged with an “already optimal” note — it never hands back a larger file and calls it compressed.

Is there a file size or daily limit?

There is no daily limit and no account. A 50 MB safety cap applies per file and 20 files per batch, because the optimiser holds the whole GIF decoded in memory. A 50-megapixel-per-frame and 200-megapixel-total cap also applies for the same reason.

How do I verify my files really never upload?

Open your browser's developer tools (F12), go to the Network tab, then compress a file. You will see zero network requests during processing — the live counter on this page shows the same number. All JavaScript and the WebAssembly engine are vendored locally; there are no CDNs or webfonts. The only third-party requests are the site's own analytics (Google Analytics and a Cloudflare beacon), which load when the page opens — they never see your files.