JPG to WebP, smaller and sharper. Nothing ever uploads.

Drop JPG files below — get WebP images back, typically 25–35% smaller than the JPG at quality 85, with EXIF rotation fixed. Converted entirely on your device.

  • Your file data never leaves the device
  • Lossless or lossy — your choice
  • Batch up to 20 files
  • Works offline after load

Convert JPG to WebP

Add your JPG files

Drag & drop JPG files here

or browse your files · you can also paste from clipboard (Ctrl+V)

Loading the WebP encoder…

    No files yet. Everything stays on this device. Downloads start instantly.

    Privacy you can verify, not just trust

    Most online JPG converters upload your photos to their servers first — and some keep a download link live for 30 days. This one can't: your browser decodes JPG natively and the WebP encoder (libwebp, compiled to WebAssembly) runs entirely in your browser. Your file data never leaves the device — the only third-party requests are the site's own analytics, which count page views — and it uploads nothing, ever. The encoder file is served from this site, not fetched from anywhere else, and there is no file fetched after load for the conversion itself. Don't take our word for it:

    New cross-origin requests during use: 0
    1. Press F12 to open developer tools, then the Network tab.
    2. Convert any JPG above. Watch: apart from the site's analytics, nothing new is requested — no uploads, and no file data ever leaves your device.
    3. Extra credit: disconnect your internet after this page loads — conversion still works.

    How to convert JPG to WebP without uploading it

    Every "free" online JPG converter you've used uploads your photos to a company server, converts them there, and — in several documented cases — keeps a copy or a live download link for days. For personal photos, client work, 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 JPG here, your browser:

    1. Decodes the JPG natively — every browser includes a JPG decoder, so there is no decoder file to download and no waiting for a library to load.
    2. Reads the image's EXIF orientation data and stores the output upright, so a portrait phone photo doesn't come back sideways — and says so on the file card when it did.
    3. Resizes it to the width you picked (800 px by default), keeping the aspect ratio. JPG has no transparency, so there is nothing to flatten onto a background.
    4. Encodes it as WebP with libwebp, the reference WebP encoder, running as WebAssembly in your browser — lossy at the quality you pick, or truly lossless with the Lossless toggle on. Your original file is never modified.

    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 photo — typically 25–35% smaller than the 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 JPG for photos, because lossless cannot throw detail away — and remember it preserves the JPG's existing pixels only; it cannot recover detail the JPG already removed when it was first saved. Either way, keep the JPG as your master copy and publish the WebP.

    Why is WebP smaller than JPG?

    JPG compresses by throwing away detail in 8×8 blocks, a technique from 1992. WebP's lossy mode predicts neighbouring pixels far better and encodes the difference more efficiently, so the same photo typically comes out 25–35% smaller at quality 85 with no visible difference. That is why Google, WordPress and most image CDNs serve WebP by default, and why switching a site's JPGs to WebP is one of the cheapest PageSpeed wins there is. The saving is real but not magic: a JPG that was already saved at low quality has little left to squeeze, and lossless WebP cannot beat JPG by much.

    Why won't my JPG load fast enough on my site?

    JPG is the web's default for photos, but a JPG straight from a phone camera can weigh several megabytes, 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.

    Honest limitations

    Lossy by default

    Unless Lossless is on, the output discards some detail. Quality 85 is visually identical to the original for most photos, but quality 100 is near-lossless, not pixel-perfect. Keep the JPG as your master copy.

    Lossless cannot recover JPG detail

    Lossless WebP preserves the JPG's existing pixels exactly — but the JPG already threw detail away when it was first saved, and no encoder can bring that back. A lossless WebP of a JPG is only ever as good as the JPG.

    Lossless can be larger than the JPG

    Lossless WebP cannot throw detail away, so for photos it can come out bigger than the JPG it came from. If the file comes out bigger, the card says so — use lossy mode for publishing instead.

    JPG has no transparency

    Every JPG pixel is fully opaque, so there is no see-through area to carry over — and no background picker on this tool. If you need transparency, start from a PNG.

    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 PNG instead.

    Metadata is stripped

    Camera metadata (EXIF, including location) is dropped on re-encode, and colour profiles are not carried over. Orientation is applied — the output is stored upright.

    Very large images depend on your device

    The encoder runs entirely on your device, so a 50-megapixel JPG 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.

    Frequently asked questions

    Is WebP really smaller than JPG?

    Usually, yes. A JPG photo re-encoded as lossy WebP at quality 85 is typically 25–35% smaller with no visible difference, because WebP predicts neighbouring pixels better than JPG does — and this tool shows the before and after size honestly for every file, so you can see the saving instead of taking our word for it. Flat graphics with few colours shrink less, and a lossless WebP can be larger than the JPG for photos, because lossless cannot throw detail away. If a file comes out bigger, the card says so and you can keep the JPG.

    Is the WebP output lossless?

    Only when the Lossless toggle is on. With it on, the encoder is libwebp's true lossless mode, which stores every pixel exactly — a lossless WebP decodes back to the identical image. But lossless preserves the JPG's existing pixels only: it cannot recover detail the JPG already removed when it was first saved, so a lossless WebP of a JPG is only ever as good as the JPG. With the toggle off (the default), the output is lossy WebP at the quality you pick: quality 85 looks identical to the original for most photos, and quality 100 is visually near-lossless but not pixel-perfect. Keep your JPG as the master copy and use WebP as the published version.

    Will my JPG's transparency survive as WebP?

    There is no transparency to preserve: JPG has no alpha channel, so every JPG pixel is fully opaque — a JPG photo never has see-through areas. WebP itself does support transparency, but this tool has nothing to carry over from a JPG, so there is no background picker and no transparency preview. If you need a transparent image, start from a PNG and use our PNG to WebP converter instead.

    Will EXIF-rotated phone photos come out upright?

    Yes. Phone cameras often store a photo sideways and record the correct rotation in its EXIF orientation tag, which is why some converters return a sideways image. This tool reads the EXIF orientation from the JPG and applies it while decoding, so the WebP is stored upright — and the file card says so when orientation was applied. The EXIF data itself is dropped on re-encode; only the upright pixels survive.

    What happens to my photo's metadata?

    EXIF metadata, including location, camera settings and copyright notes, is dropped on re-encode — which is good for privacy, since a shared JPG can leak where and when it was taken. Orientation is the one exception: it is applied to the pixels so the image stays upright, then discarded. Colour profiles are not carried over either; the output uses the browser's standard colour handling. 16-bit colour does not apply to JPG — JPG is always 8-bit per channel.

    Why convert JPG to WebP instead of keeping the JPG?

    JPG is the web's default for photos, but it is a thirty-year-old format: the same photo as WebP is typically 25–35% smaller at quality 85 with no visible difference, and that weight is time your visitor waits — especially on a phone. WebP was built for the web — smaller files, faster loads, better Core Web Vitals and PageSpeed scores — and every modern browser displays it. Keep the JPG as your master copy for editing, and publish the WebP. If the destination does not accept WebP, use our JPG to PNG converter instead.

    Can I share the WebP on Discord, a forum or by email?

    Usually, yes. Discord, most forums, Slack, WhatsApp and every modern browser display WebP inline, and email clients are catching up — though a few older upload forms and apps still only accept JPG or PNG, so check the destination first. Use the destination presets if the app has an upload size limit: website heroes aim for under 300 KB, blog images under 150 KB, and Discord or forum uploads under 256 KB. The presets aim for the target, they do not guarantee it — the tool reports the size it actually reached.

    Is there a file size or daily limit?

    There is no daily limit and no account. A 25 MB safety cap applies per file and 20 files per batch, because decoding large images in the browser is memory-heavy. Most JPGs saved from a phone or the web are well under 5 MB, far below the cap. Very large images also depend on your device's memory — the encoder runs entirely on your device, so a low-memory phone will struggle with a 50-megapixel JPG where a desktop will not.