5min
Image CDN
Reviews
Gumlet vs CloudImage vs ShortPixel by Marius Ghitulescu
I will skip the boring details and jump to the conclusion:
-
-
-
You can see all the tests I ran and how I got to these conclusions in this note: https://nimb.ws/vKuEUe
The 3 websites I used for testing are still live, if you want to run your own tests:
-
-
-
To me, Gumlet seems the best option for most users. It's easy to set up, it can also serve both CSS and JS, it has a fast CDN and it does a pretty good job at optimizing images.
CloudImage is more feature-rich, but it seems to be mostly aimed at experienced users who have specific needs, want cache control, watermarks, etc. Personally, I don't have any need for the extra features, but I'll keep 1 code just in case. If you like to tinker with all the settings, this one is for you.
If you have ShortPixel already, I'd recommend coupling it with a different CDN and just use its image optimizer. I tried using it with BunnyCDN, it worked great.
Edit (May 3, 2020):
I've updated the document to include ShortPixel AI + BunnyCDN. You can find the website here, if you want to run your own tests: http://spaibunny.fgo.xyz/ShortPixel AI + Bunny CDN is better than using ShortPixel AI only, but still not the best.
I've also realized ShortPixel can detect background images, if you also serve the CSS files through CDN. I missed this setting in my former tests. However, it only works when I use their CDN (not ShortPixel + BunnyCDN).
There's actually a lot to be said about the tests. They're somewhat flawed because lazy-loading means that most images (which are outside the viewport) do not get analyzed by any of these tools I used to get the reports.
It seems that Pingdom is the only one that scrolls all the way to the bottom of the page, thus detecting the lazy-loaded images. At least it detected them for Gumlet and Cloud Image, but it didn't detect them when using ShortPixel.
I should run a second test for each website and each tool, where lazy loading is disabled. This would make sure that all images are taken into account, which would change the current results.I also noticed that Cloud Image's lazy-load is better, it seems to have a larger offset when scrolling, so it loads the images earlier (meaning that when a user scrolls down, the image is already loaded when it gets in the viewport).