EWWW Image Optimizer

Wordpress Plugin
Download latest - 6.1.4



Download Stats

Today 12,318
Yesterday 15,518
Last Week 86,076
All Time 8,884,368
Banner 772x250

The EWWW Image Optimizer will increase your page speeds by way of image optimization. Increased page speeds can result in better search engine rankings, and will also improve conversion rates (increased sales and signups). It will also save you storage space and bandwidth. While EWWW I.O. will automatically optimize new images that you upload, it can also optimize all the images that you have already uploaded, and optionally convert your images to the best file format. You can choose pixel perfect compression or high compression options that are visually lossless.

EWWW I.O. will optimize images uploaded and created by any plugin, and features special integrations with many popular plugins, detailed below.

Why use EWWW Image Optimizer?

  1. No Speed Limits and unlimited file size.
  2. Smooth Handling with pixel-perfect optimization using industry-leading tools and progressive rendering.
  3. High Torque as we bring you the best compression/quality ratio available with our lossy options for JPG, PNG, and PDF files.
  4. Adaptive Steering with intelligent conversion options to get the right image format for the job (JPG, PNG, or GIF).
  5. Free Parking The core plugin is free and always will be. However, our paid services offer up to 80% compression, and a host of other features!
  6. Comprehensive Coverage: no image gets left behind, optimize everything on your site, beyond just the WordPress Media Library.
  7. Safety First: all communications are secured with top SSL encryption.
  8. Roadside Assistance: top-notch support is in our DNA. While API customers get top priority, we answer every single support question with care.
  9. Pack a Spare: free image backups store your original images for 30 days.

Images can be optimized using tools on your own server for free (jpegtran, optipng, pngout, pngquant, gifsicle, cwebp), or can be optimized via specialized servers that utilize the best tools available in lossless or lossy mode. Our lossy compression uses unique algorithms to gain maximum compression while remaining visually lossless. Your images can even be converted to the most suitable file format using the appropriate options. Using the EWWW I.O. API will allow the plugin to work on any hosting platform, and can also be desirable if you cannot, or do not want to use the exec() function on your server, or prefer to offload the resource demands of optimization.

If you need a version of this plugin for API use only, see EWWW Image Optimizer Cloud. It is much more compact as it does not contain any binaries or any mention of the exec() function.

Automatic Everything

With Easy IO, images are automatically compressed, scaled to fit the page and device size, lazy loaded, and converted to the next-gen WebP format.


If you need assistance using the plugin, please visit our Support Page. The EWWW Image Optimizer is developed at https://github.com/nosilver4u/ewww-image-optimizer

Bulk Optimize

Optimize all your images from a single page using the Bulk Scanner. This includes the Media Library, your theme, and a handful of pre-configured folders (see Optimize Everything Else below). Officially supported galleries (GRAND FlaGallery, NextCellent and NextGEN) have their own Bulk Optimize pages.

Optimize Everything Else

Configure any folder within your WordPress folder to be optimized. The Bulk Scan under Media->Bulk Optimize will optimize theme images, BuddyPress avatars, BuddyPress Activity Plus images, Meta Slider slides, WP Symposium Pro avatars, GD bbPress attachments, Grand Media Galleries, and any user-specified folders. Additionally, this tool can run on an hourly basis via wp_cron to keep newly uploaded images optimized. Scheduled optimization should not be used for any plugin that uses the built-in Wordpress image functions.

Skips Previously Optimized Images

All optimized images are stored in the database so that the plugin does not attempt to re-optimize them unless they are modified. On the Bulk Optimize page you can view a list of already optimized images. You may also remove individual images from the list, or use the Force optimize option to override the default behavior. The re-optimize links on the Media Library page also force the plugin to ignore the previous optimization status of images.

WP Image Editor

All images created by the built-in WP_Image_Editor class will be automatically optimized. Current implementations are GD, Imagick, and Gmagick. Images optimized via this class include Animated GIF Resize, BuddyPress Activity Plus (thumbs), Easy Watermark, Hammy, Imsanity, MediaPress, Meta Slider, MyArcadePlugin, OTF Regenerate Thumbnails, Regenerate Thumbnails, Simple Image Sizes, WP Retina 2x, WP RSS Aggregator and probably countless others. If you are not sure if a plugin uses WP_Image_Editor, just ask.

WebP Images

