100% Free Zero Configuration cwebp, Imagick & GD Never Breaks Images Optional Bunny CDN

NibblePic ‑ 'Auto WebP Converter & Image Optimizer for WordPress'

Heavy JPG and PNG files slow every page down. NibblePic converts your images to WebP the moment you upload them, uses the fastest converter your server actually has, and only ever serves a WebP file it has confirmed exists, so a visitor never gets a broken image.

GPLv2 · PHP 8.0+ · No account or license key needed

On this page
🖼 Why WebP Matters

Images Are Often the Heaviest Part of a WordPress Page

A single page can load a hero photo, a row of thumbnails, product shots and a logo, and WordPress saves every one of them in several sizes. When those files are JPG or PNG, visitors download more than they need to, and page speed and Core Web Vitals suffer for it.

⚠ Without WebP
Every visitor downloads full-size JPG and PNG files on every page. Fixing that usually means an outside service, a command line tool, or a plugin that assumes your server supports one particular converter and misbehaves when it doesn't.

NibblePic converts your images to WebP, a smaller modern format that every current browser supports, and swaps it in automatically wherever WordPress shows the image. It works out which converter your server can really run, checks it with a real test, and stays out of the way of everything else on your site.

💡 Nothing about your workflow changes. You keep uploading JPG and PNG files exactly as you do today. NibblePic saves a WebP copy next to each one and uses it where it can. Your original files stay where they are, and if a WebP copy is ever missing, WordPress simply shows the original.

Typical Setup, JPG and PNG Only

  • Visitors download full-size JPG and PNG files on every page
  • Converting an existing library means an outside service or command line work
  • Converters that assume one engine fail on hosts that lack it
  • Large images can exhaust PHP memory partway through a conversion
  • Two WebP plugins can quietly work against each other
  • After a CDN upload, a page cache can keep serving old image URLs

With NibblePic

  • Every new upload converted to WebP automatically, original and all thumbnail sizes
  • Your whole existing library converted with one click, in safe background batches
  • The converter is checked with a real test conversion before it is trusted
  • Memory is checked first, and oversized images are skipped safely
  • Detects Smush, EWWW, LiteSpeed Cache and ShortPixel serving WebP and pauses itself
  • After a Bunny CDN upload, the post's page cache is purged (WP Rocket, LiteSpeed Cache, W3 Total Cache)
🔌 What is NibblePic?

A Free WebP Converter That Fails Safe

NibblePic is a clean, focused WordPress image plugin that converts your JPG and PNG images to WebP automatically when they are uploaded. It tests which converter your server can genuinely run, including the cwebp command line tool, the Imagick extension and PHP's built-in GD library, and uses the best one, with nothing for you to configure.

It hooks into the image URLs WordPress itself builds, including the responsive srcset lists, and swaps in the WebP file only when that file exists and NibblePic created it. It never buffers your page output, so it stays out of the way of caching plugins that do.

It also looks after itself: it re-checks your server after plugin, theme and WordPress updates, steps a converter down automatically if it starts failing on real files, and tracks every file it creates in its own table, so it only ever deletes files it made.

💡 Genuinely Free: Every feature on this page is included in the plugin at no cost, with no license key and no feature paywall. The only optional, external add-on is Bunny CDN offload, a third-party service with its own pricing.
🌐 Built for shared hosting: Conversion runs in small, resumable batches, checks memory before it starts, and skips anything too large instead of crashing, so it holds up on the modest shared plans most sites actually run on.
🔐 How Detection Works

It Finds the Best Converter Your Server Really Has

On activation, NibblePic tests each WebP converter your host might offer and uses the best one that passes, in this order:

01

cwebp Preferred When Available

Google's command line WebP encoder. NibblePic finds the binary, confirms your host allows running it, then converts a tiny throwaway image as a real test before trusting it. Because cwebp runs as its own process, it also sits outside PHP's memory limit.

02

Imagick

The Imagick PHP extension. Being installed is not enough, because many hosts ship it without WebP support built in, which can crash on a real conversion. NibblePic checks that the extension is loaded, that it lists WebP as a supported format, and that a real test conversion succeeds.

03

GD Baseline

PHP's built-in image library, present on most shared hosting. If it can write WebP, NibblePic uses it as the dependable baseline.

04

None Available

If your server can't write WebP at all, an admin notice tells you so, and your site keeps serving your original images exactly as before.

The result is remembered for 24 hours and checked again after activation, after any plugin, theme or WordPress update, and whenever you click Re-check environment on the settings screen.

Key Features of NibblePic

Built to Be Safe on Shared Hosting

Every one of these is in the current version, not a roadmap item, and not gated behind a paid tier.

1 A Converter That Corrects Itself

The converter picked at detection time is a starting point, not a blind commitment. If it fails on a real file, NibblePic falls back to the next best converter for that one image.

  • Three genuine failures within an hour demote the converter automatically, with a one-time admin notice
  • A failure on an unusually large image (roughly 40 megapixels and up) doesn't count against it, since that says nothing about normal uploads
  • A stale "this works" result can never keep crashing your uploads

