Nimble Image Optimizer
Free WordPress image optimizer: compresses every thumbnail size, converts to WebP/AVIF, no account or credits
by Sunny Parikh · github.com/sunnycrafts/nimble-image-optimizer · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/sunnycrafts/nimble-image-optimizer/archive/refs/heads/main.zipReadme
Nimble Image Optimizer
I was paying for ShortPixel across a couple of WordPress sites just to compress images, and it kept running into monthly credit limits. This does the same job — compress every thumbnail size, convert to WebP/AVIF, serve the smallest format automatically — server-side, for free, with no account and no limits.
A live static mock of the admin screen (built from the plugin's real CSS) is
at preview/index.html — open it in a browser to click through the UI
without a WordPress install.
What it does
- Compresses every generated thumbnail size, not just the full-size original — thumbnails are what actually get loaded on a page, so that's what needs shrinking. Three levels (Lossless, Balanced, Aggressive), each showing its typical savings up front. Imagick with progressive JPEG and 4:2:0 chroma subsampling, falling back to GD if Imagick isn't available.
- Next-gen formats — one dropdown: Off / WebP / WebP + AVIF. Served
automatically via
<picture>rewriting, no server config needed. A next-gen file that comes out bigger than the source is discarded. - Optional resize for oversized uploads, applied in the same decode pass as compression. Never upscales, never touches thumbnails or aspect ratio.
- Backups are always on — no setting to turn them off. Originals are
mirrored into
uploads/nio-backups/(blocked from public access) before anything is touched, so every image can be restored. - Restore brings back every size for an image, deletes its WebP/AVIF siblings, and reverts any resize. A re-encode that comes out larger than the original is rolled back automatically.
- Persistent activity log (its own DB table, survives reloads and plugin updates) — every optimize, restore, and error, with an issues filter so you don't have to dig through successful runs to see what went wrong.
- Resumable bulk run — one attachment per request, pause/resume, live totals, per-file log.
- Auto-optimize on upload (toggle), Media Library column with per-image savings, and a Details view with before/after size per thumbnail.
- Five settings total. Everything else (stripping metadata, keeping the colour profile, optimizing every thumbnail size) is fixed behaviour instead of another checkbox to figure out.
Install
Drop the nimble-image-optimizer folder into wp-content/plugins/ and
activate it from the WordPress admin. Requires PHP 7.4+ and either Imagick
or GD.
Removing the plugin deletes only its own settings — optimized images and backups are left in place.
Files
nimble-image-optimizer.php— plugin bootstrap, activation hookincludes/class-nio-engine.php— the actual compression/conversion engineincludes/class-nio-optimizer.php— per-attachment optimize/restore logicincludes/class-nio-media.php— Media Library integrationincludes/class-nio-delivery.php—<picture>rewriting for next-gen formatsincludes/class-nio-log.php— the persistent activity log tableincludes/class-nio-admin.php/class-nio-ajax.php— dashboard UI + AJAX endpointsincludes/class-nio-settings.php— the five settings