Automatic WebP conversion with Easy IO, no additional configuration. Otherwise, can generate WebP versions of your images, and enables you to serve even smaller images to supported browsers. Several methods are available for serving WebP images, including Apache-compatible rewrite rules and our JS WebP Rewriting option compatible with caches and CDNs. Also works with the WebP option in the Cache Enabler plugin from KeyCDN.


Allows you to run all Bulk Optimization processes from your command line, instead of the web interface. It is much faster, and allows you to do things like run it in 'screen' or via regular cron (instead of wp-cron, which can be unpredictable on low-traffic sites). Install WP-CLI from wp-cli.org, and run 'wp-cli.phar help ewwwio optimize' for more information or see the Docs.


All images uploaded and cached by FooGallery are automatically optimized. Previous uploads can be optimized by running the Media Library Bulk Optimize. Previously cached images can be optimized by entering the wp-content/uploads/cache/ folder under Folders to Optimize and running a Scan & Optimize from the Bulk Optimize page.

NextGEN Gallery

Features optimization on upload capability, re-optimization, and bulk optimizing. The NextGEN Bulk Optimize function is located near the bottom of the NextGEN menu, and will optimize all images in all galleries. It is also possible to optimize groups of images in a gallery, or multiple galleries at once.

NextCellent Gallery

Features all the same capability as NextGEN, and is the continuation of legacy (1.9.x) NextGEN support.

GRAND Flash Album Gallery

Features optimization on upload capability, re-optimization, and bulk optimizing. The Bulk Optimize function is located near the bottom of the FlAGallery menu, and will optimize all images in all galleries. It is also possible to optimize groups of images in a gallery, or multiple galleries at once.

Image Store

Uploads are automatically optimized. Look for Optimize under the Image Store (Galleries) menu to see status of optimization and for re-optimization and bulk-optimization options. Using the Bulk Optimization tool under Media Library automatically includes all Image Store uploads.

CDN Support

WP Offload Media is the officially supported (and recommended) plugin for uploads to Amazon S3 and Digital Ocean Spaces. We also support the Azure Storage and Cloudinary plugins. All pull mode CDNs like Cloudflare, KeyCDN, MaxCDN, and Sucuri CloudProxy work automatically, but will require you to purge the cache after a bulk optimization.

WPML Compatible

Tested regularly to ensure compatibility with multilingual sites. Learn more at https://wpml.org/plugin/ewww-image-optimizer/


Huge thanks to all our translators! See the full list here: https://translate.wordpress.org/projects/wp-plugins/ewww-image-optimizer/contributors

If you would like to help translate this plugin (new or existing translations), you can do so here: https://translate.wordpress.org/projects/wp-plugins/ewww-image-optimizer To receive updates when new strings are available for translation, you can signup here: https://ewww.io/register/

Releases (38 )

Version Release Date Change Log
5.3.2 2020-05-21
  • added: defer jQuery also with EXACTDN_DEFER_JQUERY override
  • added: Lazy Load supports VC grid layouts retrieved via AJAX
  • fixed: Lazy Load and JS WebP prevent loading of images in oEmbed endpoint
  • fixed: jQuery exclusion was preventing deferral of jQuery extensions also
  • fixed: Lazy Load parsing Owl Lazy images
  • fixed: Easy IO adds srcset/sizes to feeds
  • fixed: filename in attachment metadata not updated for duplicate thumbnails after conversion success
  • fixed: notices for undefined variables during bulk optimize
5.3.1 2020-05-05
  • added: defer JS with Easy IO via EXACTDN_DEFER_SCRIPTS override
  • fixed: warning related to user-defined exclusions in JS and picture WebP
  • fixed: AMP compatiblity for Lazy Load and WebP rewriters was broken
  • fixed: images not loading on WPURP/WPRM print recipe pages
