What the compressor actually does to your file
When you drop a JPG, PNG, WebP or AVIF on this page, the browser decodes it into raw pixels and hands those pixels to a Web Worker. The worker runs real encoders compiled to WebAssembly (the jSquash builds of libavif, libwebp, mozjpeg and a PNG encoder), so the output is the same quality you would get from a desktop tool, not a quick canvas export. Because the work happens in a worker, the page stays responsive while a batch runs, and nothing is sent to a server at any point.
The decode step uses the browser itself, which means anything your browser can open will work as input, including GIF and BMP. An animated GIF is reduced to its first frame. HEIC is the one common photo format that most browsers cannot decode; convert it first on the HEIC to JPG page and then compress the result.
The three controls and what they change
Format decides the codec. AVIF gives the smallest files and is encoded at effort level 4, a middle setting that keeps a batch of phone photos from taking minutes. WebP is the default because it is nearly as small and opens in every current browser. JPEG is the safe choice when the file has to open in old software or be pasted into a document. PNG is lossless, so the quality slider has no effect on it; you pick PNG when the pixels must stay exactly as they are.
Quality runs from 20 to 95 and starts at 65. It is passed straight to the encoder, so 65 in AVIF and 65 in JPEG do not mean the same thing; AVIF at 65 usually looks cleaner than JPEG at 80. Max width is optional. If you type a number smaller than the image width, the picture is downscaled with a proper resampling filter before encoding, keeping the aspect ratio. Larger values are ignored, so the tool never upscales.
A worked example
Take a 4032x3024 iPhone photo saved as JPG at 2.8 MB. Left at full size and re-encoded as WebP at quality 65, it typically lands around 450 to 700 KB. The same photo as AVIF at 65 often comes in at 250 to 400 KB. Set max width to 1600 and the WebP drops to roughly 120 to 200 KB, which is plenty for a blog post or a listing photo. These are typical figures, not guarantees; a picture with a lot of fine texture, such as foliage or fabric, compresses worse than a portrait against a plain wall.
The card for each file shows the new size, the percentage saved and the output width, and the line at the bottom totals the whole batch. If a result is larger than the original, which can happen when you convert an already small WebP to PNG, simply pick another format and run again.
What you lose and when to keep the original
Everything except pixels is dropped. EXIF data, GPS coordinates, colour profiles and XMP tags are not carried into the output, because the encoder only ever sees the pixel array. For most sharing that is a benefit; for archiving it is a reason to keep the original file. Transparency survives in PNG, WebP and AVIF output but not in JPEG, which has no alpha channel.
Lossy compression is cumulative. Compressing a JPG that was already compressed at quality 60 adds a second round of artefacts, so start from the largest version you have. Do not compress files you plan to print or edit further; compress the copy you are about to publish. Very large images, say a 50 megapixel scan, need several hundred megabytes of memory to decode, and on a phone the browser may refuse; a laptop handles them fine.
For a longer discussion of which format to pick, see WebP vs AVIF vs JPEG, and if you only need a different container without size savings, the dedicated PNG to WebP converter does that with the same engine.