Title: Pixelcinch Image Optimizer
Author: M Tayyab Atta
Published: <strong>ဩဂုတ် 28၊ 2026</strong>
Last modified: ဩဂုတ် 28၊ 2026

---

Search plugins

![](https://ps.w.org/pixelcinch-image-optimizer/assets/icon-256x256.png?rev=3670785)

# Pixelcinch Image Optimizer

 By [M Tayyab Atta](https://profiles.wordpress.org/tayyabatta/)

[Download](https://downloads.wordpress.org/plugin/pixelcinch-image-optimizer.2.6.2.zip)

 * [Details](https://mya.wordpress.org/plugins/pixelcinch-image-optimizer/#description)
 * [Reviews](https://mya.wordpress.org/plugins/pixelcinch-image-optimizer/#reviews)
 * [Development](https://mya.wordpress.org/plugins/pixelcinch-image-optimizer/#developers)

 [Support](https://wordpress.org/support/plugin/pixelcinch-image-optimizer/)

## Description

Converts images to WebP and compresses each one toward a 100KB target:

 1. Media Library optimizer – scans existing attachments (JPG/PNG/GIF,
     plus optional
    WebP/SVG/RAW support) and converts them to WebP in small batches, avoiding PHP 
    timeouts.
 2. Manage WebP images – review any WebP image in your library, compress
     individual
    ones further, and choose exactly which original files to permanently delete once
    you’re happy with the result.

### Compression modes

Choose one mode; it applies wherever conversion happens:

 * Less Compress (quality mode): starts at WebP quality 90, only steps
    down to 
   a floor of quality 70, and never resizes the image. If a detailed image can’t
   get under 100KB without going below that quality floor, it is left larger rather
   than degraded further.
 * High Compress (aggressive mode): starts at quality 78, steps down to
    a floor
   of quality 20, and if still too big, shrinks dimensions by 20% at a time down
   to a 120px floor – forcing the result under 100KB “at any price.”

### Requirements

 * Imagick PHP extension with WebP support (preferred), or
 * GD PHP extension with WebP support (imagewebp())

### Security notes

 * All admin actions require the `manage_options` capability and a
    verified nonce.
 * Every file this plugin processes is validated as a real image via
    getimagesize()
   + fileinfo mime detection (or, for SVG, a dedicated content-safety scan), not
   by trusting its extension.
 * Filenames are sanitized and destination paths are checked to stay
    inside wp-
   content/uploads before any file is written.
 * All AJAX output is via wp_send_json_success/error; all admin UI output
    is escaped(
   esc_html/esc_attr/esc_url).

The Media Library optimizer keeps your original files on disk; it only
 repoints
the attachment’s registered file to the new .webp version, so you can restore from
the original if needed – until you use the new “Delete original files” tool below(
see 1.2.0).

### For Developers

Extension points other plugins can hook into – none of these change
 default behavior
on their own, they’re no-ops until something uses them:

 * `pixelcinch_after_convert` (action) – fires after an attachment is
    converted,
   with the attachment ID and a result summary array.
 * `pixelcinch_after_delete_original` (action) – fires after an original
    (pre-WebP)
   file is actually deleted from disk.
 * `pixelcinch_compression_profile` (filter) – the quality/resize tuning
    values
   used for a given compression mode.
 * `pixelcinch_scannable_mime_types` (filter) – the list of MIME types
    offered 
   as scan/convert source formats.
 * `pixelcinch_default_settings` (filter) – the default settings array.
 * `pixelcinch_sanitize_settings` (filter) – the sanitized settings array
    right
   before it’s stored; add your own keys here alongside your own entries in `pixelcinch_default_settings`.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Pixelcinch Image Optimizer” is open source software. The following people have 
contributed to this plugin.

Contributors

 *   [ M Tayyab Atta ](https://profiles.wordpress.org/tayyabatta/)

[Translate “Pixelcinch Image Optimizer” into your language.](https://translate.wordpress.org/projects/wp-plugins/pixelcinch-image-optimizer)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/pixelcinch-image-optimizer/),
check out the [SVN repository](https://plugins.svn.wordpress.org/pixelcinch-image-optimizer/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/pixelcinch-image-optimizer/)
by [RSS](https://plugins.trac.wordpress.org/log/pixelcinch-image-optimizer/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.6.2

 * Compliance: removed the custom AJAX output-buffering mechanism entirely.
    It 
   previously opened an output buffer in one method and closed it from a separate‘
   shutdown’-hooked method, which left buffer ownership dependent on hook execution
   order rather than a single function scope. The plugin no longer performs any 
   output buffering.

#### 2.6.1

 * Compliance: the AJAX output buffer opened to strip stray PHP
    warnings/notices
   from JSON responses is now explicitly closed via ob_get_clean() on ‘shutdown’,
   rather than left open for PHP’s implicit end-of-request flush.

#### 2.6.0

 * Renamed to “Pixelcinch Image Optimizer” (slug: pixelcinch-image-optimizer).
    
   Display name, text domain, admin page slugs, and internal references updated 
   throughout. No functional changes.

#### 2.5.1

 * Ran the plugin through PHP_CodeSniffer with the WordPress Coding
    Standards ruleset
   and cleaned up everything it flagged: statement alignment, increment style, an
   array-formatting spot, an unused filter-callback parameter, and a reserved-keyword
   parameter name. No behavior changes.

#### 2.5.0

 * Added six action/filter hooks (see “For Developers” above) so other
    code can
   extend conversion, deletion, compression tuning, supported formats, and settings
   without modifying this plugin’s files. Purely additive – no existing behavior
   changes.

#### 2.4.3

 * Compliance: replaced an `ini_set( 'display_errors', ... )` call used to
    keep
   stray PHP notices out of our AJAX JSON responses with output buffering instead,
   since plugins altering that php.ini directive at runtime is flagged by Plugin
   Check. No behavior changes.

#### 2.4.2

 * Compliance: bumped “Tested up to” to 7.1.
 * Compliance: prefixed the two variables in uninstall.php that Plugin
    Check flagged
   as unprefixed globals. No behavior changes.

#### 2.4.1

 * Renamed the plugin to “Pixelcinch Image Optimizer” (previously “WebP
    Image Fetcher&
   Compressor”), per WordPress.org naming guidelines – descriptive of what the plugin
   actually does (compress images) with a distinct identifier at the front instead
   of leading with “WebP”.
 * Compliance: the dashboard widget’s inline `<style>` block is now
    enqueued properly
   via wp_enqueue_style() instead.
 * Compliance: every function/class/constant/option/hook prefix changed
    from `iwc`/`
   IWC` to a prefix derived from the new name, to go with the rename above. No behavior
   changes.

#### 2.4.0

 * Removed: the “Fetch images from a URL” tool, which scanned a given
    page for 
   image sources and downloaded them. The WordPress.org Plugin Directory review 
   team classified this as scraping functionality, which isn’t permitted regardless
   of the safeguards that were in place (SSRF protections, same-image validation,
   an explicit on-screen notice to only use it on sites you own/have permission 
   for, etc.) — the capability itself is what’s restricted, not the intent behind
   it. This plugin now only ever processes images already in your own Media Library,
   or new uploads made through WordPress’s normal upload flow.
 * The “Manage WebP images” step is renumbered to step 2 accordingly.
    No other 
   functionality changed.

#### 2.3.0

 * New: additional source formats for conversion, each opt-in via checkbox
    on the
   Tools page or Settings:
    - WebP: recompresses an already-WebP image in place using the full
       quality/
      resize search (not just the single-shot “compress further” slider), useful
      for a one-time pass over WebP files that arrived from somewhere other than
      this plugin.
    - SVG: rasterized to WebP via ImageMagick, only when the server’s
       ImageMagick
      build actually has SVG support (most shared hosting does not — the checkbox
      is disabled with a clear note when unavailable). Every SVG is scanned before
      processing and rejected if it contains scripts, event handler attributes, 
      XML external entity declarations, or references to external URLs — the class
      of content that makes ImageMagick+SVG a known security risk (“ImageTragick”).
      Rendering also runs under tight ImageMagick resource limits (memory/width/
      height/time) so a pathological file fails safely instead of exhausting server
      resources.
    - RAW camera files (CR2, CRW, NEF, NRW, ARW, RAF, ORF, RW2, PEF, SRW,
       DNG):
      converted via ImageMagick, only when the server’s build supports that specific
      format. Automatically picks the highest-resolution embedded frame (RAW files
      often bundle a thumbnail and preview alongside the full frame).
 * New: optional “Allow SVG/RAW uploads” setting (off by default) so
    these file
   types can actually be uploaded through the Media Library at all — WordPress blocks
   them otherwise. The same SVG safety scan runs at upload time, before a file is
   ever written to disk, not just when converting it later.
 * Fix: the image-conversion loop is now wrapped in try/catch for every
    source 
   type (previously only some paths were) — an unexpected mid-conversion failure
   always returns a clean error now instead of risking an uncaught exception.
 * The “unsupported format” case (e.g. an SVG/RAW file on a server
    without the 
   right ImageMagick support) is tracked distinctly so the scanner doesn’t keep 
   retrying it, and is reflected in the Tools page library overview.

#### 2.2.2

 * Compliance: resolved 6 remaining Plugin Check warnings in
    class-pixelcinch-local.
   php (WordPress.Security.ValidatedSanitizedInput.InputNotSanitized). A recognized
   sanitizer (absint()/sanitize_text_field()) is now applied directly at every $
   _POST read, rather than only inside this plugin’s own whitelist helper methods
   a few lines later – the previous version was already safe (the helpers do whitelist/
   absint everything), but static analysis couldn’t see past the function call boundary.
   No behavior changes.

#### 2.2.1

 * Compliance: addressed every item from a WordPress.org Plugin Check
    scan – added
   the required License/License URI header and a LICENSE.txt file, updated readme.
   txt’s “Tested up to” and added the missing Short Description, replaced a raw 
   is_writable() call with WordPress’s wp_is_writable() wrapper in uninstall.php,
   added a missing translators comment for a string with a placeholder, and annotated
   every direct database call and nonce-verified-via-shared-helper AJAX input with
   the specific reasoning (no WP_Query equivalent exists, cache is invalidated immediately
   after, or the nonce check already happened one line above via PIXELCINCH_Security::
   assert_request() – which static analysis can’t trace into on its own). No behavior
   changes.

#### 2.2.0

 * Change: “Manage WebP images” (step 3) now detects every WebP image in
    your library
   over 100KB – not just ones this plugin converted. Images uploaded as WebP directly,
   or produced by something else (a hosting-level optimizer, another plugin), now
   show up too and can be compressed further the same way. Untracked images that
   are already under 100KB are simply left alone, same as before.
 * Deleting an original only applies to images this plugin converted
    (there’s a
   file to delete); for untracked WebP images there’s nothing to delete since the
   WebP file is the only copy – the row clearly notes this and you can still compress
   it further.

#### 2.1.0

 * Change: split the single admin page into three – Tools (day-to-day
    scan/convert/
   manage actions), Features (integrations like automatic WebP serving and Media
   Library detection), and Settings (persisted defaults) – with tabs to move between
   them.
 * New: “Your Media Library right now” overview on the Tools page, showing
    real
   counts of images pending conversion, already converted by this plugin, and already
   WebP but not tracked by this plugin (e.g. uploaded as WebP directly, or optimized
   automatically by some hosts). Clears up the confusing case where “Scan & Convert”
   reports nothing to do while the manage list also shows nothing – usually it just
   means there’s nothing outside what’s already covered.
 * Fix: the “Install to uploads/.htaccess” button was refusing to run on
    any server
   that didn’t literally identify itself as “Apache” – which wrongly blocked LiteSpeed(
   used by many shared hosts, including Hostinger), even though LiteSpeed reads .
   htaccess the same way Apache does. It now only blocks on Nginx, which is the 
   one case where .htaccess genuinely has no effect.

#### 2.0.0

 * New: Settings page (right on the main screen) to set your defaults —
    default
   compression mode, default scan filters, auto-convert-on-upload, background conversion,
   and auto-purge — so you don’t have to reconfigure every run.
 * New: convert new uploads automatically as soon as they’re added to the
    Media
   Library (optional, off by default), respecting your saved file-type/size filters
   and any excluded images.
 * New: “Convert to WebP” / “Exclude from WebP conversion” row actions and
    bulk
   actions right in the normal Media Library screen (Media > Library), so you don’t
   have to leave that screen.
 * New: exclude specific images permanently from every scan, auto-convert,
    and 
   the background job, from the Media Library row action.
 * New: automatic WebP-serving rules for images this plugin didn’t convert
    directly(
   theme assets, hardcoded template images) — an Apache installer that only ever
   writes to wp-content/uploads/.htaccess (never your site’s main .htaccess), plus
   a copyable Nginx snippet.
 * New: detects common offload/CDN plugins (WP Offload Media, WP-Stateless,
    etc.)
   and warns that local file operations may not match what’s actually served, since
   this plugin only reads/writes local disk.
 * New: optional auto-purge — automatically delete original files N days
    after 
   conversion, instead of relying on remembering to clean up manually. Off by default.
 * New: optional background conversion via WP-Cron — processes a small
    batch of
   pending images every 5 minutes so a large library finishes converting without
   needing the browser tab open. Off by default.
 * New: dashboard widget showing images converted, space saved, images
    still over
   100KB, and originals still awaiting review.
 * Security: centralized error logging. Real error detail (which can
    include server
   file paths, e.g. from Imagick exceptions) now only ever goes to the server’s 
   own debug log when WP_DEBUG_LOG is enabled – AJAX responses only ever contain
   short, generic messages. Also suppresses PHP error/warning display specifically
   during this plugin’s AJAX requests as defense in depth, and wraps every risky
   operation (compression, batch conversion, deletion) in try/catch so an unexpected
   failure can’t leak internals to the browser.

#### 1.4.0

 * New: scan filters on the Media Library optimizer. Choose which file
    types to
   include (JPG/PNG/GIF, individually), and optionally set a minimum file size so
   only images at or above that size are scanned – e.g. “only images over 100KB”–
   leaving smaller, already-lean images untouched. Unchecking the size filter scans
   images of every size, and checking every file type scans everything, so both “
   scan all” and narrower runs use the same controls.

#### 1.3.0

 * New: converting an image now automatically rewrites any existing pages
    or posts
   that link to the old file, pointing them at the new WebP file instead. This is
   a direct content rewrite – no redirects are created. It covers the full-size 
   image and every registered thumbnail size, and runs again as a safety check right
   before an original file is deleted (useful for images converted by an older version
   of the plugin).
 * New: “Manage converted images” replaces the old all-or-nothing delete
    tool. 
   It lists your converted images (by default only the ones still over 100KB), and
   lets you tick just the ones you want and delete only their originals – not the
   whole library at once.
 * New: per-image “Compress further” control. Pick a quality level with
    the slider
   and re-encode that single image on demand, without waiting for a full library
   re-scan. Uses the original file as the source when it’s still available for a
   cleaner result, and keeps the image at its current dimensions so it doesn’t jump
   back up to full resolution.

#### 1.2.0

 * Fix: the settings page is now registered as its own top-level “WebP
    Fetcher”
   menu item, so it’s easy to find in wp-admin instead of only appearing as a submenu
   under Media.
 * Fix: the admin page now always appears, even on servers missing
    Imagick/GD WebP
   support. Previously the whole menu item silently disappeared in that case; now
   the page loads and clearly explains the missing requirement, with the tools disabled
   until it’s resolved.
 * New: “Delete original files” tool. After converting your Media
    Library to WebP,
   once you’ve reviewed the results and are sure, you can permanently delete the
   leftover original JPG/PNG/GIF files to reclaim disk space. This requires ticking
   a confirmation checkbox plus a browser confirmation dialog, and only ever deletes
   files this plugin itself converted and recorded – never anything else.

## Meta

 *  Version **2.6.2**
 *  Last updated **7 ရက် ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/pixelcinch-image-optimizer/)
 *  [Advanced View](https://mya.wordpress.org/plugins/pixelcinch-image-optimizer/advanced/)

## Ratings

သုံးသပ်ချက် တစ်စုံတစ်ရာ တင်သွင်းထားခြင်း မရှိသေးပါ။

[Your review](https://wordpress.org/support/plugin/pixelcinch-image-optimizer/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/pixelcinch-image-optimizer/reviews/)

## Contributors

 *   [ M Tayyab Atta ](https://profiles.wordpress.org/tayyabatta/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/pixelcinch-image-optimizer/)