Image compression is an important component when analyzing a website’s page speed. Most content management systems don’t provide this type of feature out of the box and, instead, rely on content editors to compress images before uploading.
The process is very manual and requires a lot of extra time for every image. There are several free services, like TinyPNG, that allow you to drop one or more images at a time, perform the compression, and allow you to download all when completed.
A few systems, like WordPress, have plugins available to perform compression as images are uploaded. But how do you know which service to use?
Our team built an image compression comparison tool that submits images to 7 different compression providers and tracks the total time and size reduction for each. Our findings are presented below.
For this project, I performed compression on both JPG and PNG images. I ran each image type separately so as not to mix up the averages.
JPG images were about 2,500 pixels wide by 1,600 pixels tall. PNG images were about 1200 x 800 pixels tall.
We sent images in batches of four to one service at a time, waited about 30 minutes, and then re-ran the same images through a second, third, and fourth time. We felt the images we used had sufficient detail and contrast to show differences between versions.
Everything was processed on a Microsoft Azure B1 Web App which has about 1.75 GB RAM and 100 Azure Compute Units (ACU’s). This is one of Azure’s smallest web app servers. The size doesn’t really affect the compression service API calls but does impact LEADTOOLS since it runs locally. A beefier server would have a dramatic effect on the LEADTOOLS results.
We plugged into the API's of the following seven services. If you feel we've missed an important service, please contact us and let us know its name and website.
https://resmush.it/
A company based in Paris, France that provides image compression through it’s API for free.
API Pricing: Free
https://tinyjpg.com/
Tinify is a service created in 2014 by Voormedia out of Amsterdam, Netherlands. We’ve used them for a long time to manually compress images. It’s basic free service provides a simple drag and drop interface where you can drop images up to 5 MB in size.
API Pricing: first 500 images free, next 9,500 are $0.009 per image
https://shortpixel.com/
ShortPixel is an image compression company out of Romania formed in 2014. ShortPixel offers a Glossy compression option for photographers that is less lossy than their normal compression.
API Pricing: 100 images/mo are free, 5,000 images/mo are $4.99
https://kraken.io/
Kraken.io was founded in 2013 out of Berlin, Germany as an image optimization and compression SaaS platform.
API Pricing: 500 MB/mo for $5.00
https://imagify.io/
Imagify was created by WP Media in 2016 out of Lyon, France.
API Pricing: 1GB data (about 10,000 images) for $4.99/mo. They also offer one-time plans.
https://ewww.io/
EWWW Image Optimizer was built by Shane Bishop and initially released as a plugin in 2012 then refactored as an API in 2013. EWWW is short for Exactly WWW.
API Pricing: 1,500 API credits, starting at $3.00 ($0.002 per image). Auto-recharge is offered.
https://www.leadtools.com/sdk/compression/image-optimizer
LEADTOOLS, based out of Charlotte, NC, provides a large collection of imaging and document SDK’s. We’re only using the Image Pro SDK and specifically the Image Compression Optimizer SDK. While this isn’t technically an API service, we were interested in comparing a locally run compression kit with the other API’s. We using the OptimizeBuffer method with its default options.
We ran this, along with our ImageResizer service, in a Microsoft Azure B1 web app which consists of 100 Azure Compute Units (ACU) and 1.75 GB memory. It’s a very basic, scaled down server.
Pricing: $795/developer + $195/yr maintenance + deployment license of $500/yr or more + server operating costs
For most services, we ran both lossy and lossless compression. Lossy is usually recommended because it will yield the smallest file sizes. But it also takes the longest to run because it spends more time analyzing each image. Lossless, as expected, didn’t result in a substantial reduction.
I singled out and highlighted LEADTOOLS because it is not a SaaS API service. Like I mentioned before, I included it more out of curiosity than anything else.
The first chart below shows the average duration and average reduction for each service across four JPG images submitted at four different times. I include both the lossy and lossless data, if available. The best performers are highlighted in yellow.
Lossy |
Lossless |
|||
Avg Duration |
Avg Reduction |
Avg Duration |
Avg Reduction |
|
ReSmushIt |
2.9 s |
47.3% |
- |
- |
Tinify |
2.7 s |
76.0% |
- |
- |
ShortPixel |
7.2 s |
87.5% |
7.8 s |
8.0% |
Kraken.io |
3.0 s |
44.0% |
3.5 s |
10.0% |
Imagify |
9.0 s |
46.7% |
6.9 s |
8.0% |
EWWW |
8.1 s |
75.1% |
4.1 s |
8.7% |
Leadtools |
1.8 s |
68.5% |
- |
- |
Tinify ran the fastest, on average, and had a strong overall reduction. ShortPixel had the best overall reduction.
The chart below shows the fastest and slowest compression times for each service. Each service was called 16 times. The end goal is to reduce the size of the images on your website, so a slow compression time shouldn’t matter as much as the result it achieves. However, when you’re uploading many images at a time and making a lot of edits, the long waits add up quickly. In your content management system, you’ll likely wait until you see the resulting compressed image before you save or publish.
Fastest |
Slowest |
|
ReSmushIt |
2.0 s |
7.6 s |
Tinify |
2.5 s |
3.3 s |
ShortPixel |
5.5 s |
8.8 s |
Kraken.io |
2.8 s |
3.8 s |
Imagify |
6.5 s |
12.3 s |
EWWW |
6.9 s |
9.7 s |
Leadtools |
0.8 s |
3.1 s |
Select an image and a service to visually compare the original with the resulting compressed image from that service.
Note: Press ESC to close the comparison slider.
The PNG results were a bit surprising. These took a lot longer, on average, and achieved fairly consistent reductions. Tinify had the fastest PNG compression average and tied for the largest reduction.
Lossy |
Lossless |
|||
Avg Duration |
Avg Reduction |
Avg Duration |
Avg Reduction |
|
ReSmushIt |
3.9 s |
62.8% |
- |
- |
Tinify |
3.0 s |
67.9% |
- |
- |
ShortPixel |
14.1 s |
65.2% |
15.2 s |
2.0% |
Kraken.io |
5.4 s |
67.0% |
4.1 s |
2.2% |
Imagify |
14.1 s |
61.5% |
10.1 s |
1.9% |
EWWW |
11.7 s |
67.9% |
14.0 s |
2.0% |
Leadtools |
10.3 s |
1.9% |
- |
- |
Each one of these services had at least one wait time of 5 seconds or more to generate the compressed PNG. That’s a long time if you’re working with a lot of images.
Fastest |
Slowest |
|
ReSmushIt |
2.3 s |
8.5 s |
Tinify |
1.9 s |
5.3 s |
ShortPixel |
8.8 s |
22.6 s |
Kraken.io |
3.6 s |
11.4 s |
Imagify |
11.5 s |
17.7 s |
EWWW |
7.2 s |
20.2 s |
Leadtools |
1.2 s |
38.3 s |
Select an image and a service to compare the original with the resulting compressed image from that service.
Note: Press ESC to close the comparison slider.
Based on results above, Tinify was the fastest service, on average, and tied for the best PNG compression.
ShortPixel provided the best JPG compression by a wide margin but was one of the slowest services for both JPG and PNG.
There are a lot of factors that can change the overall compression speed, such as image size, network latency, and API service load. It may not be 100% fair to use that as the main factor in your consideration since there are external factors. However, if you’re providing a service that requires your users to wait for the compressed images then it should be one of the factors
Marketpath CMS has resizing, cropping, and compression built into its core so you don't have to stress about bulky images.
View Full List of Averages
Full JPG results for bricks
Full JPG results for girl
Full JPG results for train tracks
Full JPG results for llama
View Full List of Averages
Full PNG results for bricks
Full PNG results for girl
Full PNG results for train tracks
Full PNG results for llama