5.3.0 2020-04-29
  • added: Easy IO replaces image URLs within style elements for page builders like Elementor and Divi
  • added: option to use tags for WebP rewriting
  • added: ability to define exclusions for JS WebP and WebP
  • added: include .webp images when using WP Offload Media to copy images from bucket to server
  • added: cleanup/migration tool for folks using EWWW IO 3+ years to remove old metadata entries
  • added: fetch original_image for optimization when local images are removed (WP Offload Media and Microsoft Azure Storage for WordPress)
  • changed: scheduled optimizer uses async/background mode to prevent timeouts
  • changed: images that exceed the max resize dimensions will be queued by the bulk scanner even if previously compressed
  • changed: for security, EWWW IO will only optimize images within the WP root folder, content folder, or uploads folder
  • changed: WebP Only mode will bypass the check for TinyPNG compression
  • changed: background/async mode uses better queueing system for speed and reliability
  • changed: image queue information moved to Tools page
  • changed: image re-opt troubleshooting moved to Tools page
  • fixed: noresize in filename has no effect when using Media File Renamer
  • fixed: debug_message() throws a warning with non-string values
  • fixed: notices when uploading animated GIFs using GD
  • fixed: notices when parsing JSON data from Envira
  • fixed: fatal error when a WP_Error is passed from Envira to Easy IO
  • fixed: executables could not be installed on Windows due to behavior of is_executable() on directories
  • fixed: Include All Resources rewrites wrong URLs when quotes are html-encoded
  • fixed: tags do not follow Lazy Load exclusions
  • fixed: tags broken when exluding images from Lazy Load
  • fixed: Azure storage plugin doesn't re-upload optimized images
5.2.5 2020-04-01
  • removed: data-pin-media attribute, as Pinterest is handling WebP images properly now
5.1.4 2020-01-07
  • fixed: warnings on FlaGallery's manage gallery page
  • fixed: cwebp version test results in false-positives
  • fixed: EWWW IO resize limits are ignored when higher than WP default
  • fixed: PNGOUT warning during one-click conversion
  • fixed: WebP images not removed from remote storage when an attachment is deleted (WP Offload Media)
  • fixed: after running regen for single thumbs with Image Regenerate & Select Crop plugin, regenerated images were not automatically optimized
5.1.1 2019-10-17
  • fixed: no optimization when escapeshellarg() is disabled
  • fixed: warning thrown by implode() when JS WebP is enabled with no WebP URLs
5.1.0 2019-10-16
  • added: WebP-only mode for Bulk Optimizer
  • added: JS WebP Rewriting for pull-mode CDNs via WebP URLS without Force WebP
  • added: JS WebP Rewriting zero-conf for WP Offload Media
  • added: force lossy PNG to WebP conversion with EWWW_IMAGE_OPTIMIZER_LOSSY_PNG2WEBP override (set to true)
  • changed: bulk optimizer runs wp_update_attachment_metadata() in separate request to avoid timeouts
  • fixed: WebP warning regarding missing modules displayed even if green WebP test image is working
  • fixed: Nextgen bulk actions not working
  • fixed: unable to regenerate existing thumbnails with Image Regenerate & Select Crop plugin
  • updated: WebP (cwebp) binary to version 1.0.3
  • updated: Pngquant binary to version 2.12.5
  • updated: cwebp requires Mac OS X 10.14
  • updated: FreeBSD 10 is EOL, version 11 is the supported/tested version
5.0.0 2019-09-26
  • added: use native lazy load attributes to supplement lazy loader and make placeholders more efficient
  • added: GCS sub-folder rewriting with ExactDN for cleaner URLs
  • added: option to optimize original versions of scaled images for WP 5.3
  • added: ability to erase optimization history from Tools page
  • changed: define EWWWIO_WPLR_AUTO (any value) to enable auto-optimize on images from WP/LR Sync
  • changed: thumbnails could be converted even if original was not
  • changed: Show Optimized Images table moved to Tools menu
  • fixed: full-size image optimization not deferred if scaled by WP 5.3
  • fixed: data-width and data-height attributes missing when JS WebP active
  • security: rewrote escapeshellarg() wrapper to be more secure
4.9.3 2019-09-10
  • fixed: ExactDN incorrectly scales Elementor background images rather than cropping
  • fixed: ExactDN cannot work with Divi/Elementor background images due to use of external CSS files
  • fixed: JS WebP rewriting picture tags that already have WebP markup in Force WebP mode
  • fixed: JS WebP incorrectly parses GIF/SVG images in Force WebP mode
  • fixed: JS WebP does not support lazy load + infinite scroll
  • fixed: Lazy Load auto-scaling breaks if background image is enclosed in encoded quotes
  • fixed: GRAND FlaGallery integration broken by hook suffix change
4.8.1 2019-07-03
  • added: Lazy Load background image support added for span elements
  • changed: constrain by height for background images that are taller than they are wide
  • changed: debug.log moved to more suitable location
  • fix: Lazy Load breaks when an image has an empty class attribute
  • fix: regression that caused jpegtran and pngout tests to fail on Windows
  • fix: writing to debug.log causes errors
