1Drop in the GIF
One at a time here, because an animation is worth looking at before and after. A still GIF works too, it just has nothing to keep.
2Pull the width down
This is the control that does the work, and it starts at 90%. A GIF only gets smaller when it gets narrower: there is no way to squeeze one at the same size without throwing frames away.
3Save it, and it still moves
The file comes back as a GIF with the same extension, the same frame delays and the same loop. Open it anywhere that played the original.
Questions
Will the animation actually survive?
Yes, and that is the whole point of this page. Asking for a GIF the ordinary way returns the first frame only — measured, 24 frames in and 1 back. This page asks for an animated GIF instead, and the frame count, the 80-millisecond delays and the endless loop all come back intact. If you would rather check than trust us, count the frames in what you get.
Why does the width have to come down?
Because there is nothing else to give. A GIF is already limited to 256 colours, and quality on its own does nothing here: asking for more compression without a smaller width hands back the file untouched. Narrowing it is what lets the encoder rebuild the frames, and it rebuilds them better than most tools wrote them — a 1.8 MB animation came back 701 KB at 90% of its width, which is a barely visible change in size on screen.
How small can it get?
On the 1.8 MB test animation: 701 KB at 90% of its width, 537 KB at 75%, and 302 KB at half. Pulling the quality down as well took the 75% version to 421 KB. Where you stop depends on where it is going — a chat window forgives a lot more than a page heading does.
Can I get a smaller file than any of those?
Yes, by giving up the GIF. The same animation came back at 193 KB as an animated WebP and 52 KB as a video, both with all 24 frames. Switch the output format if the place you are sending it accepts one of those. GIF is the one that goes anywhere, which is why it is what this page produces.
Why did my file come back unchanged?
The width is at 100%. There is no work to do at the original size, so the file you uploaded is the file you get. Move the width control down even slightly and the encoder rebuilds it.
What if I crop or flip it first?
Then you get a still. Those edits happen in your browser on a single canvas, which has no way to hold an animation, so whatever comes out of it is one frame. The notice above the picture says so when it applies. Do the trimming in something built for animation if the movement matters.