Optimize GIF files by reducing colours, dimensions, and frame count. All processing is done locally in your browser— your files never leave your device.
Preview
gif
Drop your GIF here or click to browse
Supports animated GIF files (GIF87a / GIF89a)
How it works
upload_file
1. Upload GIF
Drag and drop or click to upload your animated GIF. The tool decodes all frames locally in your browser for processing.
shield100% Private
tune
2. Adjust Compression
Reduce colours, skip frames, or resize the GIF. Combine multiple options for maximum compression or fine-tune each individually.
boltMultiple Options
download
3. Download Result
Compare the original and compressed GIFs side-by-side with detailed size statistics. Download the optimized file instantly.
check_circleSize Comparison
What Does This GIF Compressor Do?
This tool makes an animated GIF smaller by rebuilding it. It fully decodes the file you upload — reading the color tables, decompressing the LZW image data, un-interlacing frames that need it, and applying transparency and disposal rules so each frame is reconstructed exactly as a viewer would see it — and then re-encodes those frames with settings you control. Three dials do the work: how many colors the new palette may use, how many frames to keep, and how large the output should be.
There is no magic byte-shaving pass here, and that is deliberate. Size comes down because you asked for less data: fewer colors mean a smaller palette and shorter LZW codes, keeping every second frame halves the frame count, and scaling to 50 percent leaves a quarter of the pixels. Because the effect of each setting is easy to reason about, you can aim at a target instead of guessing — and the side-by-side preview shows you immediately what the trade cost you.
Everything happens in your browser. The GIF is read with the File API, decoded and re-encoded by hand-written TypeScript, and handed back to you as a download; no copy is sent to a server at any point. That matters for GIFs of internal dashboards, private screen recordings, or anything else you would rather not upload to a stranger's conversion service — and it means the tool works the same whether you are online or not.
Key Features and Benefits
check_circle
Real GIF decoding, not a screenshot trick — The decoder handles both GIF87a and GIF89a, global and local color tables, interlaced frames, per-frame delays, transparent color indices, and all three disposal methods. Each frame is composited onto a running canvas exactly the way a browser would render it, so partial frames and background restores come through correctly instead of appearing as fragments.
check_circle
Color reduction from 256 down to 16 — Pick 256, 128, 64, 32, or 16 colors. The re-encoder builds each frame's palette by dividing RGB space into even steps, so fewer colors means a coarser grid and a smaller file. Graphic content — screen recordings, UI demos, illustrations — usually survives a big cut cleanly; photographic frames start to band because no dithering is applied to soften the steps.
check_circle
Frame skipping with delay compensation — Keep every second, third, fourth, or fifth frame and the file drops roughly in proportion. The delay of each surviving frame is multiplied by the same factor, so the animation still runs for about its original length instead of finishing in a rush — it simply moves in larger steps.
check_circle
Proportional resizing — The size slider scales the output anywhere from 10 to 100 percent of the original dimensions, with the resulting pixel size shown as you drag. Resampling goes through a canvas with high-quality smoothing enabled, so downscaled frames stay smooth rather than turning blocky. This is usually the single most effective setting.
check_circle
Side-by-side before and after — The original and the compressed GIF play in stacked panels so you can judge banding, smoothness, and detail loss directly rather than trusting a number. The sidebar reports original size, compressed size, and the percentage saved — including when a setting made the file larger, so you always know where you stand.
check_circle
Fully client-side, with the source file untouched — Decoding, resizing, and re-encoding all run locally in the browser, and the download is written to a new file with a -compressed suffix. Your original GIF is never modified and never leaves your device.
How to Compress a GIF Online
1
Upload the GIF
Drag your file onto the upload area or click to browse. The tool decodes every frame right away — you will see a brief decoding indicator on large files — and then reports the original dimensions, frame count, and file size so you know exactly what you are working with before changing anything.
2
Start with the size slider
Scaling is the strongest lever because pixel count falls with the square of the scale: 50 percent leaves a quarter of the pixels per frame. Check where the GIF will actually be viewed — chat windows and feeds rarely display more than 480 pixels wide — and scale to that, not to whatever the source happened to be.
3
Reduce colors and frames as needed
Step the color count down and watch the preview. Flat, graphic content often holds up at 64 colors or fewer, while photographic content starts banding much sooner. If the animation is still too heavy, use frame skip to keep every second or third frame; the delays are stretched to match, so the timing stays right.
4
Compress and compare
Click Compress GIF and compare the two panels once processing finishes. Read the savings figure in the sidebar as well as the picture: if it shows an increase rather than a saving, the source was already well optimized and you need to actually reduce something — scale it down, cut colors, or drop frames — rather than re-encoding at full settings.
5
Download the result
When the preview looks acceptable, click Download. The file is saved alongside your original with a -compressed suffix, so nothing is overwritten and you can always go back and try a different combination of settings.
Expert Tips for GIF Compression
Resize before you do anything else. It is the setting people skip and the one that pays best, because halving the dimensions removes three quarters of the pixels in every single frame. Color reduction and frame skipping are worth reaching for after that, but they cannot compete with simply not encoding pixels nobody will look at. Decide the real display width first — the size of the chat window, the feed, or the documentation column where the GIF will live — and scale to it.
Understand why an unchanged setting can make a file bigger. This tool rebuilds every frame as a complete image with its own color table; it does not store only the pixels that differ from the previous frame the way heavily optimized GIFs often do. Run a well-optimized GIF through at 100 percent scale and 256 colors and the output can legitimately come out larger than the input, and the sidebar will say so with a plus sign. That is a signal to lower a setting, not a bug. Two other consequences are worth knowing: the output always loops forever, so a source that was set to play a fixed number of times will not keep that behavior, and very long or very large GIFs are memory-hungry to process because every frame is held as a full bitmap while it works.
Match your expectations to the content, and know when to change format. Because no dithering is applied, the color-reduction slider behaves very differently on a screen recording than on a video clip: flat interface colors quantize almost invisibly, while sky gradients and skin tones posterize into visible steps. Compress in the direction the content allows — colors first for graphic material, dimensions and frames first for photographic material. And if a long, detailed clip refuses to fit under a platform's limit no matter what you try, that is the format's answer rather than a failure of settings; an MP4 or WebM loop carries the same content at a small fraction of the size, which is exactly why several major platforms quietly convert uploaded GIFs to video behind the scenes.
Compression works best as the last step of a workflow that started sensibly. If you are building the animation yourself, create it at the dimensions and frame rate you actually need with the GIF maker, and there may be nothing left to compress. If you inherited a heavy file, come here and take size, colors, and frames down in that order until the preview stops looking acceptable, then step back one notch. When even that is not enough, the honest answer is a different format rather than a harder squeeze. Whichever path you take, decoding and re-encoding run entirely in your browser and your files stay on your device.