Converting an animated GIF to WebP saved between 45% and 84% on ten of the eleven GIFs we tried. The eleventh, a 728-byte loading spinner, came out 52% larger. Every file kept its exact running time, to the millisecond.
We ran eleven animated GIFs from Wikimedia Commons through our GIF to WebP tool at its default settings on 24 September 2026, in Chromium 153 on a laptop: stickers, an emoji, two screen recordings, photo loops and a spinner. The same files went through our GIF compressor, which keeps them as GIF, and back from WebP to GIF, to see what the return trip costs.
Eleven GIFs, three ways to make them smaller
| GIF | Frames | Original | As WebP | Which WebP won | Compress GIF, Off | Compress GIF, Medium |
|---|---|---|---|---|---|---|
| Codespell terminal screencast, 1024×768 | 19 | 420 KB | 91 KB (−78%) | Lossless | 278 KB (−34%) | 278 KB (−34%) |
| OpenRefine screencast, 806×779 | 130 | 244 KB | 109 KB (−55%) | Lossless | 217 KB (−11%) | 215 KB (−12%) |
| Durian sticker, 1080×1080 | 50 | 4.62 MB | 2.55 MB (−45%) | Lossy | 4.54 MB (−2%) | 4.54 MB (−2%) |
| “Citation needed” sticker, 408×408 | 3 | 32.6 KB | 17.5 KB (−46%) | Lossy | 30.3 KB (−7%) | 26.9 KB (−17%) |
| Noto animated emoji, 512×512 | 20 | 472 KB | 121 KB (−74%) | Lossy | 439 KB (−7%) | 422 KB (−10%) |
| Apple blossom cinemagraph, 640×364 | 24 | 878 KB | 346 KB (−61%) | Lossy | 868 KB (−1%) | 641 KB (−27%) |
| Melting ice cubes, 280×450 | 49 | 3.39 MB | 688 KB (−80%) | Lossy | 3.28 MB (−3%) | 1.86 MB (−45%) |
| Muybridge galloping horse, 300×200 | 15 | 568 KB | 88.8 KB (−84%) | Lossy | 574 KB (+1%) | 441 KB (−22%) |
| Rotterdam harbour at night, 400×262 | 9 | 388 KB | 127 KB (−67%) | Lossy | 189 KB (−51%) | 67.3 KB (−83%) |
| Northern lights time-lapse, 500×331 | 98 | 5.05 MB | 1.20 MB (−76%) | Lossy | 5.05 MB (0%) | 2.57 MB (−49%) |
| Eight-bar spinner, 20×20 | 8 | 728 B | 1,104 B (+52%) | Lossless | 692 B (−5%) | 692 B (−5%) |
Lossless WebP won on exactly the three files made of flat colour: both screen recordings and the spinner. Every photo, sticker and emoji came out smaller as lossy WebP, which is why our tool encodes both and keeps whichever is smaller rather than asking you to choose.
Two results go against the usual advice. The Rotterdam file, nine frames of the harbour at night shown for up to 2.5 seconds each, was smallest as a GIF: 67 KB with Medium, against 127 KB as WebP. And a 20-pixel spinner is better left alone: there was nothing for WebP to save, and it came out 376 bytes bigger.
Timing survived everywhere. We read every frame’s time back from each output and the total matched the original in all eleven, including the Rotterdam file, whose frames run from 0.03 to 2.5 seconds. Frames that were exact copies of the one before were folded into it, their time added on: the northern lights went from 98 frames to 78 with the same 3.92 seconds.
Our own tool made two of them bigger, until we fixed it
On the first run that morning, the OpenRefine screencast came out of our GIF to WebP tool at 1.15 MB, 4.7 times the 244 KB GIF. The cinemagraph grew from 878 KB to 1.24 MB. Both GIFs store most frames as small rectangles, only the part that moved: 127 of the screencast’s 130 frames and 23 of the cinemagraph’s 24. Our WebP writer saved every frame whole, so a mouse pointer moving across a still page cost a full screenshot each time.
It now stores only the rectangle that changed, as the GIF did. That took the screencast to 109 KB and the cinemagraph to 346 KB, the numbers in the table. If a converter hands you a WebP bigger than the GIF, this is the likely reason.
What happens when you turn WebP back into GIF
Lossy WebP invents colours. A middle frame of the cinemagraph had 255 colours as a GIF and 48,981 after conversion; the “Citation needed” sticker went from 251 to 5,573. GIF allows 256 per frame, so going back means squeezing thousands of near-identical shades into a palette again, and the file pays for the noise.
| GIF | Original GIF | WebP | Back to GIF |
|---|---|---|---|
| Apple blossom cinemagraph | 878 KB | 346 KB | 1.14 MB |
| Durian sticker | 4.62 MB | 2.55 MB | 5.54 MB |
| “Citation needed” sticker | 32.6 KB | 17.5 KB | 32.2 KB |
| Northern lights time-lapse | 5.05 MB | 1.20 MB | 3.66 MB |
| OpenRefine screencast | 244 KB | 109 KB (lossless) | 226 KB |
So keep your original GIF. A GIF made from a lossy WebP is usually bigger than the one you started with and looks no better. The screencast, stored losslessly, came back at 226 KB, close to its original, because nothing was added on the way. Transparent stickers lose their soft edges too: a GIF pixel is either see-through or solid.
When you have to stay with GIF
If the place you are posting to only takes GIF, our GIF compressor does two things. With Ignore small changes set to Off it rewrites the file so each frame stores only pixels that changed, and changes nothing you can see: the terminal screencast lost 34% that way. Medium also treats pixels that shift by a tiny amount as unchanged, which is where photo loops shrink: the melting ice cubes went from 3.39 MB to 1.86 MB, the northern lights from 5.05 MB to 2.57 MB. When we pushed the threshold a little past Strong, the northern lights sky turned blotchy in the frames we checked, so we wouldn’t go that far on photos.
Our longest test file, a 41.2 MB screen recording of 982 frames at 1438×761, is too big to hold in memory whole. The compressor opened it at 359×190, which it says on screen, and made a 2.11 MB GIF of 533 frames (frames with no visible change were merged into the one before) running the same 40.93 seconds; as WebP the same frames were 1.32 MB.
Video to GIF: the size table
For a clip we used NASA’s public-domain video of Hurricane Erin seen from the International Space Station, starting 20 seconds in, through our Video to GIF tool’s own code.
| Clip | Frames | GIF, 256 colours | GIF, 64 colours | WebP |
|---|---|---|---|---|
| 2 s, 320 px wide, 10 per second | 20 | 412 KB | 244 KB | 63.8 KB |
| 2 s, 480 px, 10 per second | 20 | 787 KB | 463 KB | 107 KB |
| 5 s, 320 px, 10 per second | 50 | 1.02 MB | 604 KB | 159 KB |
| 5 s, 480 px, 10 per second | 50 | 1.98 MB | 1.14 MB | 267 KB |
| 5 s, 480 px, 15 per second | 75 | 2.85 MB | 1.69 MB | 399 KB |
| 5 s, 640 px, 10 per second | 50 | 3.07 MB | 1.70 MB | 378 KB |
| 10 s, 480 px, 10 per second | 100 | 3.99 MB | 2.25 MB | 531 KB |
WebP was 6.4 to 8.1 times smaller than the 256-colour GIF in every row. Going from 10 to 15 frames a second cost 44% more as GIF; widening from 480 to 640 pixels cost 55%. A 5-second, 480-pixel GIF of real video lands near 2 MB, which is already over the limit some sites set, so if the destination accepts WebP or video, use that.
Sources
- Wikimedia Commons: Codespell screencast (GFDL 1.3)
- Wikimedia Commons: OpenRefine data extension screencast (CC BY-SA 4.0)
- Wikimedia Commons: Wikimania 2023 animated sticker, Durian (CC0)
- Wikimedia Commons: Wikipedia iOS sticker, Citation Needed (MIT)
- Wikimedia Commons: U+1FADC Noto Emoji Color Animated (CC BY-SA 4.0)
- Wikimedia Commons: Cinemagraph de fleur de pommier, 640px (CC BY-SA 3.0)
- Wikimedia Commons: Melting icecubes (public domain)
- Wikimedia Commons: Muybridge race horse animated (public domain)
- Wikimedia Commons: Rotterdam harbour by night (attribution)
- Wikimedia Commons: Northern Lights timelapse (CC BY-SA 4.0)
- Wikimedia Commons: Throbber, eight bars (public domain)
- Wikimedia Commons: Screen recording of Vector 2022 skin (CC BY-SA 4.0)
- Wikimedia Commons: Hurricane Erin seen from the International Space Station, NASA (public domain)