WP Manifestindependent plugin directory
manifest / media / nimble-image-optimizer

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

0stars
0forks

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.zip

Readme

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 hook
  • includes/class-nio-engine.php — the actual compression/conversion engine
  • includes/class-nio-optimizer.php — per-attachment optimize/restore logic
  • includes/class-nio-media.php — Media Library integration
  • includes/class-nio-delivery.php<picture> rewriting for next-gen formats
  • includes/class-nio-log.php — the persistent activity log table
  • includes/class-nio-admin.php / class-nio-ajax.php — dashboard UI + AJAX endpoints
  • includes/class-nio-settings.php — the five settings

Read the full README on GitHub →