Convert GIF to WebP

Drop an animated GIF below and get an animated WebP back: every frame, the same timing, the same loop. WebP is already selected; files go up to 16 MB as a guest or 32 MB with a free account. Free. No account, no watermark.

  • Animation kept
  • Frame timing and loop kept
  • Transparency kept

Balance between the image quality and compression

Output format

Auto tries every format your image can be saved as and gives you the smallest one

Resize

Change the width, height or scale of every image you upload

Original Dimensions Percentage
px
px

Set one side to keep the proportions, or both for an exact size.

Percentage
%

Size limit

Fit every image under a file size, for a form or a site with an upload limit

Any size Under a size
KB

Saved as JPG, WebP or AVIF. When quality alone can't get there, the image is made smaller to fit.

How the size limit works

Responsive image set

Pro

The image at several widths, with a srcset to paste into your page, so each screen loads the size it needs

One size Responsive set
px

Up to 8 widths, each in the format and at the level of the result. A width wider than the image stops at its own width, so nothing is enlarged.

How responsive sizes work

Keep EXIF Keeps details such as the camera, the date and the location in each file. Leave it off to remove them and save space.
Write alt text with AI Describes each image for screen readers and search engines, and suggests a file name
Alt text language
No language matches
English
Spanish
French
German
Italian
Portuguese
Dutch
Polish
Swedish
Turkish
Russian
Ukrainian
Arabic
Persian
Hebrew
Hindi
Indonesian
Vietnamese
Thai
Japanese
Korean
Simplified Chinese
Traditional Chinese
Rename files Downloads take the suggested name instead of the one you uploaded

Pro
Uploading a zip comes with Pro: the browser opens it and uploads its images in the folders they sat in, and the zip of the results keeps them. On your plan, unzip it and drop the images here. How folders and zips work

Up to 16 MB per image PNG, JPG, WEBP, GIF, HEIC, TIFF, or a ZIP of them on a paid plan

Guests get 10 images a day, 10 left today. A free account gets 40 a day and 7 days of Pro.

Upload a folder, or a zip

Pro

Pick a folder and every image in it uploads, with the folders inside it, and Download Selected gives them back in the same folders. A zip of images dropped on the box works the same way, opened in your browser.

How folders and zips work

Auto-start
On, each image starts compressing as soon as it uploads. Off, images wait in the box so you can check the settings, then start together.
Delete this image?
The image and its optimized copy will be removed from storage. This cannot be undone.

Rename this image
Choose the name the optimized image downloads with. Its format stays the same.

Uploaded as

Rename the selected images
Each image gets this name and a number, counted in the order they were uploaded. Their formats stay the same.

Share this image
AI alt text
Alt text

Paste it into the alt attribute of the image on your page.

Choose the compression level that suits your images
Level What it promises What happens Pick it when
Lossless
Not one pixel changes in a JPEG, PNG or GIF The file is repacked, never re-encoded. JPEGs get an optimised Huffman table and progressive scan, PNGs a tighter deflate pass, GIFs a lossless gifsicle run. A lossy WebP has no repack step, so it is re-encoded at the highest quality the level allows. A sideways phone JPEG is rotated losslessly on the way through and keeps its colour profile. The one exception to the promise is a PNG or WebP tagged with a wide-gamut profile such as Display P3: its colours are converted to sRGB, so the values change but the picture doesn't. Logos, line art, anything you'll edit again, or when the file is evidence.
Smart
No visible change, targets 40 dB PSNR and a perceptual score of 70 A quality search runs per image and stops at the lowest quality that still clears the PSNR target. That answer is then scored on the SSIMULACRA 2 scale, because an average over every pixel lets a mostly flat picture through at a quality its detail doesn't deserve, and when it falls under 70 the search moves back up until it doesn't. Photos and graphics end up at different qualities because they need different ones; an image that cannot reach the targets inside the quality ceiling is encoded at the ceiling. Almost everything on a website. This is the default for a reason.
Ultra
Smallest file, targets 34 dB PSNR and a perceptual score of 50 The same two-stage search with lower targets. Fine texture softens a little; edges and text stay sharp. Thumbnails, backgrounds, email images, anything shown small or blurred anyway.
None
No compression at all Only the resize, conversion or metadata setting you chose is applied. Without a resize or a conversion every pixel comes back as it was: the file only loses its metadata, and with Keep EXIF on it comes back byte for byte. You only wanted to resize or convert, and quality is someone else's decision.

Measured, not estimated

What GIF to WebP saved on four real animations

Four animations from the corpus our encoder settings were tuned on. They behave differently, and the last row is there to show that.

Sample Original Lossless Smart Ultra
Newton's cradle, rendered animation 480 by 360, 36 frames 301 KB GIF 268 KB 10.9% smaller 185 KB 38.4% smaller 80 KB 73.4% smaller
Galloping horse, photographic frames 300 by 200, 15 frames 555 KB GIF 443 KB 20.1% smaller 154 KB 72.2% smaller 69 KB 87.6% smaller
Rotating Earth, photographic frames 400 by 400, 44 frames 1.0 MB GIF 773 KB 21% smaller 406 KB 58.5% smaller 194 KB 80.2% smaller
Bubble sort, flat-colour diagram 300 by 180, 267 frames 151 KB GIF 100 KB 33.6% smaller 100 KB 33.6% smaller 100 KB 33.6% smaller

