Open ToolsGet the Android App

Files never leave your device.

GIF Compressor

This GIF compressor shrinks animated GIFs to the size you need, from a 128 KB Slack emoji to a 20 MB Discord upload or any number you type. Pick a target and ProMedia works through lossless re-packing, fewer colours, frame skipping and, only if nothing else fits, smaller dimensions, keeping the first result that fits. Your GIFs are compressed in the browser and never uploaded.

  • Runs on your device
  • Canvas · GPU
  • WASM codecs
  • Works offline

Updated

Drop your GIFs here

GIF
Processed on your device — never uploaded0 bytes uploaded

How to compress a GIF

  1. Step 1: Drop one or more GIFs on the box above.

  2. Step 2: Choose a Target: Slack or Discord emoji, Discord sticker, 1 MB, 5 MB, Discord upload or Custom… in KB. Or switch Compress by to Manual.

  3. Step 3: Press Compress.

  4. Step 4: Check the result card: new size, saving, frames kept and colours used, then download.

Good to know

Formats

Opens
GIF

Batch-friendly: add many files and they are processed one after another — if one fails, the rest still finish.

How it runs

GPU canvas
Pixels are drawn and composited with the GPU-accelerated canvas.
WebAssembly codecs
Images are encoded with Squoosh-grade codecs (MozJPEG, WebP, AVIF, OxiPNG, JPEG XL). Each codec loads only when you use it.
Emoji, sticker and chat limits
PlatformPlan / typeLimit
SlackCustom emoji128 KB
DiscordCustom emoji256 KB
DiscordSticker512 KB
DiscordFree upload20 MB

Checked 11 October 2026. Platforms change their limits — check the official help pages if a number looks different.

How the GIF compressor reaches a target size

In Target size mode, this GIF optimizer tries one step at a time, starting with the changes you cannot see, and stops at the first result that fits about 4% under your limit. The table shows the order and what each step costs.

GIF compression steps, gentlest first
StepWhat changesWhat you notice
1. Lossless re-packExact colours kept; only the pixels that change between frames are storedNothing
2. Smarter frame storageDifferences of up to 4 levels (out of 255) count as unchangedPractically nothing
3. 128 coloursPalette halved; small changes up to 7 levels ignoredSlight banding on gradients
4. 64 coloursPalette halved again; changes up to 10 levels ignoredVisible banding on photos, little on graphics
5. Skip every 3rd frameTwo of three frames kept; their delays absorb the skipped ones (GIFs with 6+ frames)Slightly choppier motion, same length
6. Skip every 2nd frameHalf the frames kept, same total length (GIFs with 4+ frames)Choppier motion
7. Scale downThe largest size that fits is searched for, in up to 7 triesA smaller picture
If even the smallest attempt is over the limit, you get the smallest result with a note on the card. If no step can beat your original without losing frames or pixels, you get the original back unchanged.

Why are GIF files so large?

GIF was designed in the 1980s for simple graphics. Each frame is stored as a picture of up to 256 colours and packed with LZW, which works well on flat areas and badly on noise, film grain and the dither patterns used to fake extra colours. Unlike a video codec, it cannot follow a moving object from frame to frame; it can only skip pixels that stayed exactly the same.

That is why a few seconds of camera footage can weigh several megabytes as a GIF, and why the biggest savings come from fewer colours, fewer frames or fewer pixels.

How to compress a GIF without losing quality

Only the first two steps are lossless or close to it. They help most on GIFs exported by apps that store every frame whole or use more palette entries than they need, and you will see them on the result card as “lossless” colours. If your target is far below the original size, something visible has to give.

To keep the picture as clean as possible, give the compressor less to do first: cut away borders with crop GIF, lower the dimensions yourself with the GIF resizer, then compress. A smaller, sharp GIF looks better than a large one with 64 colours.

Manual mode: colours, frame skip and scale

Switch Compress by to Manual to set the trade-off yourself. The three controls multiply: half the frames at half the scale leaves an eighth of the pixels to store.

Manual GIF compression settings
SettingRangeWhat it doesSize effect
Colours2 to 256 (default 128)Builds one shared palette with this many coloursFewer colours, smaller file; below 64 photos band heavily
Frame skipNone, every 2nd, every 3rdDrops frames and adds their time to the frame before, so the GIF keeps its lengthAbout half or two thirds of the frames remain
Scale25% to 100%Resizes every frame50% leaves a quarter of the pixels

Compress a GIF to 256 KB for an emoji

Emoji limits are tiny: 256 KB on Discord and 128 KB on Slack. Discord recommends 128×128 px emoji, so shrink the GIF to that size with the GIF resizer first; at 128 px a frame has about 7% of the pixels of a 480 px square frame, which leaves room for more colours and every frame.

Then choose the emoji target here. For stickers and the other Discord limits in one place, use compress GIF for Discord.

GIF compressor or another format?

If the destination accepts video, a GIF is the wrong format to compress. GIF to MP4 usually removes most of the size with better colour, and GIF to WebP keeps transparency and loops by itself on websites. Compress the GIF itself when only a GIF will do: emoji, stickers, email signatures, documentation and chats that show GIFs inline.

Measured example: a 3-second, 480×270 GIF of 779 KB
ResultSizeWhat changed
GIF compressor, 256 KB target193 KB64 colours, 23 of 45 frames kept, full 480×270
GIF resizer at 50%189 KB240×135, all 45 frames
GIF to MP4 (Balanced)244 KBMillions of colours, all frames, but a video
GIF to WebP (80% quality)458 KBAll frames, full colour, transparency kept
Measured with ProMedia’s own tools on one test animation. Your GIF will differ, but the ranking usually holds.

Tips & troubleshooting

  • Getting “file too large” in Discord? Free accounts can now upload 20 MB per file (raised from 10 MB on 14 Aug 2026), so the Discord upload target is usually enough.

  • Compressing a batch for the same limit? Drop them all at once; each GIF gets its own search for the best fit.

  • If the result looks choppy, the compressor had to skip frames. Try a shorter GIF or a smaller scale in Manual mode instead.

  • Making a new GIF from a video? Choosing a lower width and frame rate in video to GIF beats compressing a big GIF later.

GIF Compressor FAQ

Which target should I pick for Slack or Discord?

Slack emoji must stay under 128 KB. Discord allows 256 KB for an emoji, 512 KB for a sticker and 20 MB per upload on a free account. Pick the matching target and the result card confirms whether it fits; compress GIF for Discord lists only the Discord targets.

How do I compress a GIF without losing quality?

Pick a target close to the current size: the first two steps re-pack the GIF without visible changes. For bigger cuts, crop and resize the GIF yourself first, so the compressor does not have to remove colours or frames.

How do I compress a GIF to 256 KB for an emoji?

Resize it to about 128×128 px with the GIF resizer, then choose the Discord emoji (256 KB) target here. Small dimensions leave room for full colour and smooth motion within the limit.

How do I reduce a GIF’s file size?

Choose a target size and press Compress; ProMedia reduces colours, skips frames and, only if needed, scales the GIF until it fits. Or use Manual mode to pick the colours, frame skip and scale yourself.

Why are GIF files so large?

GIF stores each frame as a 256-colour picture and cannot track motion like a video codec, so every moving pixel is stored again in each frame. Noise, grain and dithering make that worse.

Why did my GIF get smaller in pixels?

Because fewer colours and skipped frames were not enough to reach your target, so the compressor scaled the GIF down, looking for the largest size that still fits. Choose a higher target, or use Manual mode to keep the full size.

All gif tools