4.8.0 2019-06-05
  • added: ability to resize images outside media library via scheduled or bulk optimization
  • added: compatibility with WP Stateless for GSC
  • added: use ewww_image_optimizer_autoconvert_threshold filter to modify conversion threshold (default of 300kb)
  • changed: Lazy Load without ExactDN uses blank PNG placeholders for better srcset auto-sizing
  • changed: API backups taken prior to resizing/scaling rather than just before compression
  • changed: ExactDN + Lazy Load uses scaling rather than cropping by default
  • changed: prevent NextGEN backup images from being optimized
  • fixed: bulk optimizer not resuming when non-media library images remain in queue
  • fixed: notices when a user-selected admin theme is unavailable
  • fixed: privacy policy function triggers notices in WP-CLI
  • fixed: background-image attributes with single-quotes now supported by ExactDN, Lazy Load, and JS WebP
  • fixed: background-image attributes getting extra arguments with lazy load
  • fixed: On multi-site installs, site admins could add folders to optimize outside of the uploads folder
  • fixed: LQIP with SVG files results in duplicate requests
  • fixed: image optimization results in media library report file missing when using WP Stateless
  • fixed: plugin checking for 'nice' on Windows servers
4.7.4 2019-05-07
  • fixed: ExactDN modifies Autoptimize CDN setting even when Include All Resources is disabled
  • fixed: noscript elements with newlines being parsed incorrectly by Lazy Load and JS WebP
  • fixed: Lazy Load parsing breaking img elements in script blocks
  • fixed: Lazy Load and JS WebP bail when SVGs are wrapped in XML tags
  • fixed: ExactDN mixes x and w srcset descriptors
  • fixed: page parsers (ExactDN, Lazy, JS WebP) still fail to process some img elements that have unquoted src attributes
4.7.3 2019-04-18
  • added: disable WebP script block on certain pages by defining EWWW_IMAGE_OPTIMIZER_NO_JS as true
  • changed: use SVG inline image placeholder if width and height are known when LQIP is disabled or ExactDN is not available
  • changed: Lazy Load ignores images using browser-native loading attribute
  • fixed: page parsers (ExactDN, Lazy, JS WebP) do not properly handle attributes that start on a new line
  • fixed: page parsers do not recognize img elements with unquoted attributes
  • fixed: uninstaller cannot clear queue table due to undefined table name
  • fixed: implode throws notice when image sizes array is multi-dimensional
  • fixed: srcset url replaced incorrectly when using pixel density descriptors
  • fixed: srcset url added with 0 width when width attribute is empty
4.7.2 2019-04-02
  • changed: JS WebP no longer necessary with ExactDN
  • fixed: fatal error from NextGEN get_image_sizes() method
  • fixed: debugging mode gets stuck
  • fixed: ExactDN has unexpected results when content_width global equals zero
  • fixed: img elements with unquoted src attributes ignored by ExactDN, Lazy Load, and JS WebP
4.7.1 2019-03-26
  • added: CSS background image support for
  • elements
  • added: ExactDN + Lazy Load will auto-calculate dimensions for img elements without srcset/responsive markup
  • added: ExactDN parses thumbnail url for personalization.com + WooCommerce integration
  • added: ExactDN can use data-actual-width attribute for srcset generation
  • added: ExactDN + Lazy Load uses devicePixelRatio to provide clearer background images
  • fixed: Lazy Load for CSS background images misfires when display height is greater than width
  • fixed: visitors without JS see Lazy Load placeholder + fallback image
