Animated GIFs grow huge fast, and chat apps, forums and email all have size limits. Scale the animation down, cut the palette, drop frames or change the speed, then compare the before and after file size and preview. Everything happens on your device.
Processing locally on your device
Overview
GIF dates from 1987 and shows its age. Each frame can use at most 256 colours and is compressed with LZW, a lossless method that handles flat areas well and noise or gradients badly. There is no motion compensation like in video codecs, so a few seconds of screen recording or a clip cut from a video can easily reach 10–30 MB. The levers that reduce size are fewer pixels, fewer colours, fewer frames and not re-storing pixels that did not change.
This optimizer decodes the GIF frame by frame and rebuilds every frame as it really appears on screen, honouring each frame's disposal method (keep, clear to background, or restore the previous frame). Each frame is then scaled to your chosen width, reduced to the selected palette size with a pairwise-nearest-neighbour quantizer, and re-encoded. For opaque animations it also applies inter-frame optimization. Pixels that did not change since the previous frame are written as transparent, which LZW compresses to almost nothing, and identical consecutive frames are merged into one longer frame.
Resizing gives the biggest saving because pixel count falls with the square of the scale. A 50% width keeps only a quarter of the pixels. Reducing colours from 256 to 64 or 32 shortens the colour data and makes runs of identical pixels more common, at the cost of banding in gradients. Keeping every 2nd or 3rd frame halves or thirds the frame count. The delays of dropped frames are added to the frames that remain, so the loop lasts as long as before, but motion is less smooth.
Playback can be adjusted as well. A speed multiplier from 0.5× to 2× rescales every frame delay, and you can choose to loop forever or play once. Very short delays under 20 ms are treated as 100 ms, which is how browsers play them. Transparency is kept: GIFs with transparent areas are re-encoded with one-bit alpha so the background stays see-through. The results panel shows the original and optimized size, the percentage saved, the frame count before and after, the new dimensions and the total duration.
| Setting | How it saves space | Typical saving | Visible side effect |
|---|---|---|---|
| Width 50% | A quarter of the pixels per frame | 60–75% | Smaller display size |
| Width 75% | About 56% of the pixels | 30–45% | Slightly smaller display size |
| 128 → 64 colours | Shorter palette data, longer pixel runs | 10–25% | Banding in gradients |
| Keep every 2nd frame | Half the frames to store | Up to 50% | Choppier motion |
| Inter-frame optimization (automatic) | Unchanged pixels stored as transparent | Large on screen recordings | None |
Drop an animated GIF onto the page, paste it, or browse for it.
Choose an output width: 100%, 75%, 50%, 25% or an exact maximum width in pixels.
Pick a colour count from 256 down to 16, and optionally keep only every 2nd, 3rd or 4th frame.
Adjust the playback speed and choose whether the GIF loops forever or plays once.
Compare the original and optimized previews and sizes, then download the optimized GIF.
Use cases
Discord, Slack, Teams and forums cap upload sizes. Halve the width or drop every second frame of a reaction GIF or screen capture until it fits, without turning it into a video that might not autoplay.
Most email clients don't play video, so GIFs remain the standard way to add motion to a newsletter. A smaller width and a 64-colour palette keep the email light on mobile data while the animation still reads clearly.
Screen-recorded GIFs in GitHub READMEs and docs load faster when they are optimized. Flat UI recordings benefit most from inter-frame optimization, because most pixels stay the same from frame to frame.
Lighter animated banners, badges and stickers cut page weight. Set the loop to play once for attention-grabbing banners that shouldn't distract readers forever.
Pro tips
Answers to common questions about the gif optimizer.
GIF compresses each frame separately with lossless LZW and has a 256-colour limit per frame, while video codecs such as H.264 predict motion between frames and compress lossily. A clip that is 1 MB as MP4 can easily be 10 MB or more as a GIF.
No. When you keep every 2nd or 3rd frame, the delays of the removed frames are added to the frame shown before them, so one loop takes the same time. The motion just has fewer steps and looks choppier.
Some GIFs were already heavily optimized with techniques such as cropped frame updates or lossy LZW. Re-encoding every frame at full size can then add bytes. Lower the width or colour count, or drop frames, and watch the saved percentage in the results panel.
Yes. If any frame contains transparent pixels, the GIF is re-encoded with a transparent colour in each frame's palette and the background stays see-through. GIF only supports fully transparent or fully opaque pixels, so soft edges stay hard.
With 128 colours most animations look unchanged. At 32 or 16 colours, photos and gradients show visible banding, while flat cartoons, UI recordings and pixel art usually still look fine. Each frame gets its own optimized palette, which helps.
It divides every frame delay by the multiplier. At 2× a 100 ms frame becomes 50 ms; at 0.5× it becomes 200 ms. Delays are kept at 20 ms or more, the shortest that browsers play reliably.
No. ToolEnhancer processes files on your own device inside the browser. They are never sent to, stored on or seen by our servers.
Yes. The gif optimizer is free to use with no sign-up, no watermarks and no daily limits.
Shrink JPG, PNG and WebP files without visible loss.
Convert between JPG, PNG, WebP, AVIF and more.
Convert iPhone HEIC photos to JPG.
Render SVG files to PNG at any size.
Trace raster images into vectors.
Combine images into a single PDF.