Compress GIF
Compress GIF — shrink animated GIFs in your browser. Resize, reduce colour depth, drop frames. No upload, no signup, no watermark.
About Compress GIF
Compress GIF shrinks animated GIFs without uploading them anywhere. The tool decodes every frame, lets you choose how aggressive to be (scale down, fewer colours, drop frames), and re-encodes in your browser. A side-by-side preview shows you the original and the compressed result before you commit to a download.
The three knobs are designed to be used together. Scale cuts pixel count, quality cuts colour count, frame skipping cuts frame count — multiplicatively. Most GIFs go from 5 MB down to 500 KB with the defaults (75% scale, Medium quality, all frames). For chat reactions, going harder still — 50%/Low/Every 2nd — usually keeps the GIF legible while cutting an order of magnitude off the size.
When you need to compress a GIF
The classic use case is the message size limit. Slack, Discord, WhatsApp, and most email systems cap individual attachments somewhere between 1 MB and 25 MB, and animated GIFs of any meaningful resolution blow through those limits fast. Compressing the GIF down is usually faster than converting to MP4 or finding a smaller version.
The other reason is page load. Animated GIFs embedded in blog posts, landing pages, or documentation can dominate page weight — replacing a 4 MB GIF with a 400 KB version often takes a few seconds off the load time without anyone noticing the quality difference.
Choosing the right combination
| Original use case | Scale | Quality | Frames |
|---|---|---|---|
| Casual chat reaction | 50% | Low | Every 2nd |
| Blog post embed | 75% | Medium | All |
| Documentation screenshot | 75% | Medium | All |
| Twitter / X share | 50% | Medium | All |
| Long screen recording | 50% | Medium | Every 2nd |
| Tiny thumbnail | 25% | Low | Every 3rd |
Why everything runs in your browser
GIFs frequently contain content the user doesn’t want sitting on a third-party server — leaked builds, internal Slack reactions, work-in-progress animations, NDA-bound assets. Running the compression locally removes that risk and also makes it instant — no upload, no queue, no quota.
The trade-off is that very large GIFs are bound by your machine’s memory. If a 100 MB GIF stalls, the browser may need to swap, which slows things down. For everyday GIFs (under 20 MB), the encoding completes in seconds.
Free, runs in your browser, no signup.
Frequently asked questions
Three knobs: scale (shrink dimensions), quality (palette colour count — fewer colours means smaller file), and frame skipping (drop every 2nd or 3rd frame and combine their delays). Each one trades a bit of fidelity for a smaller file; combining all three usually cuts size by 60–90% with the original still recognisable.
No. The tool decodes and re-encodes the GIF entirely in your browser using WebWorkers and the HTML canvas API. Your file never leaves your device. This matters if the GIF is private, internal, or watermarked work-in-progress.
75% is a good default — barely noticeable in most cases and shaves ~40% off the file size. 50% halves both width and height (about 75% smaller in bytes) and is suitable for chat reactions and previews. 25% is aggressive — use it for tiny thumbnails or when you need the GIF under a strict upload limit.
Internally it's the colour-quantisation aggression that gif.js applies — High keeps a richer 256-colour palette per frame, Medium balances size vs fidelity, Low collapses to fewer colours and shows more banding. For photographic GIFs (e.g. video clips), Medium is the safest default. For cartoon-style GIFs with flat colours, Low can compress hard without visible loss.