4.7.0 2019-03-19
  • added: lazy load (on ExactDN tab for now)
  • added: JS WebP supports background images via lazy load (div elements only for now)
  • added: ExactDN supports compression of background images (div elements only for now)
  • added: compat with Google Cloud Storage via WP Offload Media
  • added: automatic PNG to JPG conversion for ExactDN
  • added: ExactDN parsing for legacy WooCommerce API (current API works as-is)
  • changed: responsive image 'sizes' attribute can be auto-calculated by lazy load
  • changed: JS WebP no longer requires jQuery
  • changed: ExactDN srcset multipliers include fullscreen value of 1920px
  • changed: force resize function to ignore filesize with ewww_image_optimizer_resize_filesize_ignore filter
  • changed: prevent .php script/style generators from going through ExactDN
  • changed: ExactDN sites can dismiss exec notice to disable local compression
  • changed: automatic compression disabled during WooCommerce regen with admin notice
  • changed: use wp_resource_hints filter to include ExactDN dns-prefetch earlier in the page header
  • changed: gather debugging information on settings page even when debugging is not enabled yet
  • fixed: Bulk Optimize scanner does not update queue in some cases
  • fixed: ExactDN does not handle themes that support wide and full-screen images in block editor
  • fixed: ExactDN constrains images to 640px in Twenty Nineteen theme
  • fixed: ExactDN mangles Flatsome lazy load placeholder image URL
  • fixed: empty attributes not recognized properly by HTML parser, resulting in broken markup
  • fixed: table nav button styling broken in WP 5.1
  • fixed: ExactDN applies resizing args during image_downsize() even when full/original image is too small
  • fixed: animated GIF resizing breaks the use of image_resize_dimensions filter in WP_Image_Editor_GD
  • fixed: NextGen bulk optimizer unable to decode meta_data
4.6.3 2019-02-12
  • changed: folders to ignore setting applies to resizing also
  • fixed: lazy load placeholders have inconsistent URLs with ExactDN
  • fixed: bulk resume indicator gets stuck
  • fixed: bulk scanning queue gets out of sync and skips images
  • fixed: async processing does not handle memory limit specified in G (gigabytes)
4.6.2 2019-01-31
  • changed: API key may be defined as EWWW_IMAGE_OPTIMIZER_CLOUD_KEY
  • fixed: if img tag is missing dimensions, ExactDN sometimes loads original rather than existing thumbnail
  • fixed: TinyPNG/TinyJPG images skipped when Force Re-optimize is checked
4.6.1 2019-01-24
  • added: automatic configuration for ExactDN + WP Offload Media
  • fixed: bulk action from media library skipping last attachment in selection
  • fixed: uninstall function throws fatal error preventing deletion
4.6.0 2019-01-15
  • added: preserve animations in GIF images during resize operations for sites using Imagick extension
  • changed: EXACTDN_EXCLUDE applies to all resources, including images, CSS, JS, fonts, etc.
  • changed: API/ExactDN preserves color profiles, even when removing image metadata
  • changed: new queue table for bulk optimizer to avoid exceeding max packet size for MySQL
  • changed: unit tests run on PHP 7.3 also
  • fixed: too many settings updates when trying to prevent slow queries
  • fixed: ExactDN rewrites urls to static HTML files
  • fixed: ExactDN skips 1x url in some cases, causing browser upscaling
  • fixed: PHP notice when EXACTDN_EXCLUDE is defined
  • fixed: race condition in Alt WebP prevents Webp derivatives from replacing the originals
4.5.3 2018-12-06
  • fixed: ExactDN duplicates srcset instead of replacing it
  • security: remote code execution, low exposure
4.5.2 2018-11-29
  • added: automatic migration to move image paths from absolute to relative
  • changed: default quality for PNG to JPG did not match WordPress default
  • fixed: legacy absolute paths not matched during bulk scanner when relative matching is enabled
  • fixed: PNG to JPG auto-convert produces larger JPG images in some cases
4.5.1 2018-11-20
  • changed: optimization results are tracked by relative urls instead of absolute ones for better portability, migration tool coming soon
  • changed: ExactDN defaults to crop when explicit dimensions are given to image_downsize(), revert to scaling with EXACTDN_IMAGE_DOWNSIZE_SCALE
  • fixed: WooCommerce thumbnail regeneration triggers excessive admin-ajax requests within EWWW IO
  • fixed: ExactDN filtering REST API media endpoint for Gutenberg editor requests
  • fixed: ExactDN adding unneeded resize parameters to full-size image urls
  • fixed: Alt WebP skipping images with query strings
  • fixed: Alt WebP not working with Jetpack Lazy Load for images missing srcset
  • fixed: Show Optimized Images table does not display images saved to ewwwio_images table with relative path matching
  • fixed: Show Optimized Images table has broken thumbs when WP_CONTENT_DIR is outside of ABSPATH
4.5.0 2018-11-08
  • added: Alt WebP supports BJ Lazy Load, a3 Lazy Load, WP Rocket Lazy Load, Jetpack Lazy Load, and WP Retina Lazy Load
  • added: ExactDN rewrites relative image urls that start with a single slash
  • changed: ExactDN srcset markup for smaller images improved
  • fixed: errors during upload/download with WP Offload Media
  • fixed: Alt WebP refuses to process page when FB tracking pixel is present
  • fixed: SVG files within tags throw errors with ExactDN
  • fixed: thumbnail generation fails with S3 Uploads plugin
  • fixed: unable to modify WebP conversion option when ExactDN is enabled
  • fixed: ExactDN inserts full-size image without arguments
  • removed: PHP 5.5 no longer supported
