Just a minute...(/)
We are currently optimizing your images. Please wait a moment as we ensure the highest quality results for you.
Great, we have successfully compressed your images.
Images Optimized.
We are currently optimizing your images. Please wait a moment as we ensure the highest quality results for you.
Images Optimized.
Put two GIFs through this page and you can get 40 percent off one and nothing at all off the other. That is not the tool being inconsistent, and it is worth understanding before you upload, because it is the most confusing thing about GIF. A GIF has no quality slider. There is nothing inside it to trade away for size the way there is in a JPEG. All a GIF compressor can do is remove repetition, so what comes back depends almost entirely on how much repetition your file arrived with.
In two places, and neither is the picture in the way a photographer would think about it. The first is the colour table: every GIF carries a palette of up to 256 colours, and an animated GIF is allowed to carry a separate palette for every single frame. The second is the frames. A GIF written carelessly stores each frame in full, repainting the entire canvas thirty times to move one small box across the screen.
So the work is to collapse those per-frame palettes into one shared table and stop re-storing what did not change. Neither step touches your colours. In the first test below, 29 separate frame palettes became one global table, the file lost 40 percent of its weight, and the four colours we sampled came back at exactly the values they went in with.
We ran six files through this page and wrote down the byte counts of what came back.
| File | Original | Returned | Change |
| Screen-recording animation, 30 frames, 640 by 400 | 41,699 bytes | 24,994 | -40.1% |
| Single frame with a transparent background | 1,990 bytes | 1,861 | -6.5% |
| Animation already tightly encoded, 24 frames | 334,312 bytes | 334,027 | -0.1% |
| Single frame already on one tight palette | 56,676 bytes | 56,676 | 0% |
| Eight-frame animation loaded with comments, XMP, GPS and a colour profile | 15,850 bytes | 9,953 | -37.2% |
| A PNG dropped on this page | 703,830 bytes | 74,379 | -89.4% |
The first row was a screen recording: thirty frames, most of the canvas identical from one to the next, and a separate palette on nearly every frame. There was a great deal of repetition to remove. The fifth row was a single still frame already sitting on one tight 256-colour palette, so there was nothing left to take, and it came back at exactly 56,676 bytes, the number it went in at.
This is the honest version of a promise most pages in these search results make loudly. If your GIF came out of a video converter, a screen recorder or an old export preset, expect a real saving. If it has already been through an optimiser, expect very little, and read a zero as the tool telling you the truth rather than shaving quality off to manufacture a percentage.
We checked that at the byte level rather than by watching it play. The compressed thirty-frame file still contained thirty frames, thirty timing blocks carrying the original 80 millisecond delay, and the loop extension that tells a browser to keep repeating. The canvas was still 640 by 400. Nothing was flattened into a still image and no frames were dropped to make the number look better.
A transparent GIF came back 6.5 percent smaller. We drew the result onto a canvas and read four pixels out of it: the corner was still fully transparent, the red was still 220, 40, 60, and the white was still pure white. The same check on the thirty-frame animation returned its header blue, its page grey, its row grey and its red box unchanged after a 40 percent reduction. Because the saving comes from removing repetition rather than from approximating colours, that is what you should expect.
A compressor can only remove what is repeated. It cannot decide that your animation is four seconds too long or that it did not need to be 800 pixels wide. Those choices are made before the file reaches this page, and they set the floor. The arithmetic is blunt: a GIF costs roughly its canvas area multiplied by its frame count, so halving the width and the height takes about three quarters off, and cutting the frame rate from thirty a second to twelve is usually invisible on the kind of clip people post. If a compressed GIF is still heavier than you want, those two dials will move it far further than any optimiser can.
A GIF can carry a surprising amount of writing you never see, and not all of it in one place. There are comment blocks, which on an animation can sit on every single frame. There is an XMP packet, which is where Photoshop and the rest of Adobe's tools park the camera make and model, the creator and copyright lines, and the GPS coordinates. There are plain-text extensions and colour profiles. None of it shows up when you look at the picture.
We built one file carrying all of it: ten comment blocks, a full XMP packet with latitude, longitude, altitude and a capture date, the camera make and model, the software that wrote it, a credit line and a copyright notice, a colour profile and a plain-text extension. Then we ran it through this page and read the result with a metadata tool. Every one of those was gone. The eight frames were still eight frames, and the animation still loops forever.
This happens on the same pass as the compression, so it costs you nothing and there is no second upload to make. It also explains a result you might otherwise find odd: a file can come back smaller even when the compressor found no repetition to remove, because the text that was riding along is no longer in it.
The uploader also accepts PNG, JPG, JPEG, WEBP, AVIF, SVG, TIFF, BMP and JFIF, and each file comes back in the format it arrived in. The PNG in the table above went in as a PNG and came out as a PNG, still 1400 by 900 when we read its header. Landing on the GIF page does not convert your other images into something else.
For photographs rather than animations, Remove Photo Metadata clears EXIF and GPS without re-encoding the picture at all. If your GIF is a single still frame rather than an animation, Compress PNG is usually a better home for it. And for the same content in a format designed a good deal later than 1987, Compress WebP handles both stills and animation.