How to convert GIF to WebP without uploading it
Every "free" online GIF converter you've used uploads your images to a company server, converts them there, and — in several documented cases — keeps a copy or a live download link for days. For graphics, logos, and anything you wouldn't post publicly, that's an unnecessary risk. The safer approach is to convert the file where it already is: on your own device.
This tool does exactly that. When you drop a GIF here, your browser:
- Decodes the GIF locally — with the vendored omggif decoder, honouring disposal methods and the transparent palette index, so every frame comes out exactly as the GIF shows it.
- Keeps the transparency — transparent pixels become WebP alpha, so logos and icons stay see-through. There is no background picker and no flattening.
- Resizes it to the width you picked (800 px by default), keeping the aspect ratio. Images at or below the chosen width keep their size — nothing is upscaled.
- Encodes each frame as its own still WebP with libwebp, the reference WebP encoder, running as WebAssembly in your browser — lossy at the quality you pick, or genuinely lossless with the toggle on. Your original file is never modified. Encoding takes well under a second for most images, and each file card shows how long its encode took.
What happens to animation?
It is lost — honestly and on purpose. This tool does NOT produce a single animated WebP file: the vendored WebP encoder is still-only, so it cannot encode an animated sequence. Instead, an animated GIF becomes one still WebP per frame — a 3-frame GIF gives you three WebP files, numbered frame-01, frame-02 and frame-03, which you can download one by one or all together as a ZIP. The file card shows the frame count (for example, "3 frames"), and animated files carry a plain warning that the motion is lost. If you need the animation, keep the GIF — or use our GIF to JPG converter to extract every frame as its own still image. Still GIFs convert normally, with nothing lost.
Lossy or lossless — which should you pick?
Pick lossy (the default, quality 85) when the image is going on a website, into a blog post, or onto Discord or a forum: it is the small file that loads fast, and at quality 85 it looks identical to the original for almost every image — typically 25–35% smaller than the same image as PNG or JPG. Pick lossless when every pixel has to survive exactly — a master you will edit further, or an image with razor-sharp edges. Lossless files are bigger, sometimes bigger than the GIF for scans with large flat areas, because lossless cannot throw detail away. Either way, keep the GIF as your master copy and publish the WebP.
Why is WebP smaller than GIF?
GIF compresses by limiting an image to 256 colours and squeezing repeats, a technique from 1987. WebP's codec predicts neighbouring pixels far better and encodes the difference more efficiently, so the same graphic typically comes out 25–35% smaller than the same image as PNG or JPG at quality 85 with no visible difference. That is why switching a site's GIFs to WebP is one of the cheapest PageSpeed wins there is. The saving is real but not magic: a GIF that was already tiny and flat has little left to squeeze, and at quality 100 the WebP can come out bigger than the GIF it came from.
Why won't my GIF load fast enough on my site?
GIF is the web's default for simple graphics and animation, but a GIF used as a static image still costs a full download, and every kilobyte is time your visitor waits — especially on a phone. WebP keeps the picture looking the same while cutting the weight, which is what Core Web Vitals and PageSpeed measure. If the destination has a size limit, pick a destination preset and the converter will aim for it: website heroes aim for under 300 KB, blog images under 150 KB, Discord or forum uploads under 256 KB.
Why is there a canvas fallback?
With WebP, a converter can fall back to the browser's built-in canvas encoder when its own encoder fails — canvas toBlob with image/webp works in every current browser. The fallback is lossy only, so the Lossless toggle is switched off and the page says so plainly, rather than claiming lossless it cannot deliver. If even the canvas encoder is unavailable, conversion is disabled and the page says so.
Honest limitations
One still WebP per frame
Animated GIFs lose their motion: each frame becomes its own still WebP, because the WebP encoder is still-only. The frame count is shown on every file card, so it is never a surprise.
No single animated WebP file
This tool does NOT produce a single animated WebP file. If you need one file that plays, keep the GIF — or assemble the still frames in an animation tool.
Lossless is real, but bigger
With the toggle on, every visible pixel is stored exactly. Lossless files are bigger than lossy ones, and can be bigger than the GIF for flat graphics. Keep the GIF as your master copy.
Quality 100 can be larger than the GIF
At quality 100 the WebP can come out bigger than the GIF it came from, especially for tiny flat graphics. If the file comes out bigger, the card says so — use a lower quality for publishing instead.
Transparency is preserved
GIF's transparent pixels become WebP alpha, so logos and icons stay see-through — shown on a checkerboard in the preview. There is no background picker and nothing is flattened onto a colour.
GIF is capped at 256 colours
The WebP cannot exceed the source's colour detail. Converting a GIF cannot add colours or detail that were never there — it keeps exactly the quality the GIF had.
Metadata is dropped
EXIF and other metadata in the GIF is not carried into the WebP. GIFs rarely carry EXIF, but nothing is copied over — which is good for privacy.
Not every app accepts WebP yet
Every modern browser displays WebP, and Discord, Slack and most forums accept it — but a few older upload forms and apps still only take JPG or PNG. Check the destination first, or convert to JPG instead.
Estimates are estimates
The size shown while converting is a rough model; the real size is shown once conversion finishes. Destination presets aim for a target, they never guarantee it.
Very large images depend on your device
The encoder runs entirely on your device, so a 50-megapixel GIF needs hundreds of megabytes of memory while it converts. A desktop handles that; a low-memory phone may not. Files over 25 MB are refused outright.