2 Memory-Safe Conversion

Before Imagick or GD touches an image, NibblePic reads just the file header, estimates how much memory the conversion needs and compares it with your PHP memory limit. If it won't fit, the image is skipped with a clear status instead of causing a fatal error. cwebp is exempt from this check because it runs outside PHP entirely.

3 The Original and Every Thumbnail Size

Once WordPress has generated its thumbnails, NibblePic converts the original image and every size. Each WebP file is saved in the same folder as its source, with a _nibble_pic_.webp ending, for example banner-800x600.jpg becomes banner-800x600_nibble_pic_.webp.

  • Each image gets one clear status, such as complete, partial or skipped because it was too large
  • Your original files are never replaced

4 Real File Checks, Not Extension Guessing

NibblePic reads the actual contents of each file to decide what it is, so a renamed file can't slip through. Only genuine JPEG and PNG images are ever touched.

  • Front-end uploads are rate limited to 30 per minute, so a flood can't hammer your server
  • A short per-image lock stops near-simultaneous uploads from colliding

5 One-Click Bulk Converter

Click Convert All and NibblePic works through your existing Media Library in small batches of five, with a live progress bar. It runs the same conversion code as a normal upload, not a separate shortcut.

  • Close the tab whenever you like, click again and it continues where it left off
  • Images that were skipped only because of rate limiting or a temporary conflict are retried automatically on the next run
  • Permanent results are not retried endlessly, so repeat runs stay fast
  • The progress bar is plain JavaScript, with no jQuery

6 Never Serves a Broken Image

NibblePic swaps URLs through WordPress's own image functions, covering single images, responsive srcset lists and attachment URLs. A WebP URL is returned only if the file exists and NibblePic's own records confirm it made it. In every other case, the original URL is left completely untouched.

  • No page output buffering, so no clashes with LiteSpeed Cache, WP Super Cache, WP Rocket or W3 Total Cache
  • Nothing here can point a visitor at a missing or foreign file

7 It Only Deletes What It Created

NibblePic keeps its own record of every WebP file it makes. That record, not a guess based on the file name, decides what is safe to delete. When you delete an image from the Media Library, its WebP copies, records and CDN copy go with it.

8 Detects Other WebP Plugins

If Smush, EWWW Image Optimizer, LiteSpeed Cache or ShortPixel is already serving WebP, running two converters helps nobody. NibblePic checks whether those plugins are active and actually serving WebP, using their real server rules and settings.

  • At activation or a manual re-check, you just see an informational banner
  • If a conflict appears later while NibblePic is converting, it pauses itself and shows a one-time notice
  • When the conflict clears, it resumes quietly

9 Optional Automatic Bunny CDN Offload

Paste a Bunny.net API key and NibblePic sets up the Storage Zone and Pull Zone for you, then serves your WebP files from Bunny's global network. There is no DNS or custom hostname setup, because NibblePic uses Bunny's default .b-cdn.net address.

  • Files are uploaded in the background by WordPress's scheduler, never during your upload
  • Until a file has finished uploading, it is served from your own server
  • Once it lands on Bunny, NibblePic purges the page cache of the post the image belongs to, for WP Rocket, LiteSpeed Cache and W3 Total Cache. Other pages that embed the image refresh as their own cache expires
  • A button on the settings screen purges the whole CDN cache when you need it

10 Safe to Deactivate, Clean to Uninstall

Deactivating NibblePic deletes nothing, so your settings, converted files and CDN connection all survive a deactivate and reactivate. Only deleting the plugin cleans up, and a remove data on uninstall checkbox controls whether your converted files, its records table and the Bunny zones it created are removed too.

  • Disconnecting Bunny only clears NibblePic's saved settings and never deletes anything on Bunny
  • Database cleanup runs before the slow file deletion, so a timeout on a huge library can't leave the database half cleaned

11 Light on Your Site

One settings screen, with its styles and script loaded only on that screen and nowhere else in the admin. Nothing is added to your public pages. Every admin action is protected by a security nonce and a permission check.

⚙ How NibblePic Works

What Happens When You Upload an Image

No dashboard tour required. This is the entire mental model.

01

You upload a JPG or PNG

NibblePic checks what the file really is, not just what its name says.

02

Every size is converted

After WordPress makes its thumbnails, the original and each size get a WebP copy saved beside them.

03

Optionally sent to Bunny

If you connected Bunny, a background task uploads each file, without slowing your upload.

04

Visitors get the lighter file

WebP is served only when it is confirmed to exist. Otherwise the original loads, so an image never breaks.

📊 Why "Free" Doesn't Mean "Basic" Here

NibblePic vs. Typical WebP Plugins

There is no paid tier of NibblePic holding features back. This is what installing it actually gets you.