4.4.2 2018-10-11
  • added: notice for Pantheon users that an API key is required
  • added: ExactDN fully supports protocol-relative urls for non-image resources
  • changed: better lazy load support in ExactDN
  • fixed: optimization failure produces rename() errors
  • fixed: folder scanner ignores files with no extension
  • fixed: Alt WebP blocks on Facebook tracking pixel
  • fixed: ExactDN srcset functions cause duplicate image requests with zoom=1
  • fixed: ExactDN srcset fill adds double arguments to urls
  • fixed: srcset fill generates notices with non-numeric widths
  • fixed: bulk scanner stuck in resume mode with nothing to do
4.4.1 2018-09-25
  • fixed: ExactDN srcset fill replaces images with first image on page
4.4.0 2018-09-25
  • added: preserve animations in GIF images during resize operations
  • added: ExactDN will fill in srcset/sizes attributes for all images based on detected width for better mobile support
  • added: configuration options in the settings page for several "hidden" ExactDN options
  • changed: Alt WebP still depends on jQuery, but jQuery can be loaded in async or defer mode
  • changed: Remove Metadata option has been renamed, if you previously had it configured as an override (JPEGTRAN_COPY), please use the new name: EWWW_IMAGE_OPTIMIZER_METADATA_REMOVE
  • changed: ExactDN uses premium compression by default
  • fixed: regression with ExactDN and max-width style attributes
  • fixed: WP esc_url mangles ExactDN urls
  • fixed: WebP images missing from S3 when using WP Offload S3
  • fixed: PDF uploads with S3 Uploads plugin
  • deprecated: PHP 5.5 support will be removed in the next major release (version 4.5)
  • removed: PHP 5.4 no longer supported
4.3.2 2018-08-28
  • changed: prevent dynamic JS/CSS urls within wp-admin/ from being rewritten by ExactDN
  • fixed: auto-convert PNG to JPG was running on images with transparency
  • fixed: Alt WebP broken on sites that have jquery-migrate disabled
4.3.1 2018-08-14
  • fixed: fatal error on older WP versions due to missing privacy policy function
4.3.0 2018-08-14
  • added: Alt WebP enables instant conversion with ExactDN, no need for bulk optimize
  • added: links within settings and other notices for contextual help
  • added: auto-convert large PNG images to JPG during upload, define EWWW_IMAGE_OPTIMIZER_DISABLE_AUTOCONVERT to skip
  • added: use file modification time to add query strings on JS/CSS files for cache invalidation on ExactDN
  • added: use EXACTDN_EXCLUDE in wp-config.php to bypass ExactDN for JS, CSS, etc.
  • added: NextGEN image urls properly rewritten for ExactDN
  • added: NextGEN dynamic thumbs included during manual/bulk optimization
  • added: auto-installer for Cloud plugin when running EWWW IO on a "banned" webhost
  • added: suggested privacy policy text for users of the API and ExactDN
  • added: detect wordpress.com sites and disable exec function and binaries
  • changed: resizing uses the primary media dimensions unless the "other" dimensions are configured
  • changed: Resize Other Images removed from GUI, configure via Overrides tab
  • changed: filter NextGEN quality to prevent oversized thumbs
  • changed: allow crop via filter even when one dimension is the same as the original
  • changed: auto-rotate function disabled with EWWW_IMAGE_OPTIMIZER_DISABLE_AUTOROTATE
  • changed: one-click copy for debug info, and debug collapsed by default in media library and bulk results
  • changed: bulk operations for batches of NextGEN images now use the bulk optimizer page instead of loading inline
  • fixed: thumbs not generated during WP/LR Sync
  • fixed: uploading images in the Gutenberg editor uses the wrong resize dimensions
  • fixed: unique filename function producing names with a hyphen and no digits
  • fixed: encoded ampersands within the path portion of a url prevent ExactDN parsing
  • fixed: entering a decimal for bulk delay does nothing
  • fixed: if urls on a localized WPML domain are using the default domain, ExactDN ignores them
  • fixed: toggle for plugin status and bulk status generate admin-ajax.php 403 errors
  • fixed: PNGOUT installer confirmation notice was missing
  • deprecated: PHP 5.4 support will be removed in the next major release (version 4.4)
