GIF compressor

Shrink animated GIFs without uploading them to an online optimizer.

A free GIF compressor that runs in your browser: optimise frames, reduce colours, resize or drop frames. It is free, needs no account and adds no watermark, and your files are not uploaded: everything runs in your browser on your device. The size limit is your device’s memory, and phones hold less; give the page a short while after one visit to save itself for offline use, and then it works offline.

Drop GIFs to compressor click to choose files. Batches welcome.
    Details

    Each frame keeps only what changed from the one before. Stronger levels use fewer colours and ignore tiny changes.

    Dropped frames give their time to the frame before, so the GIF plays at the same speed, a little less smoothly.

    Working…

    Done

    Your files are processed on this device and never sent to a server. Reload the page to clear everything from memory.

    Animated GIFs are one of the least efficient ways to store moving pictures ever invented, which is why a five second reaction GIF or screen capture can weigh 10 MB. Most of that weight is repetition: GIF makers often store every frame in full, even when only a corner of the picture moves.

    This compressor rewrites each frame to hold only what changed since the one before, the same frame optimisation gifsicle does, and at Medium or Strong it also ignores changes too small to see and trims the palette. For bigger savings, shrink the size or drop every second frame; the timing is kept either way.

    Everything runs in your browser. Your GIFs are not uploaded to a website that keeps them for an hour, there is no watermark, and the limit on file size or count is your device’s memory (phones hold less).

    The three Compression levels differ in two things. Light keeps the full 256 colours and only stores the changed part of each frame, so it looks identical and helps most on GIFs saved without any optimisation. Medium drops to 128 colours and treats very small changes as none, which removes much of the flicker noise in screen captures. Strong uses 64 colours and ignores larger changes; it suits cartoons and flat graphics better than photographs.

    If you are coming from an online optimiser that has separate pages for optimising, resizing and removing frames, here the three happen in one pass: Compression, Size and Frames are applied together, to a whole batch at once. The GIF keeps its loop setting, and each result is saved with -compressed added to its name, so the original stays untouched.

    How it works

    1. Drop one or more GIFs.
    2. Pick a compression level, and a smaller size or fewer frames if you need to.
    3. Press Compress and save the smaller GIFs.

    In your browser, not on a server

    gifuct-js (MIT) reads the GIF byte by byte in your tab and every frame is composited the way browsers play it, honouring each frame’s delay and disposal rule. The frames are then written back with gifenc’s (MIT) colour quantizer and LZW coder: each frame after the first stores only the rectangle that changed, with unchanged pixels left transparent, and the stronger levels use fewer colours and ignore changes too small to see. The new GIF is assembled in memory.

    Compared with upload-based tools: Online GIF compressors upload the file to optimise it on their server, cap free files at around 50 MB, keep uploads for a while, and some add a watermark. Screen recordings and reaction GIFs of friends are often personal. Here the GIF never leaves your device, and you can compress a whole folder at once.

    Verify it yourself. Give the page a short while after one visit to save itself for offline use, then turn off Wi-Fi or switch to airplane mode and run the tool again. Or open your browser's developer tools (F12, or Cmd-Option-I on a Mac), pick the Network tab, and watch it while you convert. The panel above does the same count for you.

    Questions

    Should I convert the GIF to MP4 instead?

    Where a video is accepted (Twitter, Slack, most chat apps), yes: an MP4 is often a tenth of the size of the GIF. Use GIF to MP4. Keep a GIF for places that only take images, such as GitHub READMEs, email and forum signatures.

    Why did my GIF with a transparent background barely shrink?

    The biggest saving comes from leaving unchanged pixels transparent so each frame only stores what moved. A GIF that already uses transparency for its background cannot use that trick, because a see-through pixel would show the frame underneath. Each frame is stored whole instead. Lower the Size or drop frames to make up the difference.

    What does “already well compressed, original kept” mean?

    The rewritten GIF came out no smaller than the file you dropped, so the page gives you the original back instead of a bigger copy. This happens with GIFs that were already optimised. Choose a stronger Compression level, a smaller Size or fewer Frames, then press Compress again.

    Is the file uploaded anywhere?

    No. There is no server in this process. The page is a static file and the work is done by code running inside your browser tab. Give the page a short while after one visit to save itself for offline use; then you can turn off Wi-Fi and it still works.

    More image tools

    Other conversions

    Guides