Skip to content

Compress a GIF to a target size, in your browser

Pick a size such as 256 KB, or the limit Discord, Slack or Twitch states, and get a smaller GIF with its animation kept. Every GIF is compressed on your own device, so nothing is uploaded.

  • No upload — runs in your browser
  • Free, no account
  • Reads GIF files, animated or still
  • Up to 20 GIFs, 250 MB per batch
Settings

How to compress

Common sizes

The tool compresses each GIF just enough to get under the size you choose, keeping as much quality as it can.

Platform limits

Choose KB or MB, then type a size. 1 KB is 1,024 bytes here, and the smallest size is 1 KB.

Drop images here or click to browse

Accepted: GIF.

Up to 20 files, 250 MB in total

How to compress a GIF

  1. Choose the size

    Pick a common size, a platform's limit or type your own, or switch to a compression level instead. The table below lists the limits each platform states.

  2. Add your GIFs

    Drop in up to 20 GIFs. Each one is compressed just enough to get under the size, one after another, and you can keep adding while they run.

  3. Download the smaller GIFs

    Save each GIF on its own or all of them as one ZIP. A GIF that could not get under the size is still offered, marked as over the target.

GIF size limits on popular platforms

The largest GIF each platform states for these uses, as published on its own pages on the date shown. Platforms change their limits, so the linked page has the final word. Pick a row and the compressor aims under that limit.

Discord's pages state their limits in KiB, 1,024 bytes each, and the tool aims at exactly that. The other pages write KB or MB without saying whether they mean 1,000 or 1,024 bytes, so for those the tool aims at the smaller reading, which fits under either.

  • Discord emoji

    Largest file
    256 KiB
    Also stated
    • 128 × 128 px
    What this tool does
    • Aims at 262,144 bytes or less
    • Shrinks a larger GIF to fit within 128 × 128 px
    Source
  • Discord sticker

    Largest file
    512 KiB
    Also stated
    • 320 × 320 px
    • Up to 5 s long
    • Discord's developer documentation lists GIF among the sticker formats.
    What this tool does
    • Aims at 524,288 bytes or less
    • Says if the result is not 320 × 320 px
    • Says if the animation lasts longer than 5 s
    Source
  • Discord upload

    Largest file
    20 MB
    Also stated
    Nothing else
    What this tool does
    • Aims at 20,000,000 bytes or less
    Source
  • Slack emoji

    Largest file
    128 KB
    Also stated
    • Square
    • Up to 50 frames
    What this tool does
    • Aims at 128,000 bytes or less
    • Keeps at most 50 frames, each shown longer
    • Says if the result is not square
    Source
  • X post

    Largest file
    5 MB15 MB on the web; the smaller limit is for its apps
    Also stated
    Nothing else
    What this tool does
    • Aims at 5,000,000 bytes or less
    Source
  • Twitch emote

    Largest file
    1 MB
    Also stated
    • Square
    • Up to 60 frames
    What this tool does
    • Aims at 1,000,000 bytes or less
    • Keeps at most 60 frames, each shown longer
    • Says if the result is not square
    Source
  • Tumblr post

    Largest file
    10 MB
    Also stated
    Nothing else
    What this tool does
    • Aims at 10,000,000 bytes or less
    Source
  • GitHub comment

    Largest file
    10 MB
    Also stated
    Nothing else
    What this tool does
    • Aims at 10,000,000 bytes or less
    Source

What decides how small a GIF gets

A GIF can only get so small before something gives. Three things decide how far it goes and what it costs to get there.

  • One frameEvery frame adds bytes

    What makes a GIF big

    A GIF stores every frame as a picture of its own, in up to 256 colours. Its size grows with the number of frames, with the pixels in each, and with how much those pixels change: a filmed clip changes almost every pixel on every frame, a flat cartoon very few.

    For a big cut, take away frames or pixels. Merging colours alone trims less.

  • Exact coloursSimilar colours merged

    Lossy GIF compression

    Lossy compression lets similar colours next to each other count as one, which a GIF stores in fewer bytes, and skips pixels that barely change from one frame to the next. The light levels are hard to spot; at the strong ones, flat areas can show faint streaks.

    Choose a compression level when the look matters more than a set size. Balanced suits most GIFs.

  • Smaller framesFewer frames, same length

    Fewer frames or smaller frames

    Both cut bytes. Smaller frames keep the motion smooth but show less detail. Fewer frames keep the detail, and the frames left are shown longer, so the animation lasts as long as before but moves less smoothly.

    Switch off Allow fewer frames to keep the motion smooth, or Allow smaller dimensions to keep every pixel.

