EWWW Image Optimizer

Description

The EWWW Image Optimizer will increase your page speeds by way of image optimisation. 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 optimise new images that you upload, it can also optimise 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 optimise 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. Using automatic Background Optimisation and optional Parallel Optimisation, get rid of upload delays and get back to doing what you love.
  2. Smooth Handling with pixel-perfect optimisation 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. Additionally, if you choose the API, you never pay for an image we can’t compress, you are never billed for a month you do not use the API, and pre-paid credits never expire. Plus, get WebP image generation at no extra cost: any JPG or PNG can be converted to Google’s next-generation image format.
  6. Comprehensive Coverage: no image gets left behind, optimise 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 optimised using tools on your own server for free (jpegtran, optipng, pngout, pngquant, gifsicle, cwebp), or can be optimised via specialized servers that utilise 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 optimisation.

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

Automatic Resizing

With ExactDN support, images will be automatically resized to fit the page and device size. ExactDN also enables basic retina support and automatic compression.

Support

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 Optimise

Optimise 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 Optimise Everything Else below). Officially supported galleries (GRAND FlaGallery, NextCellent and NextGEN) have their own Bulk Optimise pages.

Optimise Everything Else

Configure any folder within your WordPress folder to be optimised. The Bulk Scan under Media->Bulk Optimize will optimise 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 optimised. Scheduled optimisation should not be used for any plugin that uses the built-in WordPress image functions.

Skips Previously Optimised Images

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

WP Image Editor

All images created by the built-in WP_Image_Editor class will be automatically optimised. Current implementations are GD, Imagick, and Gmagick. Images optimised 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 ExactDN, 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.

WP-CLI

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.

FooGallery

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

NextGEN Gallery

Features optimisation on upload capability, re-optimisation, and bulk optimising. The NextGEN Bulk Optimise function is located near the bottom of the NextGEN menu, and will optimize all images in all galleries. It is also possible to optimise 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 optimisation on upload capability, re-optimisation, and bulk optimising. The Bulk Optimise function is located near the bottom of the FlAGallery menu, and will optimise all images in all galleries. It is also possible to optimise groups of images in a gallery, or multiple galleries at once.

Image Store

Uploads are automatically optimised. Look for Optimise under the Image Store (Galleries) menu to see status of optimisation and for re-optimisation and bulk-optimisation options. Using the Bulk Optimisation 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 optimisation.

WPML Compatible

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

Translations

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/

Contact and Credits

Written by Shane Bishop. Based upon CW Image Optimizer, which was written by Jacob Allred at Corban Works, LLC. CW Image Optimizer was based on WP Smush.it. Jpegtran is the work of the Independent JPEG Group. PEL is the work of Martin Geisler, Lars Olesen, and Erik Oskam. ExactDN class based upon the Photon module from Jetpack.

Screenshots

  • Plugin settings page.
  • Additional optimise column added to media listing. You can see your savings, manually optimise individual images, and restore originals (converted only).
  • Bulk optimisation page. You can optimise all your images at once and resume a previous bulk optimisation. This is very useful for existing blogs that have lots of images.

Installation

  1. Upload the “ewww-image-optimizer” plugin to your /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. 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.
  4. If the binaries don’t run locally, you can sign up for the EWWW IO cloud service to run them via our optimisation servers: https://ewww.io/plans/
  5. Recommended Visit the settings page to enable/disable specific tools and turn on advanced optimisation features.
  6. Done!

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.

Webhosts

To find out if your webhost works with the EWWW Image Optimizer, you can check the official list.

FAQ

Google Pagespeed says my images need compressing or resizing, but I already optimised 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 optimised 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 optimisation 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 optimiser 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 (8 and 9), and Solaris (v10). The cloud service will run on any OS.

How are JPGs optimised?

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 optimised?

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 optimisation levels for both tools using the Overrides. Optipng is an automated derivative of pngcrush, which is another widely used png optimisation utility.

How are GIFs optimised?

Using the command gifsicle -b -O3 –careful original file. This is particularly useful for animated GIFs, and can also streamline your colour 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 optimisation, 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:
https://developers.google.com/speed/docs/insights/OptimizeImages
http://developer.yahoo.com/performance/rules.html#opt_images

Reviews

+70% Webpage speed

This plugin works very well. I tried different one but that one has a really positive impact on my webpage speed. Images are cropped the size I have decided and image compression works very well. I have combined it to FileBird extension to organize my Media in different Folders.

Really good!

I was beginning to have a breakdown with my site and this plugin and W3 Total Cache put my site online again. Thank you so much for your hard work!

Best way to automatically add webp support

Helps with load time/Google Pagespeed Insight score. Excellent configuration options and can run without adding overhead to every page load. Their webp conversion service (optional) is very affordable and works well. Will use it for future projects.
Read all 363 reviews

Contributors & Developers

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

Contributors

“EWWW Image Optimizer” has been translated into 22 locales. Thank you to the translators for their contributions.

Translate “EWWW Image Optimizer” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change log

  • Feature requests can be viewed and submitted at https://github.com/nosilver4u/ewww-image-optimizer/labels/enhancement
  • 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/

4.8.0

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

Earlier versions

Please refer to the separate changelog.txt file.