4.2.3 2018-07-10
  • added: skip resizing for images with noresize in the filename
  • added: notice about plugins that remove query strings when ExactDN is active
  • changed: cache busting for ExactDN uses theme directory modified time with fallback to EWWW IO version
  • fixed: exactdn test verification attempts to access WP_Error as an array
4.2.2 2018-06-20
  • added: view pages with ExactDN or the entire plugin disabled via GET paramaters: ewwwio_disable and exactdn_disable
  • changed: moved to v2 quota endpoint for API
  • changed: S3 uploads no longer deferred until after optimization by default, define EWWW_IMAGE_OPTIMIZER_DEFER_S3 as true to override
  • changed: image editor extensions can be disabled separately from media library optimization via EWWW_IMAGE_OPTIMIZER_DISABLE_EDITOR
  • changed: use exactdn url instead of standard API url for verification simulation and fallback
  • fixed: async test outputs unescaped html on settings page when debugging enabled
  • fixed: debugging uses extra memory when dumping output to file
  • fixed: json_encode dies silently when passing non-utf8 data, results in AJAX/bulk errors
  • fixed: disabled auto-optimization bypassed for resizes when max dimensions are set
  • fixed: NextGEN support disabled for version 3
  • fixed: progressbar color does not match admin theme for NextGEN/Nextcellent
  • fixed: optimization details overlay styling missing for NextGEN with some locales
  • fixed: FlAGallery batch optimization from Manage Galleries/Images broken
  • fixed: undefined variable notices for resize detection and forced re-optimization
  • updated: PEL library for maintaining metadata during JPG auto-rotation
4.2.1 2018-05-07
  • fixed: EXACTDN_LOCAL_DOMAIN does not work with auto-verification
  • fixed: uncaught error during upgrade when 'SHOW FULL COLUMNS' fails
  • fixed: async simulation gets 403 error
4.2.0 2018-05-03
  • added: disable ExactDN attachment ID queries if they take too long
  • added: ExactDN compatibility with a3 Lazy Load
  • added: ability to re-test async/background mode if it gets disabled
  • changed: better compatibility between Autoptimize and ExactDN
  • changed: .webp files removed when restoring original from API
  • changed: Force re-optimize checkbox persists up to an hour if bulk optimizer is interrupted
  • fixed: CSS, JS, and other resources could be skipped by ExactDN in certain circumstances
  • fixed: Jupiter theme captcha incompatible with ExactDN
  • fixed: prevent calls to php_uname when it is disabled
  • fixed: MacOS X installer for PNGOUT
  • fixed: prevent notices due to empty output from exec()
  • fixed: ExactDN fails to crop when image_downsize() is called with explicit dimensions
  • fixed: ExactDN breaks image resizing with Themify themes
  • fixed: multi-site settings throws error during submission when ExactDN is active
  • fixed: single-site override option displayed when plugin activated per-site
  • removed: PHP 5.3 no longer supported
4.1.3 2018-04-12
  • fixed: infinite loop when removing invalid API key
  • fixed: img elements with incorrect attachment ID being replaced with wrong image src
  • fixed: ExactDN CSS and JS parsing incompatible with Autoptimize
4.0.6 2018-01-03
  • changed: dummy images have no args appended with exactdn except for ssl flag
  • fixed: resize_detection.js being combined with other scripts by Autoptimize
  • fixed: retina optimization not deferred in async mode
  • fixed: PDF files could trigger license exceeded message
  • fixed: binary detection not fully functional with MacOS and PHP 7.2
  • fixed: compatibility with Regenerate Thumbnails version 3
3.6.1 2017-08-11
  • fixed: bulk optimizer fails to initialize if the bulk_attachments array is set to an empty string
  • fixed: misplaced parenthesis breaks option overrides
3.5.1 2017-07-20
  • added: optional help beacons on bulk and settings pages
  • added: disable deferring of WP Offload S3 uploads with EWWW_IMAGE_OPTIMIZER_NO_DEFER_S3
  • added: override use of wp_add_inline_script with non-standard jQuery by defining EWWW_IMAGE_OPTIMIZER_WEBP_INLINE_FALLBACK
  • fixed: javascript for bulk optimizers in NextGEN, NextCellent and FlaGallery