Why a GIF often has to get smaller to fit an emoji limit

Emoji and emote limits are tiny next to a typical GIF. A few seconds of video-sized animation easily runs to several megabytes, and merging colours cannot take that under a quarter of a megabyte while every frame keeps its size. Fewer pixels and fewer frames are what get it there, which is why the platform limits also fit the GIF to the size the platform states.

If you want to choose the dimensions yourself rather than leave them to the compressor, resize the GIF first, then compress it. A GIF made the size it will be shown at spends no bytes on pixels nobody sees.

If you are making the animation yourself, choosing fewer frames and a smaller size at the start costs less quality than taking them away afterwards. Build the GIF from your images at the size and frame delay you need, then compress it if it is still over.

What the GIF shows matters as much as its size. Large flat areas and simple motion compress well. Film grain, gradients and a moving camera change nearly every pixel on every frame, and those GIFs shrink the least.

Limits worth knowing

  • Reads GIF files, animated or still: up to 20 per batch and 250 MB in total.
  • A GIF can have up to 1,000 frames, 4.2 megapixels per frame and 300 megapixels across all its frames.
  • The animation is kept: its frames, timing and looping. Frames are dropped only to reach the size when Allow fewer frames is on, keeping at least 10 frames a second, or to meet the frame limit of a platform you chose.
  • Each GIF gets at most 12 tries, and a lossy step is used only while the measured quality stays above a fixed floor. If that is not enough, the smallest result above the floor is offered, marked as over the target.

Compress GIF FAQ

Are my GIFs uploaded to a server?

No. Every GIF is read, compressed and saved in your browser, and no file is uploaded, stored or sent anywhere. The page does fetch its own code as you go: the compressor's code when you add your first GIF, and the ZIP library the first time you download a ZIP. Your GIFs are never part of that.

How do I get a GIF under 256 KiB for a Discord emoji?

Choose Discord emoji under Platform limits, or select Use the Discord emoji limit in the table above, then add the GIF. The compressor aims at 262,144 bytes or less and shrinks a larger GIF to fit within 128 × 128 px, the size Discord states for emoji. Leave Allow smaller dimensions and Allow fewer frames on, so the compressor can use them when merging colours alone is not enough.

Why does the compressed GIF look blurry or streaky?

To reach a size, the compressor merges similar colours, which can leave faint streaks in flat areas, and may make the frames smaller, which looks soft when the GIF is shown larger. It never uses a lossy step whose measured quality falls below a fixed floor. For a cleaner result, choose a larger size, switch off Allow smaller dimensions, or use the Light compression level instead of a size.

Does compressing keep the transparency and the looping?

Yes. Transparent pixels stay transparent, and the GIF loops as it did before. The frames keep their timing too. When frames are dropped to reach a size, the frames left are shown longer, so the animation still lasts as long as the original.

What happens if a GIF cannot get under the size?

You still get the smallest result the compressor could make without going below its quality floor, and its row is marked Over target. It is ready to download. If Allow smaller dimensions or Allow fewer frames was off, switching it on and selecting Retry on the row often gets it under; a larger size does too.

Can I compress several GIFs at once?

Yes. Add up to 20 GIFs, 250 MB in total, and they are compressed one after another with the same settings. Download each GIF on its own or all of them as one ZIP.

Why is a limit in KB aimed slightly lower than I expected?

Many platforms write a limit as KB or MB without saying whether they mean 1,000 or 1,024 bytes. For those, the compressor aims at the smaller, decimal reading, which fits either way: Slack's 128 KB emoji limit is aimed at 128,000 bytes. Discord states its limits in KiB, 1,024 bytes each, so its 256 KiB emoji limit is aimed at exactly 262,144 bytes. The common sizes and a size you type count 1 KB as 1,024 bytes, as the rest of this site does, so a typed 128 KB is 131,072 bytes. For Slack, choose its limit rather than typing the number.

Compress your GIF now

Choose a size or a platform's limit, add your GIFs, and download smaller ones with the animation kept. Nothing leaves this device.

We use analytics cookies

Your images are always processed on your device and never uploaded. We would like to use Google Analytics to measure anonymous, page-level usage so we can improve the tools. Analytics stays off until you accept. Read our privacy policy