 | yes | yes | yes | yes | yes |
| WebP | yes | yes | yes | yes | yes |
| AVIF (libavif) | not compared | not compared | not compared | yes | yes, client |
| Animated GIF/APNG/WebP | not compared | not compared | not compared | no | yes |
| Runs | server | server | server | browser | browser |
| Batch | yes | no | yes | no | yes |
Now the delivery model, which is the second axis. Server-side execution means unattended throughput and a vendor SLA; TinyPNG's API with its 500-image monthly free allowance and 5 MB cap is the sensible choice for runtime ingestion, and docsmall covers batch plus PDF for Chinese-speaking teams on a 5 MB free ceiling with membership above that. compressor.io's 10 MB free ceiling and SVG support make it the one-off large-file tool. Browser-side execution means the compute is the user's, so limits disappear: Squoosh is free without quota, and ImgIng adds batch, no login, no watermark, and returns the original when a file would not shrink. The cost is that throughput is bounded by the client machine and that "local" is a per-format statement to verify, not a blanket guarantee.
Performance, then, is not one number. For a runtime pipeline the metric is wall-clock per image on a warm server, and the server tools win because that is what they are. For a human-driven batch the metric is time from folder in to folder out, and a local batch tool wins because there is no upload leg and no queue. For a single asset the metric is how quickly a human converges on the right setting, and Squoosh's viewer wins that comparison for me.
The recommendation I actually write into architecture notes is a pairing rather than a pick: a server-side API for unattended ingestion, a browser-side batch tool for everything humans touch, and Squoosh on the side for studying a codec on one image. Choose the routes you need first; the tool list shrinks by itself.
z4heogdm4xp65vyy60s.png)
Top comments (0)