CapabilityNibblePicTypical Free PluginsTypical Paid or Cloud Services
Tests each converter with a real conversion before trusting itOften just checks the extension existsVaries
Supports cwebp, Imagick and GDOften one or twoOften converts on the vendor's servers
Falls back automatically if the chosen converter failsVariesVaries
Checks memory before in-process conversionRarelyVaries
Converts every thumbnail sizeUsually
One-click, resumable bulk conversionVaries
Serves WebP only after confirming the file existsVariesVaries
Detects other WebP plugins and pauses itselfRarelyVaries
Optional CDN offload with automatic zone setupRarelyOften a separate add-on
Only deletes files it created, tracked in its own tableVariesVaries
Image quotas or creditsNoneUsually noneCommon
PriceFreeFreeSubscription or credits
💡 One honest note on Bunny CDN: the optional CDN offload connects to Bunny.net, a third-party service with its own pricing. The Bunny.net sign-up link inside the plugin is our affiliate link. Bunny.net pays us a referral reward if you sign up through it, at no extra cost to you, clearly disclosed on that screen too. Every core NibblePic feature works fully without ever touching Bunny.
🚀 Getting Started

Install It and Your New Uploads Are Already Covered

There is no setup wizard. Everything after the first step is optional.

Install and Activate

From the WordPress Plugins screen, or by uploading the plugin's .zip file directly. NibblePic needs PHP 8.0 or newer.

That's It for New Uploads

On activation, NibblePic tests your server and picks the best converter. Every JPG and PNG you upload from now on is converted automatically.

Convert Your Existing Library (Optional)

Open NibblePic in the WordPress admin menu and click Convert All. You can close the tab at any time and continue later.

Connect Bunny CDN (Optional)

Paste your Bunny.net API key on the NibblePic settings screen. NibblePic creates the Storage Zone and Pull Zone for you.

⬇ Download NibblePic Free

Support Free, Open-Source Development

NibblePic is completely free, open-source, and built without hidden paywalls or bloated features. If it helped lighten your pages and speed up your site, consider supporting our ongoing development to keep it that way!

❓ Frequently Asked Questions

Before You Install

Is NibblePic actually free, with no catch?

Yes. Every feature described on this page is included with the free plugin, with no license key and no feature paywall.

The only thing that costs money is optional and external: if you choose to connect Bunny CDN, that is a third-party service with its own pricing, entirely separate from NibblePic itself.

Which image types does it convert?

JPEG (JPG) and PNG. NibblePic identifies files by their real contents, not their extension, and leaves every other type alone, GIFs included.

What if my host can't create WebP files?

NibblePic tests cwebp, Imagick and GD. If none of them can write WebP, an admin notice tells you, and your site carries on serving your original images exactly as before. Nothing breaks.

Does it change or delete my original images?

No. Each WebP file is saved as a separate file next to the original. Visitors get the WebP only when it is confirmed to exist, and otherwise they get the original. NibblePic only deletes files it created itself, and only when you delete the image from your Media Library or choose to remove data when uninstalling.

Can it convert the images I already have?

Yes. The Convert All button processes your existing Media Library in small background batches with a progress bar, so even a large library doesn't time out. If you close the page, click the button again and it picks up where it stopped.

Will it clash with Smush, EWWW, LiteSpeed Cache or ShortPixel?

NibblePic checks whether any of them is actively serving WebP. If one starts while NibblePic is converting, it pauses itself and shows a notice, then resumes automatically once the conflict is gone.

Does it rewrite images typed directly into post content or CSS backgrounds?

No, and that is deliberate. NibblePic only changes the image URLs WordPress builds through its own image functions, such as featured images, galleries and responsive srcset lists. Rewriting hardcoded tags or stylesheets would mean buffering your whole page, which is exactly what tends to clash with caching plugins.

What happens with very large images?

Before Imagick or GD converts an image, NibblePic estimates whether it will fit in your PHP memory limit. If it won't, that image is skipped with a clear status and the original keeps being served. cwebp runs outside PHP, so it is tried regardless of file size.

Do I need Bunny CDN to use NibblePic?

No. Conversion and serving from your own server work fully on their own. Bunny is an optional extra that offloads the WebP files to a global CDN.

Disconnecting Bunny in NibblePic only clears its saved settings and never deletes anything on Bunny. If you later delete the plugin with the remove data option enabled, the Storage Zone and Pull Zone it created are removed too.

Does NibblePic send my images anywhere?

Not by default. All conversion happens locally on your own server. The one optional exception is Bunny CDN offload, which uploads the converted WebP files to your own Bunny Storage Zone.

What happens if I deactivate or delete it?

Deactivating deletes nothing. Your settings, converted files and CDN connection are all still there when you reactivate. Deleting the plugin removes its settings and records, and a remove data checkbox decides whether your converted files and Bunny zones go as well.

Do I need to know what cwebp, Imagick or GD are?

No. Install and activate the plugin, and it handles the rest. The settings screen shows which converter was chosen if you are curious, but nothing about normal use requires understanding it.

Stop Serving Heavier Images Than You Need To

Install NibblePic and let it find the fastest WebP converter your server already has.

⬇ Download NibblePic Free

Support Free, Open-Source Development

NibblePic is completely free, open-source, and built without hidden paywalls or bloated features. If it helped lighten your pages and speed up your site, consider supporting our ongoing development to keep it that way!

More from MVP Plugins

Small, focused WordPress plugins built without bloat.

View all plugins