Convert GIF to animated WebP

Turn animated GIFs into animated WebP files that are far smaller, with their timing and looping. Converted on this device, never uploaded.

Converts animated GIFs to animated WebP, keeping every frame, its delay and the loop count, in full colour with soft transparency and usually a fraction of the GIF’s size. It is free, and your GIFs are not uploaded: each frame is decoded and encoded by your browser, in Safari too. The size limit is your device’s memory (phones hold less), and after your first run the page works offline.

Drop GIFs to convert to WebPor click to choose files. Batches welcome.
    Details

    Lossy is much smaller and fine for most animations; lower the quality for a smaller file. Lossless keeps every pixel exactly and makes a larger file. Each frame’s timing and the loop count are kept either way.

    Working…

    Done

    Free, no ads. Support StayPut

    Your files are processed on this device and never sent to a server. Reload the page to clear everything from memory.

    How it works

    1. Drop one or more animated GIFs, or tap to pick them.
    2. Choose lossy and a quality, or lossless, then convert. Each GIF is decoded and encoded as an animated WebP in your browser.
    3. Download the .webp file, or a zip when you converted several. The list shows how its size compares with the GIF.

    In your browser, not on a server

    Stayput reads the GIF byte by byte in your tab with gifuct-js (MIT), decompresses each frame and composites it the way browsers play GIFs, honouring disposal rules and transparency. Every finished picture is encoded as a WebP frame by libwebp, compiled to WebAssembly by jSquash (Apache-2.0) and served from this site the first time you convert. The frames are then wrapped in an animated WebP container, with the GIF’s delays and loop count, by a small writer in the same tab. The file is assembled in memory.

    Compared with upload-based tools: Online GIF to WebP converters upload the file to convert it on a server and may cap the size or keep a copy. Here the conversion runs on your device, so a private screen recording or a clip of your kids never leaves it.

    Verify it yourself. Give the page a short while after your first run to save itself for offline use, then turn off Wi-Fi or switch to airplane mode and run the tool again. Or open your browser's developer tools (F12, or Cmd-Option-I on a Mac), pick the Network tab, and watch it while you convert. The panel above does the same count for you.

    Questions

    Is my GIF uploaded?

    No. The GIF is decoded and the WebP is written by code running in this page; the WebP encoder is a small file served from this site, fetched the first time you press Convert. There is no server in the process, and after your first run the page works with Wi-Fi off.

    Will the WebP be smaller than the GIF?

    Usually, by a lot: lossy WebP is often a quarter to a tenth of the size of the same animation as a GIF. The result list shows the real change for each file. Lossless keeps every pixel exactly and is smaller than the GIF less reliably, mainly for photographic frames. Flat-colour GIFs with few colours can come out larger in lossless mode.

    Does it keep the timing and the looping?

    Yes. Each frame keeps its own delay and the loop count from the GIF is written into the file (a GIF with no loop setting plays once). Frames with a delay of 0 or 1 hundredths of a second are given a tenth of a second, which is what browsers do with them too.

    Does it work in Safari?

    Yes. Browsers cannot write animated WebP themselves, and Safari cannot write WebP at all, so this page carries its own WebP encoder (libwebp, compiled to WebAssembly) and writes the file container itself. The same code runs in every browser.

    Where does an animated WebP play?

    In Chrome, Edge, Firefox and Safari 16 or later, and in recent versions of most image viewers and editors. Some chat apps, social sites and upload forms still only accept GIF. Check where you will use it; if it is refused, WebP to GIF turns it back.

    What is the difference between lossy and lossless?

    Lossy WebP stores each frame approximately, and a quality slider trades size against detail; 80 is a good start and looks like the GIF for most animations. Lossless stores every pixel exactly as the GIF showed it, with a larger file.

    Can I go the other way, or to another animated format?

    WebP to GIF makes a GIF from an animated WebP. GIF to APNG writes an animated PNG, and GIF to MP4 is usually the smallest of all.

    More image tools

    Popular conversions