Every frame was kept in every result. The bubble sort diagram is flat colour: lossy frames would cost more than lossless ones there, so the encoder picks lossless frame by frame and all three levels land within a few bytes of each other.

Why WebP

GIF is a 1987 format doing a video's job

A GIF holds 256 colours a frame and compresses each frame with a scheme from the eighties. That's why a five-second clip weighs megabytes. Animated WebP stores full colour, and codes each frame against the one before it the way video does.

Iminify converts with gif2webp, which reads the whole animation and keeps its frame delays and loop count. Two of its options are off by default and worth a lot, so both are on here. One spends more effort on packing frames. The other lets the encoder choose lossy or lossless for each frame, which is what rescues flat-colour animations: forcing lossy on one made it 84% bigger than the GIF in our tests.

At Lossless every pixel of every frame is kept. Smart and Ultra allow loss inside photographic frames, which is where the big reductions in the table come from.

What survives

What a GIF keeps on its way to WebP

  • Every frame

    The whole sequence is converted, not a first-frame still. Resize in the same pass and every frame is resized too.

  • Timing and looping

    Per-frame delays and the loop count carry over, so the WebP plays exactly like the GIF.

  • Transparency

    A transparent GIF stays transparent.

  • Nothing to keep in metadata

    GIFs don't carry EXIF, so the Keep EXIF switch has no effect on this conversion.

When not to

When to keep the GIF

  • It's going into an email or a chat app. Many of them animate GIFs and show WebP as a still, or not at all.
  • The platform re-encodes uploads anyway. Most social networks turn a GIF into video themselves.
  • It's longer than a few seconds. Past that, an MP4 is smaller than either format, and Iminify doesn't make video.

How to

GIF to WebP in three steps

  1. 1

    Drop your GIF

    WebP is already chosen under Format.

  2. 2

    Pick a level

    Lossless keeps each frame exact. Smart is the usual choice for clips made from photos or video.

  3. 3

    Preview and download

    The result plays in the preview, so you can check the motion first.

Questions

GIF to WebP questions

Next

From the blog

What we've measured so far

We run the encoders on real photos and screenshots and publish the numbers: when WebP beats AVIF, what quality 80 means in each encoder, and how many kilobytes an image on a web page should weigh.

All posts
Two rows of seven squares, one per test post. After the default wp media regenerate, four squares are red and read 404 and three read 200; after --skip-delete and the rewrite, all seven read 200.

Convert your existing WordPress images to WebP without a plugin: what regenerate breaks

On a WordPress 7.1.4 test site, one filter and wp media regenerate turned the resized copies WordPress makes of five full-colour (4:4:4) photographs into WebP files with 62.5% of the JPEG copies' bytes. All 25 WebP copies, five sizes of each photograph, also scored lower. The filter and regenerate also left four of our seven test posts pointing at copies WP-CLI had just deleted, and took the srcset off all seven inserted images that had one. The version below leaves no address broken and gives six of those seven their srcset back: the filter, regenerate with one flag, and a rewrite that changes an address only where a WebP exists. The recipe as printed needs WP-CLI and a shell on the server.

8 min read
Bar chart of bytes Chrome downloaded at phone size for five 4K JPEGs on a Next.js static export page: 55.2 MB as they are, 10.2 MB as Smart JPG at full size, 1.29 MB at 1200 px wide, 767 KB through next-image-export-optimizer.

Next.js static export images: the default loader breaks them and unoptimized ships the original

We built a page with five photographs in a Next.js 16.4.3 App Router app, set output: 'export', left the image settings alone, and next build finished with exit code 0. In Chrome none of the five images loaded: every src pointed at /_next/image, an endpoint a static export doesn't contain. Setting images: { unoptimized: true } fixes that, and the export then serves the file you put in public/. Chrome at phone size downloaded 2.4 MB for five 1800 px photographs, and 55.2 MB when the same page held five 4K Gemini JPEGs. This post compares that flag, next-image-export-optimizer and resizing the files first by what Chrome downloaded at phone size and at desktop size. The table is in the second section, and the choice we'd make follows the three options.

7 min read
Iminify blog cover on a blue gradient with a pixel pattern: "Should you compress before your CDN does?"

Should you compress images before your CDN re-encodes them? Measured through Next.js, wsrv.nl and Photon

The Fjord, one of our five test photographs, is an 852,461-byte JPEG, the master every score below is measured against. Iminify's Smart level makes it a 568,598-byte JPEG. We sent both through Next.js 16.4.3's image optimizer at its default, WebP at quality 75. Next's WebP of the master weighed 321,790 bytes and scored 66.98 against the master on SSIMULACRA 2, where 100 means no difference from the master. Its WebP of the Smart file weighed 314,578 bytes and scored 64.30: 2.2 percent fewer bytes for 2.7 points. Should you compress before a CDN or optimizer re-encodes your image? In our tests, on five JPEG photographs through Next and wsrv.nl, only losslessly. A lossless repack, which made our uploads 2.4 to 5.6 percent smaller, changed nothing in 80 of 80 Next responses. And in 40 of 40 comparisons at no more bytes, asking Next for a lower quality setting scored higher than the lossy first pass. If nothing re-encodes after you, compress first.

7 min read

Give your GIFs a lighter format

WebP is already selected. Drop an animation and watch the result play before you download it.