GIF Compressor

How to compress a GIF

  1. Upload the GIF. You see its file size, dimensions, frame count and loop length.
  2. Pick a preset (Light, Balanced, Small, Tiny) or set the size, number of colors and frames yourself.
  3. Press Compress and compare the original and the result side by side, then download.

What each setting does

A GIF stores up to 256 colors per frame and compresses each frame with LZW, which works best on long runs of the same value. Reducing the size cuts the pixels to store; reducing the colors shortens the palette and makes runs longer; dropping frames removes whole images. Changed-area encoding is the setting most tools skip: after the first frame, each frame stores only the rectangle that differs from the one before, and pixels inside that rectangle that did not change are written as transparent, which LZW compresses to almost nothing. All frames share one palette built from the whole animation, so colors do not flicker between frames.

What we tested

On October 14, 2026 we made two GIFs with FFmpeg’s palette filters: a 4-second full-motion test pattern and a mostly static “screen recording” with a small moving element. We ran both through every preset in Chromium and decoded each result with Pillow to check the frame count, the loop length and the picture against the original frames (PSNR in decibels; higher is closer, and above about 30 dB differences are hard to see).

GIFSettingSizeSmaller byFramesLoop lengthQuality vs original
Full motion (testsrc2)Original413.3 KB604.00 s
Light (100%, 256 colors)401.4 KB2.9%604.00 s63.4 dB
Balanced (100%, 128)349.4 KB15.5%604.00 s46.3 dB
Balanced, changed-area encoding off455.8 KB10.3% larger604.00 s46.4 dB
Small (75%, 64, every 2nd frame)95.2 KB77.0%304.00 s32.6 dB
Tiny (50%, 32, every 2nd frame)45.7 KB88.9%304.00 s30.5 dB
Screen-capture styleOriginal51.7 KB604.00 s
Light (100%, 256 colors)50.8 KB1.7%604.00 s80.5 dB
Balanced (100%, 128)50.8 KB1.7%604.00 s80.5 dB
Balanced, changed-area encoding off88.5 KB71.4% larger604.00 s80.5 dB
Small (75%, 64, every 2nd frame)22.0 KB57.4%304.00 s40.8 dB
Tiny (50%, 32, every 2nd frame)10.5 KB79.7%304.00 s40.1 dB

Two things stand out. Size and frame dropping do most of the work, while full-size presets gain little on GIFs that FFmpeg already optimized (its GIF encoder stores only changed areas by default, through its offsetting and transdiff flags). And changed-area encoding is what keeps re-encoding from making a GIF bigger: with it switched off, Balanced came out larger than both originals. A small GIF with transparency, which is re-encoded as full frames, came out 139.5% larger than its original in our test, so check the size before you download; the tool tells you when a result is not smaller.

Every output decoded cleanly and kept its loop length to the millisecond the GIF format allows (delays are stored in hundredths of a second). The page fitted a 390 px phone screen with no errors.

Frequently Asked Questions

How does the compressor make a GIF smaller?+
Four ways you can combine: a smaller size, fewer colors in one shared palette, dropping frames (each kept frame takes over the time of the frames removed, so the animation plays at the same speed), and storing only the part of each frame that changed, with unchanged pixels inside that area marked transparent so they compress to almost nothing.
Will dropping frames make my GIF play faster?+
No. When every 2nd frame is dropped, each remaining frame is shown for the combined time of itself and the frame it replaces, so the loop length stays the same; it just moves in bigger steps. Our test kept the loop length exact.
Which setting saves the most?+
It depends on the GIF. Changed-area encoding made a screen-capture style GIF 42.7% smaller than the same settings without it, and a full-motion clip 23.3% smaller. Size and frame dropping save the most overall: the Small preset cut our full-motion test GIF by 77.0%. GIFs already made by a good encoder, such as FFmpeg's, shrink only a little at full size and colors. Try Balanced first, then Small.
Why is my GIF with a transparent background not using changed-area encoding?+
Because a frame that only covers a changed rectangle cannot turn an already-drawn pixel back to transparent. GIFs that use transparency are re-encoded as full frames that clear before the next one, so they still compress with the size, color and frame settings.
Is my GIF uploaded?+
No. Decoding, compression and the download all happen in your browser.

Built by Derek Giordano · Part of Ultimate Design Tools

Privacy Policy · Terms of Service