Reduce image file sizes and improve performance for images within WordPress including NextGEN Gallery. Uses jpegtran, optipng, and gifsicle.
|Author:||Shane Bishop (profile at wordpress.org)|
|WordPress version required:||4.6|
|WordPress version tested:||4.9.8|
|Added to WordPress repository:||07-06-2012|
|Total downloads:||9 660 558|
|Active installs:||600 000+|
Click to start download
Plugin settings page.
Additional optimize column added to media listing. You can see your savings, manually optimize individual images, and restore originals (converted only).
Bulk optimization page. You can optimize all your images at once and resume a previous bulk optimization. This is very useful for existing blogs that have lots of images.
- Upload the “ewww-image-optimizer” plugin to your /wp-content/plugins/ directory.
- Activate the plugin through the ‘Plugins’ menu in WordPress.
- The plugin will attempt to install jpegtran, optipng, and gifsicle automatically for you. This requires that the wp-content folder is writable by the user running the web server.
- If the binaries don’t run locally, you can sign up for the EWWW IO cloud service to run them via our optimization servers: https://ewww.io/plans/
- Recommended Visit the settings page to enable/disable specific tools and turn on advanced optimization features.
If these steps do not work, additional documentation is available at https://docs.ewww.io/article/6-the-plugin-says-i-m-missing-something. If you need further assistance using the plugin, please visit our Support Page.
To find out if your webhost works with the EWWW Image Optimizer, you can check the official list.
Google Pagespeed says my images need compressing or resizing, but I already optimized all my images. What do I do?
Try this for starters: https://docs.ewww.io/article/5-pagespeed-says-my-images-need-more-work
The plugin complains that I’m missing something, what do I do?
This article will walk you through installing the required tools (and the alternatives if installation does not work): https://docs.ewww.io/article/6-the-plugin-says-i-m-missing-something
Does the plugin replace existing images?
Yes, but only if the optimized version is smaller. The plugin should NEVER create a larger image.
Can I resize my images with this plugin?
Yes, you can, set it up on the Resize tab.
Can I lower the compression setting for JPGs to save more space?
The lossy JPG optimization using the API will determine the ideal quality setting and give you the best results, but you can also adjust the default quality for conversion and resizing. More information: https://docs.ewww.io/article/12-jpq-quality-and-wordpress
The bulk optimizer doesn’t seem to be working, what can I do?
See https://docs.ewww.io/article/39-bulk-optimizer-failure for full troubleshooting instructions.
What are the supported operating systems?
I’ve tested it on Windows (with Apache), Linux, Mac OSX, FreeBSD 9, and Solaris (v10). The cloud API will work on any OS.
How are JPGs optimized?
Lossless optimization is done with the command jpegtran -copy all -optimize -progressive -outfile optimized-file original-file. Optionally, the -copy switch gets the ‘none’ parameter if you choose to strip metadata from your JPGs on the options page.
How are PNGs optimized?
There are three parts (and all are optional). First, using the command pngquant original-file, then using the commands pngout-static -s2 original-file and optipng -o2 original-file. You can adjust the optimization levels for both tools using the Overrides. Optipng is an automated derivative of pngcrush, which is another widely used png optimization utility.
How are GIFs optimized?
Using the command gifsicle -b -O3 –careful original file. This is particularly useful for animated GIFs, and can also streamline your color palette. That said, if your GIF is not animated, you should strongly consider converting it to a PNG. PNG files are almost always smaller, they just don’t do animations. The following command would do this for you on a Linux system with imagemagick: convert somefile.gif somefile.png
I want to know more about image optimization, and why you chose these options/tools.
That’s not a question, but since I made it up, I’ll answer it. See these resources:
- Feature requests can be submitted via https://ewww.io/contact-us/ and commented on here: https://trello.com/b/Fp81dWof/ewww-image-optimizer
- If you would like to help translate this plugin in your language, get started here: https://translate.wordpress.org/projects/wp-plugins/ewww-image-optimizer/
- 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: 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)
- 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
- 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
- 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
- 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
Please refer to the separate changelog.txt file.