Compress a GIF

Make an animated GIF small enough for Discord, Slack, email or a web page. It is compressed on this device and never uploaded.

Shrinks animated GIFs by dropping unchanged pixels, reducing colours, resizing or removing frames, and saves a smaller GIF. 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.

    How it works

    1. Drop one or more GIFs, or tap to pick them.
    2. Keep Medium for most GIFs. For a much smaller file, also reduce the size or drop every second frame.
    3. Compress. Each file stays an animated GIF with the same timing; one downloads straight away, several download as a zip.

    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

    Is my GIF uploaded?

    No. The GIF is decoded and written again by code running in this page. There is no server in the process, no daily limit, and the size limit is your device’s memory (phones hold less). The page keeps working offline after one visit and a short wait.

    How does it make GIFs smaller?

    Most GIFs store every frame whole, even when only a small part of the picture moves. Each frame is rewritten to hold just the area that changed, with the unchanged pixels left see-through so the frame before shows through. Medium and Strong also ignore changes too small to notice and use fewer colours, which is where GIF compressors such as gifsicle and ezgif get most of their savings.

    How do I compress a GIF for Discord or get it under a size limit?

    Size makes the biggest difference: 50% leaves a quarter of the pixels (to set exact pixel dimensions instead, use Resize GIF). Dropping every second frame roughly halves what is left. Try Medium first, then add those until the result, shown with its size, is under your limit. Discord’s limit is 10 MB for uploads, and custom emoji must be under 256 KB.

    Will the animation play at the same speed?

    Yes. When frames are dropped, their time is added to the frame before, so the GIF lasts just as long and loops the same way.

    What if my GIF is already optimised?

    If the result would not be smaller, you get the original back unchanged, and the result says so.

    More image tools

    Popular conversions

    Guides