GIF Compressor
Drop in one GIF or a whole folder. Pick a quality, or tell it where the GIF is going (a Discord emoji, a Slack upload, an email) and it finds the mildest settings that fit, then tells you what it changed. Drag the divider to compare the original and the result side by side. Everything runs on your device, so your GIFs are never uploaded.
- Compressed on your device
- Up to 100 MB
- No watermark, no signup
Last reviewed · How we verify claims
Drop GIFs here
GIF files only · one or many, up to 100.00 MB each · click to browse or paste
Compressed on your device. Your GIFs are never uploaded.
How it works
- 1. Drop, paste or pick one or more GIFs, up to 100 MB each. They are read in your browser; nothing is uploaded.
- 2. Pick a quality preset, choose where the GIF is going (Discord emoji, Slack, email, a 10 MB upload) to fit its size limit, or set lossy compression, colours, size and frames yourself.
- 3. Drag the divider to compare the original and the result, check the new size, then download the GIF, or all of them as a ZIP.
Recommended settings
| Use case | Settings | Why |
|---|---|---|
| Lossless (Quick) | No lossy compression, all colours | Same pixels, smaller file. Merges duplicate frames and only stores what changes. |
| Balanced (Quick) | Lossy 60, 256 colours, 3% motion tolerance | Light lossy compression most people won't notice. A good default. |
| Strong (Quick) | Lossy 120, 128 colours, 5% motion tolerance | Stronger lossy compression and 128 colours. Visible on gradients, fine for memes. |
| Slack emoji | Fit a size → Slack emoji (128 KB · 128 px) | Scales to fit 128×128 px first, since emoji are shown that small, then finds the mildest compression under the limit. |
| Discord emoji | Fit a size → Discord emoji (256 KB · 128 px) | Scales to fit 128×128 px first, since emoji are shown that small, then finds the mildest compression under the limit. |
| Discord / Slack | Fit a size → Discord / Slack (10 MB upload) | Finds the mildest settings under the upload limit and lists what it changed. |
Use it on the web
<img src="compressed.gif" alt="Short description of the animation" width="480" height="270" loading="lazy" decoding="async">GIF vs WebP vs AVIF vs MP4
| Format | Typical size | Colour | HTML tag | Support |
|---|---|---|---|---|
| GIF | Largest | 256 per frame; on/off transparency | <img> | Everywhere |
| WebP | Usually much smaller than GIF | Full colour + alpha | <img> | All modern browsers |
| AVIF | Usually smallest of the image formats | Full colour (alpha in the format; not written by this tool) | <img> | Current Chrome, Edge, Firefox, Safari |
| MP4 | Usually smallest overall | Full colour, no alpha | <video> | Everywhere, but not where only images are allowed |
None of these exports include audio. Sizes vary by clip, so the editor shows your real output size before download. How we test
Questions about GIF Compressor
- How small can it make my GIF?
- It depends on the GIF. Screen recordings with large still areas shrink the most, because only the parts that change between frames are stored. Busy, photo-like GIFs need lossy compression, fewer colours or a smaller size. You see the exact result before downloading, and if re-encoding can't beat the original, you get the original back rather than a bigger file.
- How do I get a GIF under 256 KB for a Discord emoji?
- Open Fit a size and pick Discord emoji. It scales the GIF to fit 128×128 px, which is how Discord shows emoji anyway, then raises compression until it fits under 256 KB. The Slack emoji preset does the same for Slack's 128 KB limit.
- What does lossy compression do, and how is it different from fewer colours?
- Lossy compression lets GIF's LZW encoder reuse runs of pixels that are almost, but not exactly, the same colour, so it saves bytes without reducing the palette. Fewer colours shrink the palette itself, which shows up first in gradients. Try lossy first; reduce colours when you need more.
- Can I compress many GIFs at once?
- Yes. Drop several GIFs (or paste them) and the same settings apply to all of them. They are compressed in the background, a few at a time, and you can download each one or all of them as a ZIP.
- Does it keep transparency and frame timing?
- Yes. Transparent pixels stay transparent, and each frame keeps its own delay, so the GIF plays at the same speed. Duplicate frames are merged, with their display time added to the frame that stays. Manual mode can turn transparency off or change the loop count.
- Is my GIF uploaded?
- No. The GIF is decoded and re-encoded by Web Workers in your browser. Nothing is sent to a server, so it also works for private or unreleased content.
- Is there a size limit?
- Each GIF can be up to 100 MB. Long GIFs keep every frame; for very long ones, the preview shows the first frames straight away while the full GIF is encoded in the background.
The five levers of GIF compression
Frame-to-frame optimization: a GIF can store just the rectangle that changed since the previous frame, with unchanged pixels left transparent. This loses nothing, and it's the biggest saving for screen recordings and animations with a still background. The compressor always does it, and merges frames that didn't change at all.
Lossy compression: GIF's LZW encoding saves bytes when pixel runs repeat. Allowing near-identical colours to count as repeats makes the runs longer. Values up to about 60 are hard to spot; past 100, a grainy texture starts to show.
Colours: a GIF can use up to 256 colours. Fewer colours make runs repeat more, and gradients start to band. Dithering hides banding at the cost of some size; ordered dithering stays stable from frame to frame, so the frame optimizer can still skip unchanged areas.
Dimensions: file size follows pixel count. Reducing the width by 25% (and the height with it) removes about 44% of the pixels in every frame, and halving both removes 75%.
Frames: dropping every other frame halves the frames to store. The dropped frames' time is added to their neighbours, so the GIF keeps its length and only gets less smooth.
How Fit a size decides what to change
It applies the levers in order, mildest first: lossy compression, then fewer colours, then size or frames, depending on what you ask it to protect. It tests each step on short runs of frames from across the GIF, then does one full encode, and adjusts if the estimate was off. The chips under the result list exactly what changed.
When to stop compressing and switch formats
If a GIF still won't fit after lossy compression, fewer colours and a smaller size, GIF is the bottleneck. An MP4 or animated WebP of the same animation is usually many times smaller; use GIF to MP4 or GIF to WebP when the destination accepts them.
Private by design
Framimo converts your files inside your browser tab, so your GIF is never sent to a server for this GIF export. There is no signup and no watermark, and you can disconnect from the internet once the page has loaded.