Compress GIF to Size

Set a file size limit and get a GIF that fits it, with the best quality possible under that limit. Built for upload caps on Discord, Slack, X and email. Prefer to choose the settings yourself? Use Compress GIF.

  • Exact KB or MB
  • Best quality that fits
  • No watermark

Drop a GIF here

or click to choose a file from your device

GIFAnimatedMax 30 MB
You can also paste an image with Ctrl+V

Files are processed securely and deleted automatically.

How to compress a GIF to a specific size

  1. Upload your GIF

    Drop the GIF that was rejected for being too large. Its current size appears under the preview.

  2. Pick a target

    Choose a preset such as Discord emoji or Slack emoji, or type your own limit in KB or MB.

  3. Decide what may change

    Allow resizing and frame dropping if the target is far below the current size. Leave them off to keep the dimensions.

  4. Download a GIF that fits

    The tool tries progressively stronger settings and keeps the best-looking version that fits under your limit.

Hitting a size limit without guesswork

Upload limits are blunt. A GIF that is 1 KB too big is rejected just like one that's ten times too big, and you rarely learn by how much you missed.

Manual compression turns into trial and error: try a setting, check the size, try again. This tool runs that loop for you and stops at the best result that fits.

What it adjusts, in order

  1. Lossy LZW compression, which removes noise the eye barely notices.
  2. Palette size, from 256 colors down to 48.
  3. Dimensions, if you allow it, estimated from how far the file still is from the target.
  4. Frame count, if you allow it, by keeping every 2nd frame and doubling its delay.

Quality goes first where it's least visible. Dimensions and frames only change when colors and lossiness can't get there on their own.

Common limits

WhereLimit
Discord upload, free account20 MB
Discord upload, Nitro Basic50 MB
Discord custom emoji256 KB
Slack custom emoji128 KB
X (Twitter) animated GIF15 MB
Gmail attachments, total25 MB

Limits change. We check them regularly, and the GIF size limits guide has sources and more platforms.

Getting better results

The biggest wins come before compression. Crop away borders and empty background, and shorten the clip if the loop runs longer than the moment that matters.

Smaller targets also favor simple GIFs. Flat colors and little motion compress far better than film grain or gradients. How GIF Compression Works: Palettes, Dithering and LZW Explained explains why.

Compress GIF to size questions

How does compressing to a target size work?

The tool first tries the strongest color and lossy settings at full size. If that fits, it searches back toward lighter settings to find the best-looking version that still fits. If it doesn't fit, it estimates how much to shrink the dimensions and tries again.

The settings it used are shown with the result.

What is the GIF size limit on Discord?

Since August 2026, free Discord accounts can upload files up to 20 MB. Nitro Basic raises that to 50 MB and Nitro to 500 MB. Custom emoji, including animated ones, must be 256 KB or smaller. Our size limits guide keeps the full list.

How do I get a GIF under 128 KB for a Slack emoji?

Choose the Slack emoji preset and leave resizing on. Emoji are shown at small sizes, so the tool can shrink the GIF to around 128 pixels without any visible loss. Short loops with few colors fit most easily.

Why couldn't my GIF reach the target?

Very long or very large GIFs can't always reach tiny targets while staying watchable. Allow frame dropping, crop away anything you don't need with Crop GIF, or trim the length. The error message tells you the smallest size we reached.

Is this better than the normal Compress GIF tool?

It solves a different problem. Compress GIF gives you full control over the settings. This tool picks the settings for you to hit a number, which is faster when all you care about is getting under a limit.

Does dropping frames change the speed?

No. When every 2nd frame is removed, the remaining frames get their neighbor's delay added, so the total duration and speed stay the same. The motion just looks a bit less smooth.