In regards to website performance, the single biggest mistake is not optimizing images. Let’s forget how page speed impacts SEO for a moment. Massive, high-resolution images are an anchor on your site. This kills page load times and leaves your website visitors frustrated. Performance is even more important for user experience (UX) than SEO, which is why page speed is so important to Salty Key.
There are dozens of free image optimizers available online, and a handful of WordPress plugins that will automatically optimize images (and bulk optimize images already uploaded) for you. But which are the best? We’ve done the research and we have the data to give you a definitive answer! Drumroll, please…
For clients that refuse to optimize images offline or via free online tools, this is your best bet. While there are many available plugins, we only choose plugins that included free plans/options. These are all highly recommended, have great reviews, and are well supported.
WP Smush was by far our biggest disappointment, since the plugin is highly recommended by some heavy hitters in the WordPress development community. Here are our gripes:
- WP Smush only optimizes images 1MB and under. That was far less than any of the other tested plugins. The next smallest was 5MB. The Pro version allows images up to 32MB, but the free version of Kraken IO’s plugin allowed that much.
- WP Smush does not optimize the original images you upload; it only optimizes the thumbnails generated by WordPress (usually four or five depending on your theme). You need to upgrade to the pro version to optimize the image at its original dimensions.
- WP Smush only allows lossless compression in the free version; lossy compression is reserved for Pro users.
Needless to say, WP Smush grades worse than the rest. The free version allows you to preserve the EXIF (metadata) of images, bulk optimize up to 50 images, and re-scale images upon upload. The free version sucks.
WP Smush Pro offers lossy compression with “up to 2x better compression with almost no visible drop in quality.” It also allows you to make (uncompressed) duplicates of your original image, “bulk smush” your entire library, and convert PNGs to JPEGs. It’s also compatible with NextGEN Gallery plugin, which is cool.
*WP Smush (free) does not require you to create an account to use the plugin. You can optimize unlimited images without needing to upgrade to a paid plan.
EWWW IO comes packed with features. While not all features are available to free users, EWWW still impressed us. Free users can choose between lossy and lossless compression for PNGs; only lossless compression for JPEGs. It also compresses GIFs. (Pro users can optimize PDFs as well.) The free version also allows you to preserve or remove EXIF metadata, bulk optimize previously uploaded images, reduce JPEG quality level (for increased savings), resize images upon upload (and previously uploaded images), convert PNGs to JPEGs, GIFs to PNGs, and more. So many options!
With the pro version, you can choose between five levels of compression for JPEGs and PNGs (“maximum lossy” and “maximum lossless” are reserved for the pro version). Check out the EWWW Image Optimizer paid plans for more information.
EWWW is compatible with NextGEN Gallery, GRAND Flash Album Gallery, and Foo Gallery, which is awesome. NextGEN Gallery is one of WordPress’s most popular plugins, and Foo Gallery is one of my favorites for image galleries.
NOTE: There’s a potential security issue with the free version of the EWWW plugin. The plugin requires the exec() function enabled in order to work properly. In simple terms, the exec() function allows you to run server-level commands via PHP. Not all web hosts will allow you to enable this function, as the security risks from allowing any plugin or theme to execute server-level commands are obvious.
*EWWW Image Optimizer (free) does not require you to create an account to use the plugin. You can optimize unlimited images without needing to upgrade to a paid plan.
Unlike the first two plugins, ShortPixel doesn’t have a completely free version. The free version gives you 100 images per month to optimize, but keep in mind that includes the WordPress-generated thumbnails for each image (plus the original image), so that gave us just short of 17 images per month to optimize. Not bad for a free plugin.
ShortPixel also comes loaded with features. Lossy and lossless compression, bulk optimize, the option to backup original images uploaded to the library, preservation of EXIF data, and a force-resize option for images. If you’re willing to pay for an image optimizing plugin, I’d give ShortPixel serious consideration.
*You must create an account before using the free version of ShortPixel.
TinyPNG is my personal favorite. From my experience, it gives the most consistent results when optimizing images.
The plugin is short on features. It allows you to choose which thumbnails to optimize (or not optimize) and change the dimensions of the images you upload and compress at that size. You can also opt to preserve some of the image metadata, like copyright info, GPS info, and creation date of the original image. That’s it. The free plan gives you 500 compressions per month (this includes the thumbnails — for most installs, that’s roughly 100 images+thumbnails compressions per month). If you need more than that, check out TinyPNG’s pricing information for a plan that fits you.
Additional features (available for free) include bulk optimization and optimizing WooCommerce product images. As far as performance, TinyPNG claims, “On average JPEG images are compressed by 40-60% and PNG images by 50-80% without visible loss in quality.”
*You must create an account before using the free version of TinyPNG.
Kraken.io gives you a quota of 100MB of uploads; once the plugin has optimized more than 100MB of images (this includes thumbnails), you will need to start paying. (Plans & Pricing.)
The free version (more accurately a trial version) gives you up to 32MB per upload, which is great. It also gives you lossless compression and lossy compression, the choice to preserve EXIF metadata, image resizing options, and lets you determine which thumbnails to optimize.
*You must create an account before using the free version of Kraken IO.
Imsanity’s primary feature is resizing media uploads to a maximum width or height, as well as resizing images already uploaded in the library. It also allows you to reduce the quality of JPEGs upon upload.
However, we excluded Imsanity for our final verdict. It’s a great plugin — lightweight, easy to use, and effective. It serves its purpose well without trying to do a thousand other (unnecessary) things. But we’re looking for a complete image optimization solution, and Imsanity doesn’t fit the bill.
Putting Them to the Test
For our research, we tested each plugin for JPEG and PNG uploads. For plugins that allowed both lossy and lossless compression, we tested results for both. We also included file savings for each thumbnail optimized.
Testing was done on a fresh install of WordPress and on a default WordPress theme (Twenty Sixteen).
NOTE: I lost some of the results when moving away from an old plugin I used to display table data. I’ve decided I’m going to run the tests again, so stay tuned!
Test No. 1: JPEGs
The first image we uploaded was a JPEG that was 753kb (dimensions 1715 x 1139 pixels). Here are the results:
I’m giving this round to ShortPixel. Both ShortPixel and Kraken edged out WP Smush and EWWW IO (albeit slightly) in lossless compression. Lossy compression was interesting. ShortPixel and TinyPNG did way better than Kraken compressing the original image, but TinyPNG did significantly better with the large image thumbnail than the rest. Kraken did the best optimizing the medium and small thumbnails. I gave this win to ShortPixel because that plugin resulted in the greatest file size savings of the bunch. But it was close!
Test No. 2: PNGs
The second image we uploaded was a PNG that was 937kb (dimensions 1649 x 935 pixels). The results were:
Very tough to choose between Kraken and TinyPNG. Unfortunately TinyPNG does not offer the choice between lossless and lossy compression; it offers “smart lossy compression” which makes the quality difference “nearly invisible” but delivers big results. They aren’t lying. TinyPNG easily offers the best lossy compression for PNGs. Kraken was the clear second-place finisher, with ShortPixel and EWWW IO jockeying for third place.
WP Smush performed terribly. I was shocked to see the plugin did almost nothing for PNGs.
I’m claiming TinyPNG the victor. It performed the best when measuring impact for both JPEGs and PNGs. If I was forced to pick a runner-up between ShortPixel and Kraken, I’d pick ShortPixel. Kraken, however, did well. Very strong optimizing PNGs, although I’m surprised it didn’t do better with JPEGs. EWWW IO scores major points for not having any limits on uploads and an impressive number of features.
WP Smush disappointed. I’m aware this is beginning to sound like a hit piece on WP Smush — and I swear it’s not — but I can’t give you a single reason to pick this plugin over any of the other options. If you want a plugin that’s completely free, choose EWWW IO. If you want maximum performance, pick any of the other three. WP Smush has over 500,000 downloads from the WordPress plugin repository — far more than TinyPNG (70,000+), Kraken IO (10,000+), and ShortPixel (20,000+). I’ve read blogs and reviews from reputable members of the WP development community, and it seems like they just presume that WP Smush is your best option for image compression. It’s time for people to rethink that.
What About Performance?
My performance review isn’t very thorough, but I did measure each one with the P3 plugin. The good news is that none of the plugins load any front-end scripts or external files, so it’s not like any of them will affect user performance.
Something to keep in mind with P3 (Plugin Performance Profiler) is that the results are relative; each plugin is graded by how much resource it consumes in relation to other plugins. A plugin can be well coded and still consume a large amount of server resources, especially if it contains a ton of functionality (Yoast SEO and WooCommerce are both examples). When tested EWWW IO and WP Smush were the most resource-intensive of the bunch, consuming more than twice as much resource as ShortPixel and more than 3x as much as TinyPNG. Kraken IO — according to P3 — is ultra-efficient; it barely registered on the performance scan.
I’m hesitant to include data from P3’s estimated impact on load times because, honestly, I don’t put much stock into its accuracy. A lot of outside factors can skew those reports, including server-side processes (especially important for those on shared hosting), whether or not the plugin is running during the time of the scan, a sudden traffic spike to your site during the scan, etc. As said some plugins are expected to affect load times, like analytics and security plugins.
That said, here are the highlights if you’re interested:
- ShortPixel had the greatest effect on memory usage (RAM) of all of the plugins. Second-most was EWWW IO followed by Kraken IO and WP Smush. TinyPNG had the least impact on memory usage.
- WP Smush, ShortPixel, and EWWW IO all competed for the title of biggest impact on site load and plugin load time. Kraken had the smallest impact and TinyPNG had the second-smallest.
- Continuing on a common theme here, WP Smush and EWWW IO had the most MySQL queries (calls to the database). The less queries the better. Kraken, once again, was the best. TinyPNG and ShortPixel did well, too.
Some plugins have built-in protocols to help improve performance. WP Smush says it uses WPMU DEV (the plugin developer) servers for image compression to offload the extra CPU load, while EWWW runs on your own server (as it says, to avoid waiting for 3rd-party servers to receive, optimize, and return images). EWWW also offers the paid EWWW Image Optimizer Cloud plugin, which optimizes images via 3rd-party cloud servers.
Also keep in mind that some of these plugins (EWWW, for example) log info regarding which images have been optimized in the database, which can become cumbersome for an image-heavy site.
If you’re looking to avoid the overhead of a plugin, there are dozens of online tools for resizing and optimizing images. PicResize.com can resize images for free, and PicMonkey is worth the cost if you want additional features, like adding filters to images.
For image optimization, several of the plugins we reviewed have free online services. TinyPNG, Kraken.io, and ShortPixel are all great. JPEGmini is also good for JPEGs. You will not lose any quality by opting for online tools over plugins (or vice versa).