How offline GIF compression works
This page uses gif.js, an open-source GIF encoder that runs entirely in your browser via Web Workers. The compressor decodes your GIF's frames, optionally skips some, then re-encodes the result at the quality you choose. No data leaves your device.
Two levers: quality and frame-skip
Quality (1-30): lower numbers = smaller file = more visual artifacts. Higher numbers = larger file = closer to original. 1 is the most aggressive, 30 is the highest. Default is 20.
Frame-skip (1-5): 1 = keep every frame (no skipping). 2 = keep every 2nd frame. 3 = keep every 3rd frame. Higher numbers give smaller files but choppier animation. Default is 1.
The combination of these two gives you full control. For most use cases, quality 15-20 with frame-skip 1-2 gives the best result.
Why this is the most private way to compress a GIF
Most "free GIF compressor" websites work by uploading your GIF to their server, processing it there, and sending the compressed version back. This works for memes and reactions, but is a problem if your GIF contains:
- Error messages or screenshots from private work
- Personal moments captured as GIFs
- Internal communications you don't want on a third-party server
- Anything you wouldn't share via email with a stranger
This tool runs entirely in your browser. The GIF never leaves your device. There is no upload endpoint. The architecture itself makes leakage impossible — not because we promise to be careful, but because there is nothing to be careful with.
How to verify it's really offline
You don't have to trust us. Verify it yourself:
- Open your browser's DevTools (right-click → Inspect, or F12).
- Switch to the Network tab and clear it.
- Drop a GIF onto the compressor above.
- Watch the Network tab — it stays empty during compression. No XHR, no fetch, no WebSocket. Nothing.
Alternatively: load this page, then turn off your wifi. The compressor still works because everything it needs is already in your browser. If it needed a server, it would stop working when you go offline.
When to use GIF vs WebP for animations
GIFs remain the universal standard for animations across the web — they work everywhere, including in email, on social media, and in chat apps. WebP animations are 25-35% smaller but are not universally supported (Safari added support in 2024, but some platforms still don't render them).
- Use GIF for Discord, Slack, Twitter, email, older browsers, anywhere compatibility matters.
- Use WebP for your own website (faster page loads), modern apps, and any context where you control the rendering.
For converting animations to WebP, our Image to WebP tool handles the conversion.
Limits and tips
- Animated GIFs are limited by browser decoding: the engine extracts the first frame as a static representation. For full animation control, the tool uses gif.js to re-encode the original frames.
- Very large GIFs (50+ MB, 1000+ frames) may take 30+ seconds to process. The progress bar shows real-time status.
- The compressed GIF preserves the original loop count and per-frame timing.