71 Comments

  1. Great article Matt! Love the comparison, I’ll have to give Tiny PNG a try. I just use Imsanity (very popular plugin) and whatever it’s default compression is, never thought to redo compression on already compressed images, to see if I can squeeze more bytes out. I’d love to see how Imsanity compares.

    1. Hey Rob, thanks for the kind words. Imsanity doesn’t actually compress your images. It resizes them. Basically, think about an end-user who uploads their images straight from their camera. Why does your server need all those gigantic images? They don’t. At the most they probably need nothing more than 960px wide, or 1600 if they have a full-width design. So Imsanity just shrinks the original image to that maximum size to save bandwidth and server space and prevent users from inserting really large images into their content posts. It’s an excellent tool that serves a different purpose.

      1. I believe Imsanity does compression, at least for JPGs. It has a “JPG image quality” setting that changes the quality of JPGs after resizing. The lower you set it, the smaller the file size, even comparing images with the same pixel dimensions.

      2. Ah, well I am assuming Imsanity compresses the images using the built-in compression of each file format, there’s no such thing as an uncompressed PNG file from what I understand… and it does support varying levels of JPG quality compression. So, it resizes and compresses super-large images down to a certain pixel size for web display, and does it automatically upon uploading to WordPress, as well as being able to scan the media library and resize/compress any larger images it finds. For most websites (non-photography/super-high-res), Imsanity takes care of ensuring tons of disk space isn’t eaten up by 40MB+ files that are never displayed in full resolution, and generates much smaller files, all automatically, right on the web server, for free. I use it on almost all the sites I develop for clients.

        Also, TinyPNG uses lossy compression as stated on their web site, (“When you upload a PNG file, similar colors in your image are combined. This technique is called “quantization”. Because the number of colors is reduced, 24-bit PNG files can be converted to much smaller 8-bit indexed color images. All unnecessary metadata is stripped too.”) – so sure it’s going to produce better results, but at some quality loss, depending on the images being re-compressed, their size, and people’s perception sensitivity (show them to a photographer and they’ll spot the compressed image easily).

        In all of this, for JPGs and especially TinyPNG’s lossy PNG optimization (with a z because USA! lol and j/k), there’s also generational quality loss, (lossy recompression of already lossy compressed images) which results in a dramatic drop in quality each time it’s recompressed. One pass is best.

  2. I have been waiting for the review, and yes i will try this plugin today. Thanks for the detailed info.

    1. Thanks vivek, let me know if you get drastically different results than I did. I’m planning to implement TinyPNG on my whole site over this month, so we’ll see how that goes.

  3. Great article Matt! I will try TinyPNG this week. I use Amazon S3 and Cloudfront plugins and my images are sent to Amazon S3 as they are uploaded to the Media Library. I wonder how the image optimization will affect this process or fit in with the Amazon uploads. I guess it depends on whether the image is uploaded to Amazon first or if the Image Optimization happens first and then the save to the Media Library. I will test it and see what happens.

    Thanx again for the great article!

    1. HI DJ, that’s an interesting question. In the previous article in this series I experimented a bit with comparing optimization plugins with image plugins that utilize a CDN instead and compared their page speed performance. It’s a trade off of which benefits you the most. Naturally, if you can get both happening reliably then that’s best. Would love you to swing back here and let us know your results if you have a chance.

    2. I tested TinyPNG with Amazon S3 / Cloudfront plugins as I use to store everything on S3. It works fine. The only minor drawback is that you can’t compress the images in your media library that are already on S3 before you installed the plugin.

      1. Hmmm… ya, I could see that as a drawback for sure. They’d have to create something like a 3rd party Media Host extension for their plugin to work with that setup. I believe though, there’s a few plugins that let you choose how you move media to S3 rather than just do it all automatically. That might help to optimize first, and then move.

        Again, Kraken could capitalize on this by allowing you to upload through their Web interface, and then import to WordPress through the plugin. In your case, it would import to WordPress then direct to S3. Really hope someone at Kraken reads this ;-)

      2. Michiel (or anyone else), do you use TinyPNG + Amazon CloudFront + Imsanity as well?

        Would like to see what experience people have with those 3 working together, i.e., 1) limit/resize the initial upload, 2) optimize with TinyPNG, 3) store/serve via CDN.

  4. I really like your articles on image compression, but I hate the American arrogance to correct other peoples’ spelling
    Besides their inability to spell “Optimizer” correctly… There is one single nation in the world who insists to spell such words with a ‘z’, the rest of the English speaking world knows that an ‘optimiser’ is spelled correctly with an ‘s’ (okay, the other exception is WordPress’ spell checker, that’s why it’s so useless to people using British, Australian, or South-African English).
    See also: http://www.merriam-webster.com/dictionary/organisation

    1. Ha! I was just getting corrected on that on Twitter. I’ll update my snark in the article accordingly ;-)

    2. I was just about to write the same thing, then thought I’d have a scroll through the comments to see if anyone had already said it.

      1. Updated. Sincerely apologize if I offended anyone with that. That wasn’t my intention.

    3. Yes, I felt a bit surprised with that affirmation… English is a foreign language for me and one of the things I was taught at a pre-intermediate level was the spelling differences between American and British English.

  5. Matt! You totally nailed it. Awesome review, in time too, as in I was just looking for a comparison of these three plugins a day or two ago, and then left it for next weekend.

    Going to try TinyPNG first time.

  6. I have just started using TinyPNG on a couple of sites. Seems like a real decent optimiser. There doesn’t seem to be much savings on the auto generated thumbnails though, maybe I need more testing. Great article. Perfect for passing on info to clients! Thanks.

    1. Ya, just got a comment in a Facebook group about the lack of optimization for the smaller images. I did see a savings in my tests, though it was pretty tiny. I checked the file sizes using Chrome Dev Tools which was pretty detailed. In the end, results definitely vary according to the quality of the images.

  7. Glenn Tate says:

    Really Matt? You must love the sound of your own voice. You spent 8 hours on it?

    TinyPng has 100 downloads with only one rating and they gave it 1 Star.

    “The whole point of tinypng is to minify images. People upload images while creating posts. This plugin does not minify images uploaded during the normal workflow, and thus doesn’t do anything you can’t already do by just going to tinypng.com and compressing your images.”

    There’s something off here and I think it’s you. Another 5 minutes of my life that I’ll never get back (no I didn’t read it all)… but I won’t waste anymore time on your posts. Good luck in your sphere!

    1. Wow. Thanks for speaking your mind. Feels like somehow I’ve acquired a mortal enemy. Not sure how that happened.

      TinyPNG’s stats are listed in the API-based graphic clearly within the post, but here’s a link to their plugin as well which shows over 800 active installs, and 9 reviews with 4.6 rating.
      https://wordpress.org/plugins/tiny-compress-images/

      But you raise a good point. I didn’t test ANY of these plugins for uploads to the Media Library through the page or post edit screen. I’ll test that out and if the results are different at all from what I posted here, I’ll definitely update the article. I can’t imagine how they’d be different though since the new Media Library uploader is the same whether adding from “Add New” or in the edit post/page screen. But I’ll test it.

      (Something tells me you don’t care, but thought I’d reply anyway.)

  8. Great article! I love how you ran the comparison. I’ve been using EWWW for a long time. What I love from it is lossless compression. When I check website (after compression) with Google PageSpeed, I always get “zero recommendation” for images, which is great.

    I also tried TinyPNG (web version, not plugin), but the quality of HD images after compression was bad to me.

    1. That’s really strange because the results from TinyPNG have been very consistently FAR superior for me than anything else for a very long time. And EWWW, while very full featured, has never produced very good compression rates for me ever. If you have some data to share that contradicts my findings here, I’d be really interested to see it.

  9. Amazing series Matt, Waseem sent me this and I was hooked immediately.

    I am also keen on optimizing WordPress for speed and your series definitely improved my tactics! Keep up the good work.

  10. Disclaimer: I’m the author of EWWW. Very nice comparison, and you may be interested to know that the lossy compression offered by the EWWW IO Cloud is now powered by TinyPNG and TinyJPG. We’ve been in discussions for months and today is the go live date, very excited about this!

  11. I wonder if I’m missing something here, but the test results seems wrong to me.

    You say that the point of the article is to compare lossless compression. And you say that TinyPNG does lossless JPG compression. But it is clear that TinyPNG does lossy compression, especially for JPGs. They even have a “lossy” tag at the WordPress plugin page, and no “lossless”. The plugin or the website just does not give you any option for lossy/lossless, so that might explain why you were mistaken. You get similar percentages with Kraken as well, when you do lossy compression.

    So, setting Kraken for lossless and comparing that to lossy TinyPNG is not fair comparison.

    In my testing, using the web interfaces, TinyPNG compressed the pictures more and thus they were a bit smaller, but also of less quality. It is a matter of individual preference, not a simple comparison of file sizes, which one has better results.

    Thus, I think “TinyPNG is the easy and clear winner” is a completely false statement.

  12. Nice comparation!

    BTW, link of ‘death to stock’ miss a word.

  13. Oh, I’d love to find a plugin that helps with Google Pagespeed recommendations, i.e. a client’s page is outputting an image at 520×520 let’s say (via CSS or HTML width/height specs), but the image itself is 1260×1260 and is downloaded to the browser at that large size, Pagespeed will complain about the image because it’s larger than it needs to be. I’d love a HTML/CSS aware plugin that optimizes the images based on what’s actually being output. Hand-resizing those images and then replacing them on each page to optimize page speed is a pain, and clients or their graphic designers usually don’t know any better.

    1. Rob, would something like Picturefill help you here? I’m not sure if it will solve the Pagespeed complaint because it’s still possible for a larger than necessary image will be served, BUT if this is set up correctly, if the theme calls for a 520px image, picturefill can load a 520px image instead of the 1260px.

      Or, if this is an option, set up Imsanity to only allow 520px max width images in the first place.

    2. Hammy is a plugin for WordPress that does exactly that, and if you have EWWW IO installed, it will automatically optimize every single image that Hammy generates.

  14. Matt-

    Genuinely and sincerely, thanks for producing this benchmark. It saved me a lot of time having to repeat everything you did in this test. You were thorough and crystal clear on the pros and cons. Now, I have some testing to do myself based on your findings. Bravo.

    It would be nice to know what kind of load (drag) the different plugins caused on the test page. Since we’re all about speed, this was the only hard numbers I couldn’t find that I was still thirsty to know.

    Just looking at the download size of the plugin packages is frequently indicative of load time but doesn’t take into account uncompressed demo images and HTTP requests. So these three don’t give me any clues. Kraken is big and EWWW is small. But TinyPNG may be just right. :)

    I’ve been using ShortPixel Image Optimiser and I’m not that impressed. I squeeze images “by-hand” in GIMP and then check for improvements with the plugin. It’s somewhere between 1 to 3 percent improvement and many times no improvement at all. That isn’t very satisfying.

    I’m on to test TinyPNG. Thank you for your hard work.

  15. Wow Matt, you certainly did your homework here!

    I’ve only tried one of these plugins and that was EWWW. I found it hard to understand what the options meant. Do you know of a simple guide for using it?

    Generally I use WP Smush.it but I compress my images first in Photoshop so they’re not too large.

    I like your 5 step process but it seems quite complex for the average user. What advice would you give a client about uploading images?

    1. Thanks Ivica, I love your group, I check in there often. I just edited that doc to include the TinyPNG WordPress plugin (hope you don’t mind ;-) )

  16. You compared apples to oranges (lossless to lossy). There were too many variables for your numerical results to be meaningful. At the start of your review you said you were going to focus on lossless compression, so I was confused when you highlighted the compression results of TinyPNG and then jumped through hoops to make a case for EWWW. If the article had maintained its focus on lossless compression, you would not have had to “apologize” for EWWW so much. EWWW is the clear choice for folks who use Google’s PageSpeed and want to prevent the lossless compression warnings. And, as of this writing, EWWW is the only plugin I am aware of that runs on your own server, which for me is a huge plus. For folks landing on your page after a Google search for WordPress lossless compression plugins, your review is a bit misleading. But, thanks for the lossy data on TinyPNG .

  17. Wow… Thanks for benchmark…
    I use EWW now, but Tiny PNG really good.
    Maybe I will try it.

  18. I see that EWW is on the list of banned plugins for sites hosted on http://WPengine.com which is a shame because the hosting is the best there is. I’ll probably have to run Kraken instead since it sounds like tinypng will reduce the quality of the images too much.

    1. I was really surprised how sharp the TinyPNG images still were considering the size savings. Still, you can’t go wrong with Kraken, it’s a really trust-worthy and robust solution.

  19. If only other reviews on the interwebs were as well conceived and executed. Bravo.

    This was very helpful and saved me the testing – hours out of my day. Thanks.

    1. Thanks so much, glad you liked the article. Hope to see you around here more often.

  20. Easily to read article. I am curios if one day compressor.io will offer wordpress plugin too. I like that image compressor tools.

    1. Hi, thanks for stopping by. I think the first thing they need to do is allow bulk compression. Once they master that doing a WP plugin is a no-brainer.

  21. Hi Matt,

    First off – great post. Thanks for taking the time to pen this.

    Do you have any other recommendations for an Imsanity replacement as the plugin hasn’t been updated in 3months, and isn’t working on WP4.3?

    Thanks,

    Darryl

    1. Not really. Imsanity is pretty irreplaceable so far. Considering it’s popularity, I’m sure the developer will get it updated soon. I’d hold out for it. Thanks for stopping by!

    2. FYI, EWWW I.O. and WP Smush both feature the resizing capability of Imsanity now (although not with quite so many options). I think ImageRecycle has resizing too if I remember correctly.

  22. I used compressor.io that’s great invent indeed. Another tool similler to this compressor is http://www.imageoptimizer.pk that is good tool as well having one advantage over compressor.io is it allows user to adjust own quality or compression.

  23. Amy-Kate Wych says:

    Brilliant write up Matt! Nicely thought out, really useful and backed up by some proper testing.

    Thank you, Amy-Kate

  24. Nice article. Recently I came across a this nice WP plugin. The new bloggers flood their blog with all the high-resolution images to make it nice and attractive. But for the matter of fact, that reduces the speed of the website and it takes a lot of time to load which hampers the user experience.

    Use ‘wp smush’ to reduce the size of images and keep the quality good. The free version will allow 50 images to smush at a time, then you need to start the process again for next 50 images. Premium version will take this restriction off. Even it can optimize heavy images upto 32 MB if you will opt for PRO version

  25. Hey Matt,

    Awesome post! Thanks for taking the time to do so much research and being so thorough. I inherited working on a site for a client’s online magazine. It sounds like TinyPNG is the way to go. I’m a little concerned as they have SO many massive images that were uploaded without any care over the years and their uploads folder is over 2GB.

    Do you have any tips on processing this many images? Do I start the process and it keeps going on it’s own or will I need to keep the browser window open to finish the processing?

    1. Hey Andrew, I believe you can select which images to optimize with a Bulk Optimize feature. You might want to do that a little bit at a time since doing that many at once could cause a PHP timeout, and it will also be pretty expensive for the client.

      Thanks for stopping by!

  26. Al Stegmeyer says:

    Tiny ping/jpg is available as a photoshop plugin.

  27. Hello, thank you for summary but I still don’t know which one is the best… WP.Smush.it is good and simple but does not show me the best results.

  28. I am looking for some good blog sites for studying. I was searching over search engines and found your blog site.

  29. Tonny Pettersson says:

    Hi

    I love you post! really useable!!

    I love you setup – but I am looking for a solution where the user can upload a 1MB image and use it in a post without any image work – other then be able to crop the image which should make a copy of the image. Because the editor need to have access to the original one if the post goes to press. So YES your solution is super cool! but how can I keep the original images and offer a cropping feature…

    1. upload an image (1-2MB) (store the original image)
    2. Optimize the upload image to the wordpress host server
    2. Crop the image and use it as featured image or use it inside a post.
    3. automatically optimized this image for web
    4. Maybe use a CDN image provider

    Do you have any ideas to how I can keep the original image in this process and offer cropping and stil optimize the web images – to keep a good UX for the end user?

    Cheers
    Tonny

    1. Hi Tonny,

      I’m just thinking off the top of my head, but WordPress has a filter for compressing images upon upload. WPBeginner has a nice overview of that feature and how to customize it:
      http://www.wpbeginner.com/wp-tutorials/how-to-increase-or-decrease-wordpress-jpeg-image-compression/

      Once you’ve disabled the default compression, then you can set TinyPNG to NOT optimize on upload but only manually. That way you’d not have ANY compression at all until you manually compress them via TinyPNG (or any other compression plugin you choose).

      Thanks for stopping by!

  30. Markus Seyfferth says:

    Hi Matt,

    Not sure why you call TinyPNG ‘losslessly’? It apparently is not, as they say:

    “TinyPNG uses smart *lossy* compression techniques to reduce the file size of your PNG files. By selectively decreasing the number of colors in the image…”

    which means any time making use of tinypng, the image will lose quality.

    “But neither of them come remotely close to TinyPNG’s compression performance.” Well, that explains a lot, no? It’s still a great tool, but the lossless label just isn’t correct.

    Thank you,

    — Markus

  31. very nice review,

    Now I know why my blog has “bad optimization image” in gtmetrix even I use imsanity from the beginning.

    After read this article, I want to try tinyPNG too.

    Can tinyPNG rezise all my previous image that already published? or I should reupload all of them?

    thanks

  32. Hi, great article and comparison. Would be great if you can add Imagify, Zara4, and ImageOptim, WP Smush trial to your tests. Oh, and btw, your “Get Notified of New Posts” doesn’t work (Caldera is disabled).

    1. Fixed! It’s been a LONG time since I wrote this article and now there’s tons of articles like this one out there. I know the guys behind Imagify and really assume it’s an awesome solution. The others not so much. Thanks for reading!

  33. Luke Cavanagh says:

    WP Smush version on the repo does not have lossy compression only the pro version does.

    1. Thanks for the update… it’s been a while since I wrote this. :-)

  34. Sujit Swain says:

    i think this png/jpg/image compressor is better way2enjoy.com/compress-png as it allows 50 files in one chance. plugin is not recommended as it will always keep your server loaded with excess load. i agree that it will automate the process but when you can do samething in 1 second through online without slowing down your website then i think that is the best. if you know any better then kindly share link.
    Get rid of Plugin and make super fast website. It takes 1 second to just browse your all files.(yes all files as you wont need more than 50 files for any article) so just upload and get compressed file instantly and enjoy the fast website

  35. Checkout https://imagekit.io. It serves optimized images through cdn and comes with easy to integrate wordpress plugin.

Leave a Reply

Your email address will not be published. Required fields are marked *