<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
 <channel>
  <title>NimboCDN — everything we publish</title>
  <link>https://nimbocdn.net/</link>
  <description>Articles, comparisons and tools about image weight, formats and delivery. Measurements include their method and limits.</description>
  <language>en-US</language>
  <atom:link href="https://nimbocdn.net/feed.xml" rel="self" type="application/rss+xml"/>
  <item>
   <title>Compress images right inside your browser</title>
   <link>https://nimbocdn.net/tools/compress-image/</link>
   <guid isPermaLink="true">https://nimbocdn.net/tools/compress-image/</guid>
   <pubDate>Sun, 06 Sep 2026 12:00:00 +0000</pubDate>
   <description>Compress JPG, PNG and WebP without leaving your browser. Your images are never uploaded to any server. Free, no account, no credit card.</description>
   <content:encoded><![CDATA[<p class="subtitle">Drop in a JPG, PNG or WebP and get it back smaller. The work happens on your own device — the files are never uploaded. Free, no account, no credit card.</p>

<!--compress-->

<h2 id="how-it-works">How this compresses without uploading anything</h2>
<p>Most compressors send your file to a server, shrink it there and send it back. This one does not. Your browser already ships with a JPEG and WebP encoder, and this page simply asks it to re-save your image at the quality and width you pick.</p>
<p>That has one consequence worth stating plainly: there is no upload, so there is nothing to leak, nothing stored and nothing to delete afterwards. You can confirm it — open your browser's network tab, compress a file, and watch that no request goes out.</p>
<p>It also means the tool works offline once the page has loaded, and that a 20&nbsp;MB photo does not have to travel twice across your connection before you see the result.</p>

<h2 id="which-format">WebP or JPEG: which one to pick</h2>
<p>Google reports that lossy WebP files come out 25 to 34&nbsp;% smaller than a JPEG of comparable quality. WebP is supported in every current major browser, so for anything going on a website it is the better default, and it is what this tool selects for you.</p>
<p>JPEG is the right choice when the file has to be opened by something older or fussier — a print shop, a marketplace that rejects WebP, an internal system nobody wants to touch. It is a little heavier at the same quality, and universally accepted.</p>
<p>One thing this tool will not pretend to do: if you feed it a PNG and ask for a PNG back, almost nothing happens. PNG is a lossless format, so there is no quality dial to turn. To make a PNG meaningfully lighter you have to change format, which is why WebP is offered instead.</p>

<h2 id="how-much">How far to push the quality slider</h2>
<p>Quality 80 is the setting to start from. On photographs it typically removes most of the weight while leaving nothing you would notice on a screen. Below about 60 the damage starts to show on skies, skin and flat gradients — the smooth areas go blotchy first.</p>
<p>Screenshots, logos and anything with sharp text behave differently. Lossy compression smears the edges of letters, so those want a higher setting, or a format built for flat colour.</p>
<p>The honest way to use the slider is to move it and look at the result, rather than trusting a number. Compress the same file at 80 and at 60, open both, and decide with your own eyes which one you would be happy to publish.</p>

<h2 id="width">Why width usually matters more than quality</h2>
<p>A photo straight from a phone is often 4.000&nbsp;pixels wide. The place it ends up — a product card, a blog post, a category listing — might draw it at 600. Every pixel beyond what the screen actually paints is weight nobody sees.</p>
<p>Resizing before compressing is the single biggest saving available here, and it is why the tool offers a maximum width alongside the quality slider. Set it to something close to the size the image will really be displayed at, and the quality setting matters far less.</p>

<h2 id="wordpress">Doing this once is easy. Doing it forever is the problem</h2>
<p>Compressing a handful of files by hand works fine. It stops working when the images arrive every week, when somebody else uploads them, or when the same picture has to exist at four different sizes for four different screens.</p>
<p>That is the job NimboCDN does on a WordPress site: it prepares each image at the size the visitor's screen will actually draw, in the format their browser accepts, and serves it from our side instead of yours — as WebP on the free plan, and AVIF on Pro, which is usually lighter still. You install the connector and the delivery changes; nothing in your library is rewritten.</p>
<p>If you want to know whether it is worth it for your site, the <a href="/tools/website-image-size-checker/">image size checker</a> measures the bytes your pages send today and estimates what they would weigh afterwards.</p>

<h2 id="faq">Questions</h2>
<details name="faq"><summary>Are my images uploaded anywhere?</summary><p class="body-text muted">No. The compression runs in your browser, on your device. There is no upload and no copy on our side — you can verify it in the network tab of your browser's developer tools.</p></details>
<details name="faq"><summary>Is there a limit?</summary><p class="body-text muted">Twenty files at a time, up to 25&nbsp;MB each. The limit is there because the work happens on your own device, and a phone with twenty large photos open at once runs out of memory.</p></details>
<details name="faq"><summary>Why is my PNG barely smaller?</summary><p class="body-text muted">PNG is lossless, so re-saving it as PNG has almost nothing to remove. Choose WebP instead and the same picture usually drops a great deal.</p></details>
<details name="faq"><summary>Does it keep my EXIF data?</summary><p class="body-text muted">No. Re-encoding drops the metadata, including GPS coordinates and camera details. For publishing on the web that is usually welcome, but keep your originals if you need that information.</p></details>
<details name="faq"><summary>What about animated GIFs?</summary><p class="body-text muted">Only the first frame survives, so this is not the right tool for them. An animation is almost always better off as a video file.</p></details>
<details name="faq"><summary>Do I need an account?</summary><p class="body-text muted">No. No account, no email, no credit card. The page does not know who you are.</p></details>]]></content:encoded>
  </item>
  <item>
   <title>Image weight by platform: 41 stores measured</title>
   <link>https://nimbocdn.net/blog/image-weight-by-ecommerce-platform/</link>
   <guid isPermaLink="true">https://nimbocdn.net/blog/image-weight-by-ecommerce-platform/</guid>
   <pubDate>Sat, 05 Sep 2026 12:00:00 +0000</pubDate>
   <description>We measured image bytes on 41 real storefronts across 14 platforms. WooCommerce sent 2.7 times more bytes per pixel than Shopify.</description>
   <content:encoded><![CDATA[<p class="subtitle">A WooCommerce storefront in our sample sent 2.7 times more bytes per pixel than a Shopify storefront. We found that by weighing images on 41 real stores across 14 platforms.</p>
<p>That is a byte measurement. Not page speed. Not image quality. The sample and the limits stay beside the finding.</p>

<h2 id="why-measured">Why we measured instead of reading comparisons</h2>
<p>We needed to decide which platforms should get a connector. Published comparisons gave us conflicting answers, including on whether Shopify served AVIF.</p>
<p>So we measured storefronts. The first result overturned the assumption in our plan: one platform described as doing little had eight ready-made widths and served WebP. Building from the comparison would have cost months.</p>
<blockquote><p>A platform that already handles its images has no problem for our connector to solve.</p></blockquote>

<h2 id="what-we-measured">What bytes per pixel measures</h2>
<p>Bytes per pixel is the size of each delivered image divided by its pixel count, summarized as the median for a storefront. It lets us compare encoding weight without rewarding a store just for using smaller pictures.</p>
<p>It does not measure quality. A low number can mean efficient encoding or a damaged image. It is not a savings estimate either. We left “what NimboCDN would save” out of the table because that would require a model, not a direct measurement.</p>

<h2 id="the-table">The measured table</h2>
<p>Medians across stores. <code>n</code> counts stores, not images. Rows with one or two stores are shown, but they do not describe a platform.</p>
<table>
<thead><tr><th>Platform</th><th>Stores</th><th>Bytes per pixel</th><th>Already modern format</th></tr></thead>
<tbody>
<tr><td>Shopify</td><td>12</td><td>0.0933</td><td>100%</td></tr>
<tr><td>VTEX</td><td>6</td><td>0.0815</td><td>97%</td></tr>
<tr><td><strong>WooCommerce</strong></td><td>4</td><td><strong>0.2508</strong></td><td>48%</td></tr>
<tr><td><strong>WordPress</strong></td><td>3</td><td><strong>0.2012</strong></td><td><strong>0%</strong></td></tr>
<tr><td>Nuvemshop</td><td>2</td><td>0.0894</td><td>47%</td></tr>
<tr><td>Wix</td><td>1</td><td>0.1081</td><td>91%</td></tr>
<tr><td>PrestaShop</td><td>1</td><td>0.1952</td><td>48%</td></tr>
<tr><td>Unrecognised</td><td>2</td><td>0.6427</td><td>0%</td></tr>
</tbody>
</table>
<figure class="doc__fig doc__fig--diagram">
<svg class="machine chart" viewBox="0 0 920 448" role="img" aria-labelledby="bpp-t-en bpp-d-en" style="min-width:660px" xmlns="http://www.w3.org/2000/svg">
<title id="bpp-t-en">Bytes per pixel delivered by each platform's storefront</title>
<desc id="bpp-d-en">Horizontal bar chart of median bytes per pixel across 14 ecommerce platforms. Unrecognised platforms are worst at 0.6427. WooCommerce follows at 0.2508 and WordPress at 0.2012, the two markets this connector serves. Shopify sits at 0.0933 and Webflow lowest at 0.0520. Lower is a smaller download.</desc>
<text class="edge" x="8" y="24">LOWER IS LIGHTER</text>
<line class="ax" x1="208" y1="46" x2="208" y2="416"/>
<text class="lbl" x="196" y="62" text-anchor="end">Unrecognised</text>
<rect class="b" x="210" y="51" width="560" height="13" rx="4"/>
<text class="val" x="780" y="62">0.6427<tspan class="n" dx="10">2 stores</tspan></text>
<text class="lbl" x="196" y="88" text-anchor="end" style="font-weight:700">WooCommerce</text>
<rect class="b b--ours" x="210" y="77" width="219" height="13" rx="4"/>
<text class="val" x="439" y="88" style="font-weight:700">0.2508<tspan class="n" dx="10">4 stores</tspan></text>
<text class="lbl" x="196" y="114" text-anchor="end" style="font-weight:700">WordPress</text>
<rect class="b b--ours" x="210" y="103" width="175" height="13" rx="4"/>
<text class="val" x="395" y="114" style="font-weight:700">0.2012<tspan class="n" dx="10">3 stores</tspan></text>
<text class="lbl" x="196" y="140" text-anchor="end">PrestaShop</text>
<rect class="b" x="210" y="129" width="170" height="13" rx="4"/>
<text class="val" x="390" y="140">0.1952<tspan class="n" dx="10">1 store</tspan></text>
<text class="lbl" x="196" y="166" text-anchor="end">Loja Integrada</text>
<rect class="b" x="210" y="155" width="128" height="13" rx="4"/>
<text class="val" x="348" y="166">0.1464<tspan class="n" dx="10">2 stores</tspan></text>
<text class="lbl" x="196" y="192" text-anchor="end">Wix</text>
<rect class="b" x="210" y="181" width="94" height="13" rx="4"/>
<text class="val" x="314" y="192">0.1081<tspan class="n" dx="10">1 store</tspan></text>
<text class="lbl" x="196" y="218" text-anchor="end">Shopify</text>
<rect class="b" x="210" y="207" width="81" height="13" rx="4"/>
<text class="val" x="301" y="218">0.0933<tspan class="n" dx="10">12 stores</tspan></text>
<text class="lbl" x="196" y="244" text-anchor="end">Nuvemshop</text>
<rect class="b" x="210" y="233" width="78" height="13" rx="4"/>
<text class="val" x="298" y="244">0.0894<tspan class="n" dx="10">2 stores</tspan></text>
<text class="lbl" x="196" y="270" text-anchor="end">Squarespace</text>
<rect class="b" x="210" y="259" width="75" height="13" rx="4"/>
<text class="val" x="295" y="270">0.0866<tspan class="n" dx="10">1 store</tspan></text>
<text class="lbl" x="196" y="296" text-anchor="end">VTEX</text>
<rect class="b" x="210" y="285" width="71" height="13" rx="4"/>
<text class="val" x="291" y="296">0.0815<tspan class="n" dx="10">6 stores</tspan></text>
<text class="lbl" x="196" y="322" text-anchor="end">Next.js</text>
<rect class="b" x="210" y="311" width="62" height="13" rx="4"/>
<text class="val" x="282" y="322">0.0714<tspan class="n" dx="10">3 stores</tspan></text>
<text class="lbl" x="196" y="348" text-anchor="end">Tray</text>
<rect class="b" x="210" y="337" width="53" height="13" rx="4"/>
<text class="val" x="273" y="348">0.0607<tspan class="n" dx="10">2 stores</tspan></text>
<text class="lbl" x="196" y="374" text-anchor="end">OpenCart</text>
<rect class="b" x="210" y="363" width="47" height="13" rx="4"/>
<text class="val" x="267" y="374">0.0542<tspan class="n" dx="10">1 store</tspan></text>
<text class="lbl" x="196" y="400" text-anchor="end">Webflow</text>
<rect class="b" x="210" y="389" width="45" height="13" rx="4"/>
<text class="val" x="265" y="400">0.0520<tspan class="n" dx="10">1 store</tspan></text>
</svg>
<figcaption>Median bytes per pixel by platform. The number beside each bar is the store count behind that median.</figcaption>
</figure>
<p>Two columns matter. Bytes per pixel shows delivered weight. “Already modern format” shows how often the platform had already moved beyond JPEG or PNG.</p>

<h2 id="against-the-web">How the sample compares with the wider web</h2>
<p>The HTTP Archive Web Almanac reports bits per pixel across more than ten million pages. Our figures are bytes per pixel. Multiply by eight and the units match.</p>
<table>
<thead><tr><th>Measured on our sample</th><th>Bytes/pixel</th><th>Bits/pixel</th></tr></thead>
<tbody>
<tr><td>WooCommerce storefronts</td><td>0.2508</td><td>2.01</td></tr>
<tr><td>WordPress sites</td><td>0.2012</td><td>1.61</td></tr>
<tr><td>Shopify storefronts</td><td>0.0933</td><td>0.75</td></tr>
</tbody>
</table>
<figure class="doc__fig doc__fig--diagram">
<svg class="machine chart" viewBox="0 0 920 254" role="img" aria-labelledby="bits-t-en bits-d-en" style="min-width:660px" xmlns="http://www.w3.org/2000/svg">
<title id="bits-t-en">The same figures in bits, against the median image on the web</title>
<desc id="bits-d-en">Bar chart comparing our measurements in bits per pixel against two reference lines from the HTTP Archive Web Almanac. WooCommerce storefronts sit at 2.01, level with the web's median image at 2.1 and the median JPEG at 2.0. WordPress sits at 1.61. Shopify storefronts sit at 0.75, already below the median AVIF on the web at 1.4.</desc>
<text class="edge" x="8" y="24">BITS PER PIXEL</text>
<line class="ref" x1="698" y1="58" x2="698" y2="186"/>
<text class="reflbl" x="706" y="52">median image on the web · 2.1</text>
<line class="ref ref--alt" x1="535" y1="58" x2="535" y2="186"/>
<text class="reflbl" x="543" y="208" text-anchor="start">median AVIF on the web · 1.4</text>
<line class="ax" x1="208" y1="58" x2="208" y2="186"/>
<text class="lbl" x="196" y="79" text-anchor="end" style="font-weight:700">WooCommerce</text>
<rect class="b b--ours" x="210" y="65" width="469" height="18" rx="4"/>
<text class="val" x="689" y="79" style="font-weight:700">2.01</text>
<text class="lbl" x="196" y="121" text-anchor="end" style="font-weight:700">WordPress</text>
<rect class="b b--ours" x="210" y="107" width="376" height="18" rx="4"/>
<text class="val" x="596" y="121" style="font-weight:700">1.61</text>
<text class="lbl" x="196" y="163" text-anchor="end">Shopify</text>
<rect class="b" x="210" y="149" width="175" height="18" rx="4"/>
<text class="val" x="395" y="163">0.75</text>
</svg>
<figcaption>Our medians converted to bits per pixel and placed beside the Web Almanac reference. The conversion is arithmetic: one byte is eight bits.</figcaption>
</figure>
<p>The Web Almanac puts the median image at 2.1 bits per pixel and the median JPEG at 2.0. WooCommerce in our sample sits at 2.01. Shopify sits at 0.75, below the report's 1.4 median for AVIF.</p>
<p>This does not make Shopify “faster.” It says its storefront images carried fewer bytes per pixel in this sample.</p>

<h2 id="what-it-doesnt-prove">What this does not prove</h2>
<ul>
<li><strong>Most platform samples are small.</strong> Shopify has 12 stores, VTEX 6, and WordPress plus WooCommerce 7. A one-store row is only that store.</li>
<li><strong>We measured storefronts.</strong> Product pages, checkout, and dashboards can behave differently.</li>
<li><strong>This is not a savings estimate.</strong> It says what arrived, not what another service would remove.</li>
<li><strong>Bytes per pixel is not quality or load time.</strong> Those need different measurements.</li>
</ul>

<h2 id="what-we-did-with-it">What the result changed</h2>
<p>It closed more platforms than it opened. All 12 Shopify stores already used modern formats. Wix, Squarespace, and Webflow both delivered reasonably and left no place for an outside connector to change image delivery.</p>
<p>WordPress and WooCommerce showed the clearest gap among the platforms with a usable sample, and both allow a connector. That supported the market we were already serving. It did not prove every WordPress store has the same problem.</p>
<p>For the practical next step, read what images can and cannot fix on a <a href="/blog/woocommerce-slow/">slow WooCommerce store</a>, or rule out the other causes of a <a href="/blog/why-is-my-wordpress-site-so-slow/">slow WordPress site</a>.</p>

<h2 id="weigh-your-own">Weigh your own storefront</h2>
<p>Your store is not a median. Paste one page into the <a href="/tools/website-image-size-checker/">website image size checker</a>. It weighs every image and encodes the heaviest ones for real. Today's number is measured. The possible after is estimated, with its error shown.</p>
<p>If the site runs on WordPress, install the <a href="/install">connector</a>. No account. No credit card. The home page starts shipping lighter right away. If you prefer to work inside the media library, compare <a href="/alternatives/shortpixel-vs-imagify/">ShortPixel and Imagify</a>.</p>

<h2 id="questions">Questions</h2>
<details name="faq"><summary>Why use bytes per pixel instead of kilobytes per image?</summary><p class="body-text muted">Kilobytes per image mostly reflects image dimensions. Dividing delivered bytes by pixel count removes that size difference and makes encoding weight easier to compare across stores.</p></details>
<details name="faq"><summary>Is a lower number always better?</summary><p class="body-text muted">No. A low number can come from efficient encoding or from damaging the image. Bytes per pixel measures weight, not perceived quality. Quality needs a separate comparison at a matched perceptual score.</p></details>
<details name="faq"><summary>Are seven WordPress and WooCommerce stores enough?</summary><p class="body-text muted">They are enough to report the gap we saw, with the sample attached. They are not enough to claim every WordPress or WooCommerce store behaves the same way. That is why the count stays beside the finding.</p></details>
<details name="faq"><summary>Does this mean Shopify is faster than WooCommerce?</summary><p class="body-text muted">No. We measured image bytes, not page-load time. In this sample, Shopify storefront images carried fewer bytes per pixel. Load time also depends on hosting, theme, scripts, and everything else on the page.</p></details>
<details name="faq"><summary>Can I reproduce the measurement?</summary><p class="body-text muted">Yes. The method and date are published with the numbers. It covers storefronts measured on September 3, 2026. A store that changes its theme or image settings later may produce a different result.</p></details>
]]></content:encoded>
  </item>
  <item>
   <title>WooCommerce slow? Images fix the storefront, not checkout</title>
   <link>https://nimbocdn.net/blog/woocommerce-slow/</link>
   <guid isPermaLink="true">https://nimbocdn.net/blog/woocommerce-slow/</guid>
   <pubDate>Fri, 04 Sep 2026 12:00:00 +0000</pubDate>
   <description>A slow WooCommerce storefront may be carrying heavy images. A slow checkout is usually code or the database. We measured one, not the other.</description>
   <content:encoded><![CDATA[<p class="subtitle">A WooCommerce store can feel slow in two different places. Heavy images can weigh down the storefront. A slow checkout or dashboard is usually code or the database. We fix the first problem, not the second.</p>
<p>That split matters. Categories, product pages, and the home page carry images by the hundred. Checkout, cart, and the WordPress dashboard do not.</p>
<p>We measured the storefront side. Across 41 real stores on 14 platforms, the 7 WordPress and WooCommerce stores — a small sample, and we say so — sent 2.5 to 2.7 times more bytes per pixel than the 12 Shopify stores. No stopwatch. Just image bytes.</p>

<h2 id="checkout-or-storefront">Is it the checkout, or the storefront?</h2>
<p>Open the page that is slow. The answer starts there.</p>
<table><thead><tr><th>Symptom</th><th>Which half</th><th>Where to look first</th></tr></thead><tbody><tr><td>Checkout slow, add-to-cart slow, wp-admin slow</td><td>Code and database — not images</td><td>Plugins, the database, the hosting. Usual suspects, none of them measured by us — and none of them touched by an image CDN. Ours included, said out loud.</td></tr><tr><td>Storefront slow: categories, product pages, home</td><td>Images, usually</td><td>Weigh them. It's free, and it's where the photos live by the hundreds.</td></tr></tbody></table>
<p>If checkout is slow, an image CDN is not the fix. Ours included. Check plugins, database queries, and hosting instead.</p>
<p>On the storefront, the largest visible element is often a product image. Google calls the moment it appears Largest Contentful Paint (LCP):</p>
<blockquote><p>LCP measures the time from when the user initiates loading the page until the largest image or text block is rendered within the viewport.</p></blockquote>
<p>— <a href="https://web.dev/articles/optimize-lcp" target="_blank" rel="noopener noreferrer nofollow">web.dev, Google's guide to optimizing LCP</a>.</p>
<p>We do not measure how long your store takes to open. We measure image bytes. Load time also depends on the hosting, theme, scripts, and everything else on the page. The product image is simply a heavy part we can weigh.</p>

<h2 id="what-store-images-weigh">What store images actually weigh</h2>
<p>One real product image arrived as a 1,536 px JPEG weighing 176 KB. At the 800 px the screen needed, the AVIF version weighed 15.9 KB. That image was 91% lighter at the same perceived quality.</p>
<p>One image is not a catalogue. So we tested format separately: 14 images from two real stores, encoded 336 ways, with perceived quality equalized at SSIMULACRA2 70.</p>
<table><thead><tr><th>Format</th><th>Against JPEG, median</th><th>Won on</th></tr></thead><tbody><tr><td>WebP — the free plan's format</td><td>21.8% lighter</td><td>11 of 14 images</td></tr><tr><td>AVIF — the Pro plan's format</td><td>32.1% lighter</td><td>14 of 14</td></tr><tr><td>AVIF against WebP</td><td>about 21% lighter still</td><td>16 real derivatives, same width and quality</td></tr></tbody></table>
<p>Width matters too. Old uploads often keep traveling at their original size. We set a cap because we measured the alternative: for a 324-pixel space, the browser chose an image 42% heavier than another version the platform already had.</p>

<h2 id="the-category-math">The math of a category page</h2>
<p>Multiply the measured image by forty and the arithmetic gets loud. This is an illustration, not a measurement of a forty-image category on your store.</p>
<figure class="doc__fig doc__fig--diagram">
<svg class="machine" viewBox="0 0 920 300" role="img" aria-labelledby="wcs-t wcs-d" style="min-width:660px" xmlns="http://www.w3.org/2000/svg">
<title id="wcs-t">One measured product photo, multiplied by the forty photos of a category page</title>
<desc id="wcs-d">Top: the photo as the site sends it, 1,536 pixel JPEG at 176 KB; times forty photos is about 7,040 KB for the page's images. Bottom: the same photo served right, 800 pixel AVIF at 15.9 KB; times forty is about 636 KB. Ninety-one percent lighter, measured at the same perceived quality.</desc>
<text class="edge" x="8" y="26">AS SHIPPED TODAY</text>
<rect class="engine" x="40" y="40" width="220" height="72" rx="10"/>
<text x="150" y="70" text-anchor="middle">one product photo</text>
<text x="150" y="92" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">1,536 px JPEG · 176 KB</text>
<path class="pipe pipe--in" style="stroke-width:5" d="M268 76 L 448 76"/>
<text x="358" y="64" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">× 40 photos</text>
<rect class="mod" x="460" y="40" width="200" height="72" rx="10"/>
<text x="560" y="70" text-anchor="middle">the category page</text>
<text x="560" y="92" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">≈ 7,040 KB of images</text>
<text class="edge" x="8" y="166">SERVED RIGHT</text>
<rect class="engine" x="40" y="180" width="220" height="72" rx="10"/>
<text x="150" y="210" text-anchor="middle">the same photo</text>
<text x="150" y="232" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">800 px AVIF · 15.9 KB</text>
<path class="pipe pipe--out" style="stroke-width:5" d="M268 216 L 448 216"/>
<text x="358" y="204" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">× 40 photos</text>
<rect class="mod" x="460" y="180" width="200" height="72" rx="10"/>
<text x="560" y="210" text-anchor="middle">the category page</text>
<text x="560" y="232" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">≈ 636 KB of images</text>
<text x="756" y="140" text-anchor="middle" style="font-size:14px" fill="var(--nimbo-accent)">91% lighter,</text>
<text x="756" y="160" text-anchor="middle" style="font-size:13px" fill="var(--nimbo-text-muted)">measured on the photo</text>
</svg>
<figcaption>The arithmetic uses one measured image. It is not a new measurement of your store. Weigh your own page for that.</figcaption>
</figure>
<p>The same images also appear on product pages, search results, and related-product blocks. Repetition turns one heavy file into a catalogue problem.</p>

<h2 id="what-fixing-means">What fixing it means for a store</h2>
<p>Three things have to happen to every image. Re-uploading the catalogue is not one of them.</p>
<ol>
<li><b>Use the size the screen shows.</b> Never send a wider version than the site already has ready.</li>
<li><b>Use a lighter format.</b> WebP on the free plan. AVIF on Pro, about 21% lighter than WebP in the measured comparison above.</li>
<li><b>Deliver from a network, not the store's server.</b> Each image is prepared once. After that, our network — 335 cities in more than 125 countries — sends it to visitors. We measured the boundary: once the image is on the network, the store's server receives no request for it.</li>
</ol>
<p>This does not make a promise about checkout speed. It removes image delivery from the server. Those are different claims.</p>
<p>The free plan covers the home page, up to 50 new images a month in WebP. Category and product pages need the whole-site Pro plan: $9.90 a month, one price, AVIF, with no charge per visit, bandwidth, or image.</p>

<h2 id="weigh-your-store">Weigh your store's images</h2>
<p>Paste a category or product page into the <a href="/tools/website-image-size-checker/">website image size checker</a>. It weighs every image there and encodes the heaviest ones for real. Today's number is measured. The other is estimated.</p>
<p>The estimate's median error is 6.2 percentage points for AVIF and 10.2 for WebP, measured on eight stores the model had not seen. That limit belongs next to the number.</p>
<p>If a blog post is the slow page, read <a href="/blog/why-is-my-wordpress-site-so-slow/">why a WordPress site can feel slow</a>. If you want to work inside the media library, the <a href="/alternatives/shortpixel-vs-imagify/">ShortPixel and Imagify comparison</a> explains where each tool does the work.</p>
<ol>
<li>Paste the category or product page with the most images.</li>
<li>Read both numbers. See which images carry the weight.</li>
<li>If the store uses WooCommerce, install the <a href="/install">connector</a>. No account. No credit card. The home page starts shipping lighter right away.</li>
</ol>

<h2 id="questions">Questions</h2>
<details name="faq"><summary>Will this make my checkout faster?</summary><p class="body-text muted">We do not promise that. We measured image bytes, not checkout time. The network takes image delivery off the store's server; checkout performance still depends on code, database queries, hosting, and the plugins involved.</p></details>
<details name="faq"><summary>How many catalogue images can it cover?</summary><p class="body-text muted">The free plan covers the home page, with up to 50 new images a month in WebP. Pro covers every page and image in AVIF for a flat price, with no limit based on visits, bandwidth, or image count.</p></details>
<details name="faq"><summary>My store is not on WooCommerce. Can I still measure it?</summary><p class="body-text muted">Yes. Paste any public store page into the checker and it will weigh the images. The connector is for WordPress and WooCommerce today. Other platforms are planned, with no date.</p></details>
<details name="faq"><summary>Does it change my original product images?</summary><p class="body-text muted">No. Nothing is recompressed, moved, or deleted. The connector only changes the address used to deliver the images. Deactivate it and the store returns to the originals at once.</p></details>
]]></content:encoded>
  </item>
  <item>
   <title>Why is my WordPress site so slow? The images, measured</title>
   <link>https://nimbocdn.net/blog/why-is-my-wordpress-site-so-slow/</link>
   <guid isPermaLink="true">https://nimbocdn.net/blog/why-is-my-wordpress-site-so-slow/</guid>
   <pubDate>Fri, 04 Sep 2026 12:00:00 +0000</pubDate>
   <description>Slow WordPress? Plugins get checked first. Images rarely do. Weigh yours, see if they are the problem, and learn what the fix changes.</description>
   <content:encoded><![CDATA[<p class="subtitle">When WordPress is slow, plugins get checked first. Nobody weighs the images — and they are usually the heaviest part of the page.</p>
<p>Hosting, plugins, the theme, the database, the cache: all five can cause trouble. None is the only weight on the page.</p>
<p>A store uploads hundreds of product images. A blog adds more with every post. On most pages, those files are the heaviest thing there.</p>
<p>We measured it. On a real home page — a small site with nine images — those images weighed <strong>2,323 KB</strong>. At the size each screen draws and in a lighter format, the same nine weigh <strong>281 KB</strong>. That is 88% less image weight on every visit. Image by image. The method is in this article. So is the estimate's error margin.</p>

<h2 id="what-google-measures">What Google looks at on a slow page</h2>
<p>Google takes speed into account. The number is Largest Contentful Paint (LCP): how long the largest thing on screen takes to appear when someone opens the page.</p>
<blockquote><p>LCP measures the time from when the user initiates loading the page until the largest image or text block is rendered within the viewport.</p></blockquote>
<p>— <a href="https://web.dev/articles/optimize-lcp" target="_blank" rel="noopener noreferrer nofollow">web.dev, Google's guide to optimizing LCP</a>.</p>
<p>In plain English: the largest image or block of text. On a store, that is usually a product image. On a blog, it is often the image at the top.</p>
<p>We do not measure how long your site takes to open. We measure image bytes. We say that here because page-load time also depends on your hosting, theme, plugins, and everything else the page loads. Those image bytes are often the largest part traveling.</p>

<h2 id="is-it-the-images">Is it the images, or something else?</h2>
<p>Check before you install anything. Guess wrong, and you can spend a month fixing the wrong problem.</p>
<p>Three checks. All free.</p>
<table><thead><tr><th>What to do</th><th>What it tells you</th></tr></thead><tbody>
<tr><td>Run <a href="https://pagespeed.web.dev/" target="_blank" rel="noopener noreferrer nofollow">PageSpeed Insights</a> on that page</td><td>It identifies the largest element to appear. If that element is an image — as it is on most WordPress pages — this applies to you.</td></tr>
<tr><td>Weigh the images on that page</td><td>How many kilobytes they weigh today. Real bytes, not a percentage built on a guess.</td></tr>
<tr><td>Compare the dashboard with the site</td><td>If the WordPress dashboard is slow but the home page is not, images are not the problem. A plugin or the database is. No image tool will fix that.</td></tr>
</tbody></table>
<p>You can have both: heavy images and a slow plugin. Order matters. Weighing first costs nothing.</p>

<h2 id="how-heavy">How heavy are WordPress images, really?</h2>
<p>We measured <a href="/blog/image-weight-by-ecommerce-platform/">image weight on 41 real stores across 14 ecommerce platforms</a>.</p>
<p>The WordPress and WooCommerce stores — 7 stores, a small sample, and we say so — sent 2.5 to 2.7 times more bytes per pixel than the 12 Shopify stores. Between 0% and 48% of their images used a lighter format. Shopify was at 100%.</p>
<p>That extra weight comes from two places: the file is larger than the screen, and it is still a JPEG when lighter formats exist.</p>
<p>Format is something we can count. Same perceived quality — not the same quality setting, which is the comparison that lies. Fourteen images from two real stores, encoded 336 ways, with perceived quality equalized at SSIMULACRA2 70:</p>
<table><thead><tr><th>Format</th><th>Against JPEG</th><th>Won on</th></tr></thead><tbody>
<tr><td>WebP — the free plan's format</td><td>21.8% lighter</td><td>11 of 14 images</td></tr>
<tr><td>AVIF — the Pro plan's format</td><td>32.1% lighter</td><td>14 of 14</td></tr>
<tr><td>AVIF against WebP</td><td>about 21% lighter again</td><td>16 real versions, same width and quality</td></tr>
</tbody></table>
<p>Size does not mean “upload smaller images.” It means not sending more image than the visitor's screen can show.</p>
<p>We set a cap because we measured what happens without one: for a 324-pixel space, the browser chose an image 42% heavier than another version the site already had ready.</p>
<blockquote><p>Your server ships images instead of working. It keeps sending image after image to every visitor when its job is to run the site.</p></blockquote>
<p>That happens on your server. The next step is to take it off your server.</p>

<h2 id="what-fixing-means">What fixing it actually means</h2>
<p>Three things, for every image. Doing them by hand never ends: every new upload starts the work again. All three matter. The third is the one most sites miss:</p>
<ol>
<li><b>The right size.</b> The width the screen shows. Not the camera's width. Not whatever the theme uploaded. Never wider than a version your site already had.</li>
<li><b>A lighter format.</b> WebP for everything. AVIF where it matters. Those choices come from the measurements above, not a rule of thumb.</li>
<li><b>Delivery from a network, not your server.</b> Each image is prepared once. Then it leaves our network — 335 cities in more than 125 countries — for every visitor. Your server sees the image once. On later visits, it does not. We measured that too: once the image is on the network, the server receives no request for it.</li>
</ol>
<figure class="doc__fig doc__fig--diagram">
<svg class="machine" viewBox="0 0 920 340" role="img" aria-labelledby="wls-t wls-d" style="min-width:660px" xmlns="http://www.w3.org/2000/svg">
<title id="wls-t">What your server ships today, and what it ships when the images travel on a CDN</title>
<desc id="wls-d">Top: today, the server sends every image to every visitor, on every visit. Bottom: with a CDN that does images, the server is asked once per image, and a global network delivers to every visitor after that.</desc>
<text class="edge" x="8" y="26">TODAY</text>
<rect class="engine" x="40" y="40" width="160" height="72" rx="10"/>
<text x="120" y="81" text-anchor="middle">your server</text>
<rect class="mod" x="758" y="24" width="122" height="40" rx="8"/>
<text x="819" y="49" text-anchor="middle" style="font-size:13px">visitor</text>
<rect class="mod" x="758" y="76" width="122" height="40" rx="8"/>
<text x="819" y="101" text-anchor="middle" style="font-size:13px">visitor</text>
<rect class="mod" x="758" y="128" width="122" height="40" rx="8"/>
<text x="819" y="153" text-anchor="middle" style="font-size:13px">visitor</text>
<path class="pipe pipe--in" d="M204 76 C 420 60, 620 44, 754 44"/>
<path class="pipe pipe--in" d="M204 76 C 420 76, 620 96, 754 96"/>
<path class="pipe pipe--in" d="M204 76 C 420 96, 620 148, 754 148"/>
<text x="480" y="176" text-anchor="middle" style="font-size:13px" fill="var(--nimbo-text-muted)">every image, on every visit</text>
<text class="edge" x="8" y="206">WITH A CDN THAT DOES IMAGES</text>
<rect class="engine" x="40" y="220" width="160" height="72" rx="10"/>
<text x="120" y="261" text-anchor="middle">your server</text>
<rect class="mod" x="392" y="220" width="176" height="72" rx="10"/>
<text x="480" y="249" text-anchor="middle">our network</text>
<text x="480" y="271" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">335 cities, 125+ countries</text>
<path class="pipe pipe--out" style="stroke-width:3" d="M204 256 L 386 256"/>
<text x="295" y="244" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-accent)">asked once per image</text>
<rect class="mod" x="758" y="204" width="122" height="40" rx="8"/>
<text x="819" y="229" text-anchor="middle" style="font-size:13px">visitor</text>
<rect class="mod" x="758" y="256" width="122" height="40" rx="8"/>
<text x="819" y="281" text-anchor="middle" style="font-size:13px">visitor</text>
<rect class="mod" x="758" y="308" width="122" height="28" rx="8"/>
<text x="819" y="327" text-anchor="middle" style="font-size:13px">visitor</text>
<path class="pipe pipe--out" d="M572 256 C 640 240, 700 224, 754 224"/>
<path class="pipe pipe--out" d="M572 256 C 640 256, 700 276, 754 276"/>
<path class="pipe pipe--out" d="M572 256 C 640 276, 700 322, 754 322"/>
</svg>
<figcaption>The third part of the fix is the one your server feels: it stops shipping image after image, and gets back to what counts — the site, the store, the checkout.</figcaption>
</figure>
<p>No slogan. The visitor downloads less. The server sends less.</p>
<p>That is what an image network changes. Ten visitors or ten thousand at once: the images still come from the network.</p>

<h2 id="weigh-your-own">Weigh your own site's images</h2>
<p>Do not take our word for it.</p>
<p>Paste a page into the <a href="/tools/website-image-size-checker/">website image size checker</a>. It weighs every image on that page, encodes the heaviest ones for real, and puts two numbers side by side: today's, measured; the other, estimated.</p>
<p>That estimate has a median error of 6.2 percentage points for AVIF and 10.2 for WebP, measured on eight stores the model had not seen. We publish the error. A number that hides it is not much of a number.</p>
<p>If the site runs on WordPress, the report offers <a href="/install">the connector</a>. Two minutes in the dashboard. No account. No credit card. The home page stays free forever: up to 50 new images a month, in WebP, sized for each visitor.</p>
<p>The whole site in AVIF is the Pro plan: $9.90 a month. One price. No charge per visit, bandwidth, or overage. Your original files stay untouched. Deactivate the connector and everything returns to the way it was.</p>
<ol>
<li>Paste a page — the home page, or the category where the images are.</li>
<li>Read both numbers. See which images carry the weight.</li>
<li>If it runs on WordPress, install the <a href="/install">connector</a>. The home page starts shipping lighter right away.</li>
</ol>

<h2 id="questions">Questions</h2>
<details name="faq"><summary>Does this make my WordPress site faster?</summary><p class="body-text muted">It makes the images weigh less, and they are usually the heaviest part of the page. We do not measure how long the page takes to open. That also depends on the hosting, theme, plugins, and everything else it loads.</p></details>
<details name="faq"><summary>My site is not on WordPress. Can I still use this?</summary><p class="body-text muted">Yes, to measure it: paste the page and you get the numbers. The connector is for WordPress today. Other platforms are planned, with no release date.</p></details>
<details name="faq"><summary>What do the free and Pro plans cover?</summary><p class="body-text muted">The free plan covers the home page: up to 50 new images a month, WebP at three sizes, unlimited visits, forever, with no credit card. Pro covers every page and image in AVIF for a flat price, with no charge per visit or bandwidth.</p></details>
<details name="faq"><summary>Can it break my site?</summary><p class="body-text muted">No. Your original files stay untouched. If anything fails — the service, one image, anything — the visitor sees the original. We tested the four worst cases; none ends with a broken image. Deactivate the connector and everything reverts at once.</p></details>
]]></content:encoded>
  </item>
  <item>
   <title>ShortPixel vs Imagify: the difference is where the work runs</title>
   <link>https://nimbocdn.net/alternatives/shortpixel-vs-imagify/</link>
   <guid isPermaLink="true">https://nimbocdn.net/alternatives/shortpixel-vs-imagify/</guid>
   <pubDate>Fri, 04 Sep 2026 12:00:00 +0000</pubDate>
   <description>Two WordPress image tools that compress — and bill differently. What each one charges, touches and delivers; and the row that runs it all in the cloud.</description>
   <content:encoded><![CDATA[<p class="subtitle">ShortPixel Adaptive Images and Imagify solve different jobs. Imagify compresses files in your WordPress library. ShortPixel rewrites image URLs and delivers from its cloud. That distinction decides what each tool meters.</p>
<p><strong>Verdict:</strong> choose Imagify if you want local compression and do not need a CDN. Choose ShortPixel if you want cloud delivery and accept a credit meter plus a 500 GB monthly traffic cap. NimboCDN, our product, puts transformation and delivery in the cloud; its paid plan charges a flat fee without usage meters.</p>
<table><thead><tr><th></th><th>ShortPixel Adaptive Images</th><th>Imagify</th><th>NimboCDN</th></tr></thead><tbody><tr><td>Bills by</td><td>credits/month</td><td>MB of images/month</td><td>paid plan: flat fee, nothing metered</td></tr><tr><td>The cap</td><td>500 GB CDN traffic/month</td><td>20 MB free · 500 MB · then unlimited</td><td>paid plan: no visit, bandwidth or image-count cap</td></tr><tr><td>Where the work runs</td><td>their cloud, via URL rewrite</td><td>your own server</td><td>our cloud, 335 cities</td></tr><tr><td>Your original files</td><td>untouched</td><td>replaced, with backup</td><td>untouched, ever</td></tr><tr><td>CDN, and whose</td><td>bunny.net (named in their own listing)</td><td>none — it doesn't claim one</td><td>our own network</td></tr><tr><td>Modern formats</td><td>WebP, AVIF</td><td>WebP, AVIF — even in the free plan</td><td>WebP free · AVIF Pro, 21.8% lighter than WebP at the median</td></tr><tr><td>Free plan</td><td>100 credits ≈ 500 visits/month</td><td>20 MB/month</td><td>your home page, 50 new images/month, forever</td></tr><tr><td>Paid entry</td><td>$9.99/month (Unlimited)</td><td>$5.99/month (Growth)</td><td>$9.90/month, whole site</td></tr><tr><td>Refunds</td><td>requests within 14 days</td><td>cancellation any time, no refunds</td><td>no refunds; cancel from the panel</td></tr></tbody></table>

<h2 id="why-compared">Why people compare these two</h2>
<p>Both have a free plan and both make WordPress images lighter. The useful comparison is the unit: ShortPixel counts credits, while Imagify counts megabytes of new images. Price alone does not tell you which limit your site will reach first.</p>

<h2 id="methodology">Method, and what we couldn't verify</h2>
<p>Every competitor figure comes from WordPress.org, its official API, or the vendor’s pricing and policy pages. Installations, ratings and versions were checked on 4 September 2026. ShortPixel renders prices with JavaScript, so JJ Nieva verified them in a browser on 31 August 2026 and archived the capture; they were not available in the raw HTML. Imagify’s plans were present in its HTML. Claims without a first-party source were left out.</p>

<h2 id="shortpixel">ShortPixel Adaptive Images</h2>
<p>ShortPixel is the cloud option. Adaptive Images rewrites image URLs and serves resized, modern-format versions while the originals stay on your server. Its paid Unlimited offer publishes a 500 GB monthly CDN cap. When quota runs out, the plugin says it will <em>serve the original images from your server, without compression or resizing, until the quota resets</em>.</p>
<div class="pc"><div class="pc--good"><h3>What it does well</h3><ul><li><b>It never touches your originals.</b> The library stays exactly as it was on your server.</li><li><b>The work runs in their cloud.</b> Your server answers an image request by not answering it — the URL points elsewhere.</li><li><b>It names its network.</b> bunny.net, right in its own WordPress.org listing — a CDN with over 90 edge locations by that listing's words.</li><li><b>Both modern formats.</b> WebP and AVIF support, verified.</li></ul></div><div class="pc--bad"><h3>Where it falls short</h3><ul><li><b>A credit is a vendor-specific unit.</b> The free plan equates 100 credits with 500 MB of CDN use, or about 500 visits; the paid conversion is not published.</li><li><b>500 GB of CDN traffic a month.</b> Traffic is capped even on the Unlimited plan — the name says one thing, the cap says another.</li><li><b>Refund requests have a deadline.</b> The published window is 14 days after purchase.</li></ul></div></div>

<h2 id="imagify">Imagify</h2>
<p>Imagify is the library compressor. It optimizes files at upload or in bulk, then your server delivers them without a CDN. Its listing says originals move to a backup folder, provided the Backup option stays active. The free plan includes WebP and AVIF conversion within 20 MB a month.</p>
<div class="pc"><div class="pc--good"><h3>What it does well</h3><ul><li><b>AVIF in the free plan.</b> Modern formats are not held back for paying users — rare in this category.</li><li><b>The most installed of the pair.</b> 1,000,000+ active installations, verified on the official API today.</li><li><b>Plans are cheap and legible.</b> Starter free, Growth $5.99/month, Infinite $11.99/month, $5 per additional GB.</li><li><b>Your originals can be restored.</b> A backup folder exists — provided you keep the option active.</li></ul></div><div class="pc--bad"><h3>Where it falls short</h3><ul><li><b>The work runs on your server.</b> Compression, bulk jobs, re-compression — your hosting does all of it.</li><li><b>No CDN.</b> The optimized files are served from your own server, to every visitor, on every view.</li><li><b>Your originals are replaced.</b> The optimized file takes their place; the backup is a setting you must not turn off.</li><li><b>The meter counts your library.</b> 20 MB a month of new images goes fast for a store.</li></ul></div></div>

<h2 id="nimbocdn">NimboCDN — the row that does a different job</h2>
<p>NimboCDN handles a third job: transformation and delivery. The <a href="/install">connector</a> rewrites image URLs; each image is prepared once for the requested screen and format, then served from our network in 335 cities across more than 125 countries. A cached image makes <b>zero</b> requests to the transformation service, which we measured. The original files stay unchanged, and deactivating the connector restores the original URLs.</p>
<p>ShortPixel also moves delivery off your server. Imagify concedes something we do not offer free: AVIF in its free plan. NimboCDN’s free plan covers the home page in WebP, up to 50 new images a month. The paid plan covers the whole site with AVIF for a flat $9.90 a month and does not meter visits, MB, GB or image count.</p>
<div class="pc"><div class="pc--good"><h3>What it does well</h3><ul><li><b>Cached images bypass transformation.</b> A cache hit makes zero requests to the transformation service. Measured.</li><li><b>Born as an image CDN.</b> Not a compressor that added delivery; delivery is the product.</li><li><b>Transformation and delivery leave your server.</b> After the first image request, the network serves the cached result.</li><li><b>The paid plan has no usage meter.</b> Ten visitors or ten thousand, the flat monthly fee is unchanged.</li><li><b>Originals stay unchanged.</b> Deactivate the connector and the original URLs return right away.</li></ul></div><div class="pc--bad"><h3>Where it falls short</h3><ul><li><b>The free plan covers the home page only.</b> Categories and product pages — where a store's photos actually live — are the Pro plan.</li><li><b>AVIF is the paid format.</b> The free plan delivers WebP; Imagify gives you AVIF for free within 20 MB.</li><li><b>WordPress only, for now.</b> Other platforms are planned with no date — we don't promise what we can't ship.</li></ul></div></div>
<figure class="doc__fig doc__fig--diagram">
<svg class="machine" viewBox="0 0 920 460" role="img" aria-labelledby="svi-t svi-d" style="min-width:660px" xmlns="http://www.w3.org/2000/svg">
<title id="svi-t">Where the work runs in each of the three</title>
<desc id="svi-d">Three lanes. Imagify: the work runs on your server, which also delivers every optimized file to every visitor. ShortPixel: your server only rewrites addresses, and a cloud with a CDN delivers. NimboCDN: your server is asked once per image, and our network of 335 cities delivers to every visitor after that.</desc>
<text class="edge" x="8" y="26">IMAGIFY — the work on your server</text>
<rect class="engine" x="40" y="40" width="200" height="64" rx="10"/>
<text x="140" y="78" text-anchor="middle">your server</text>
<path class="pipe pipe--in" d="M248 72 C 460 60, 640 56, 754 56"/>
<text x="500" y="44" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">compresses · then delivers every optimized file, every visit — no CDN</text>
<rect class="mod" x="758" y="36" width="122" height="40" rx="8"/>
<text x="819" y="61" text-anchor="middle" style="font-size:13px">visitor</text>
<text class="edge" x="8" y="150">SHORTPIXEL ADAPTIVE IMAGES — their cloud</text>
<rect class="engine" x="40" y="164" width="200" height="64" rx="10"/>
<text x="140" y="202" text-anchor="middle">your server</text>
<path class="pipe pipe--out" style="stroke-width:3" d="M248 196 L 400 196"/>
<text x="324" y="184" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">only rewrites addresses</text>
<rect class="mod" x="408" y="164" width="180" height="64" rx="10"/>
<text x="498" y="196" text-anchor="middle">their cloud + bunny.net</text>
<text x="498" y="216" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">credits · 500 GB/month cap</text>
<path class="pipe pipe--out" d="M594 196 C 680 180, 700 150, 754 150"/>
<rect class="mod" x="758" y="130" width="122" height="40" rx="8"/>
<text x="819" y="155" text-anchor="middle" style="font-size:13px">visitor</text>
<text class="edge" x="8" y="276">NIMBOCDN — everything in our cloud</text>
<rect class="engine" x="40" y="290" width="200" height="64" rx="10"/>
<text x="140" y="328" text-anchor="middle">your server</text>
<path class="pipe pipe--out" style="stroke-width:3" d="M248 322 L 400 322"/>
<text x="324" y="310" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">asked once per image</text>
<rect class="mod" x="408" y="290" width="180" height="64" rx="10"/>
<text x="498" y="322" text-anchor="middle">our network</text>
<text x="498" y="342" text-anchor="middle" style="font-size:12px" fill="var(--nimbo-text-muted)">335 cities · flat fee, nothing metered</text>
<path class="pipe pipe--out" d="M594 322 C 680 306, 700 256, 754 256"/>
<rect class="mod" x="758" y="236" width="122" height="40" rx="8"/>
<text x="819" y="261" text-anchor="middle" style="font-size:13px">visitor</text>
<text x="420" y="420" text-anchor="middle" style="font-size:13px" fill="var(--nimbo-text-muted)">The same question for all three: where does the work of your images run — and what does the meter on top of it count.</text>
</svg>
<figcaption>The three lanes of this comparison. Imagify optimizes and serves from your server; ShortPixel's cloud takes the serving with a credit meter and a traffic cap; NimboCDN's network takes it with a flat fee and no meter.</figcaption>
</figure>

<h2 id="migration">How to leave each one without losing anything</h2>
<p>The exit story is part of the choice, not a footnote.</p>
<ol>
<li><b>Leaving Imagify:</b> restore from the backup folder, and check the option is active before you uninstall — their own listing says originals “can be restored at any time,” provided the Backup option stayed on. Then your server serves the original files again.</li>
<li><b>Leaving ShortPixel Adaptive Images:</b> deactivate. The addresses revert to your own, and the untouched originals were always the ones being served from your server anyway.</li>
<li><b>Leaving NimboCDN:</b> deactivate the connector. Every address goes back as it was, instantly, with nothing to clean up — verified in our own uninstall test: no leftover options, no temporary data, no scheduled tasks.</li>
</ol>

<h2 id="decision-tree">Which one fits which site</h2>
<ul>
<li><b>If your pages are mostly photos uploaded once and never re-uploaded, and you want them optimized where they live:</b> Imagify does that job, honestly and cheaply — count your MB first.</li>
<li><b>If your site regenerates thumbnails often or you want delivery off your server with a metered plan:</b> ShortPixel Adaptive Images — read the credit arithmetic and the 500 GB cap against your traffic before committing.</li>
<li><b>If you want size, format and delivery handled elsewhere under a flat paid plan:</b> install the NimboCDN connector. No account or credit card is required for the free home-page plan, and it starts serving right away.</li>
</ul>
<p>And if you're not comparing tools yet — you're still weighing whether images are the problem at all — <a href="/blog/why-is-my-wordpress-site-so-slow/">that question has its own piece</a>, with the diagnostic and the measurements behind it. If it's a store full of product photos, <a href="/blog/woocommerce-slow/">the WooCommerce piece separates what images fix from what they don't</a>. To weigh a specific page of yours before deciding anything, the <a href="/tools/website-image-size-checker/">website image size checker</a> takes any URL and measures what its images really weigh — or read <a href="/blog/serve-images-in-next-gen-formats/">what that Lighthouse line about modern formats</a> actually meant. And if the tool you are leaving is a third one, the <a href="/alternatives/optimole/">five plugins compared by what each of them meters</a> covers Optimole, Smush and EWWW as well.</p>

<aside class="cta"><h3>Neither megabytes nor credits</h3><p>NimboCDN charges a flat rate and counts neither: each image is transformed once and stays cached. Your originals are never touched, and deactivating puts every address back as it was.</p><a class="btn" href="/install" data-cta="body-alternatives">Install the connector</a><small class="fine">Free forever on your home page · No credit card · Reversible in one click</small></aside>

<h2 id="questions">Questions</h2>
<details name="faq"><summary>Is one of them free?</summary><p class="body-text muted">All three have a free tier, and they measure different things: Imagify gives 20 MB of images a month, ShortPixel gives 100 credits (about 500 visits), and NimboCDN covers your home page — up to 50 new images a month, forever, no credit card.</p></details>
<details name="faq"><summary>Do any of them touch my original image files?</summary><p class="body-text muted">ShortPixel Adaptive Images and NimboCDN don't — both serve by changing addresses, and the originals stay as they are. Imagify replaces them with the optimized version and keeps the originals in a backup folder, as long as the Backup option stays active.</p></details>
<details name="faq"><summary>Which one serves AVIF?</summary><p class="body-text muted">All three support WebP and AVIF. The differences are elsewhere: Imagify includes AVIF even in its free 20 MB tier; NimboCDN delivers AVIF on the Pro plan (WebP is the free format), 21.8% lighter than WebP at the median and equal perceived quality, by our measurements.</p></details>
<details name="faq"><summary>Can I use two of them at once?</summary><p class="body-text muted">Nothing good comes from it. Two image optimizers fighting over the same addresses is its own classic failure mode — pick one, and if you're torn, the decision tree above is written for exactly that.</p></details>
<details name="faq"><summary>Which is cheapest for a big catalogue?</summary><p class="body-text muted">There is no universal answer because the units differ. Imagify bills the megabytes of new images, ShortPixel uses credits and publishes a 500 GB traffic cap on Unlimited, and NimboCDN’s paid plan is flat. Compare your image uploads and delivery traffic before choosing.</p></details>
<details name="faq"><summary>What happens if I go over the limit?</summary><p class="body-text muted">Imagify: your plan's MB ceiling applies, extra GB is $5. ShortPixel, in their own words, serves “the original images from your server, without compression or resizing, until the quota resets.” NimboCDN has no traffic meter to go over — the flat fee is the whole bill.</p></details>
<details name="faq"><summary>My site isn't WordPress — do these still apply?</summary><p class="body-text muted">All three are WordPress plugins, so the comparison is a WordPress question. The measurement tool works on any platform, and NimboCDN's connector exists for WordPress today with other platforms planned and no date promised.</p></details>]]></content:encoded>
  </item>
  <item>
   <title>“Serve images in next-gen formats”: what it means now</title>
   <link>https://nimbocdn.net/blog/serve-images-in-next-gen-formats/</link>
   <guid isPermaLink="true">https://nimbocdn.net/blog/serve-images-in-next-gen-formats/</guid>
   <pubDate>Fri, 04 Sep 2026 12:00:00 +0000</pubDate>
   <description>Lighthouse renamed this image audit. Here is what it measures, what it estimates, and how to check the image bytes on your own page.</description>
   <content:encoded><![CDATA[<p class="subtitle">“Serve images in next-gen formats” used to be a red line in Lighthouse. Since Lighthouse 13, it is called “Serve images in modern formats” inside the Improve image delivery insight.</p>
<p>The name changed. The job did not. Lighthouse finds older image formats and estimates what could be removed by converting them.</p>
<p>Google says it directly: “This audit has moved into the Improve image delivery insight as of Lighthouse 13.”</p>

<h2 id="what-it-meant">What the Lighthouse warning measures</h2>
<p>The audit checks BMP, JPEG, and PNG images on the page. It then models the possible reduction from WebP and AVIF.</p>
<blockquote><p>Lighthouse collects each BMP, JPEG, and PNG image on the page, converts each to WebP, and estimates the AVIF file size, reporting the potential savings based on the conversion figures.</p></blockquote>
<p>— <a href="https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images" target="_blank" rel="noopener noreferrer nofollow">developer.chrome.com, the audit documentation</a>.</p>
<p>The important word is <em>estimates</em>. The bytes your page sent are measured. The possible WebP or AVIF weight is not. Lighthouse also leaves an image out when the potential reduction is below 8 KiB, so the list focuses on larger opportunities.</p>

<h2 id="what-next-gen-means">What “next-gen” formats are</h2>
<p>In this audit, they are WebP and AVIF instead of JPEG or PNG. The comparison only means something at the same perceived quality.</p>
<p>We tested that part ourselves: 14 images from two real stores, 336 encodes, with perceived quality equalized at SSIMULACRA2 70.</p>
<table><thead><tr><th>Format</th><th>Against JPEG, median</th><th>Won on</th></tr></thead><tbody><tr><td>WebP — the free plan's format</td><td>21.8% lighter</td><td>11 of 14 images</td></tr><tr><td>AVIF — the Pro plan's format</td><td>32.1% lighter</td><td>14 of 14</td></tr><tr><td>AVIF against WebP</td><td>about 21% lighter still</td><td>16 real derivatives, same width and quality</td></tr></tbody></table>
<figure class="doc__fig doc__fig--diagram">
<svg class="machine" viewBox="0 0 920 280" role="img" aria-labelledby="ngf-t ngf-d" style="min-width:640px" xmlns="http://www.w3.org/2000/svg">
<title id="ngf-t">The same images, in the three formats, at equal perceived quality</title>
<desc id="ngf-d">Three bars: JPEG as the reference at one hundred percent, WebP at seventy-eight point two percent, AVIF at sixty-seven point nine percent. The median of fourteen real images from two real stores, equalized to the same perceived quality.</desc>
<text class="edge" x="8" y="26">THE SAME IMAGES, AT THE SAME PERCEIVED QUALITY</text>
<text x="90" y="96" text-anchor="end">JPEG</text>
<rect class="mod" x="100" y="70" width="640" height="52" rx="8"/>
<text x="756" y="101" style="font-size:14px">100%</text>
<text x="90" y="166" text-anchor="end">WebP</text>
<rect class="engine" x="100" y="140" width="500" height="52" rx="8"/>
<text x="616" y="171" style="font-size:14px">78.2% · won on 11 of 14</text>
<text x="90" y="236" text-anchor="end">AVIF</text>
<rect class="engine" x="100" y="210" width="435" height="52" rx="8"/>
<text x="551" y="241" style="font-size:14px">67.9% · won on 14 of 14</text>
</svg>
<figcaption>Median weight at the same perceived quality, across 14 images from two real stores. We encoded them 336 ways.</figcaption>
</figure>
<p>Those are file-weight measurements, not page-load times. We did not measure how long a site took to open. Hosting, scripts, caching, and the rest of the page still matter.</p>
<p>Browser support matters too. Google's audit notes that WebP, AVIF, and WebM do not work on iPhones below iOS 16. Delivery has to check what each browser accepts and keep the original as the fallback.</p>

<h2 id="wordpress">What to do in WordPress</h2>
<p>Google's WordPress advice is to use a plugin or service that converts uploads automatically. Automatic is the useful part. Doing a catalogue by hand never ends.</p>
<p>Tools take different routes. Some rewrite files in the media library and keep backups. NimboCDN changes the image address at delivery time. The originals stay untouched, and deactivating the connector restores the old delivery at once. The <a href="/alternatives/shortpixel-vs-imagify/">ShortPixel and Imagify comparison</a> shows how two library-based tools differ.</p>
<p>If a product category is the slow page, start with what images can and cannot fix in <a href="/blog/woocommerce-slow/">WooCommerce</a>. For the whole site, rule out the other causes of a <a href="/blog/why-is-my-wordpress-site-so-slow/">slow WordPress site</a>.</p>

<h2 id="check-yours">Check the image bytes on your page</h2>
<p>Paste a public page below. The checker weighs every image that travels and encodes the heaviest ones for real. Today's number is measured. The possible after is estimated.</p>
<p>That estimate has a median error of 6.2 percentage points for AVIF and 10.2 for WebP, measured on eight stores the model had not seen. The full method is on the <a href="/tools/website-image-size-checker/">website image size checker</a>.</p>
<p>If the site uses WordPress, the report offers the <a href="/install">connector</a>. For a single file, the free compress image tool works without leaving your browser. Two minutes. No account. No credit card. The home page starts shipping lighter right away.</p>
<!--scanner-->
<p class="caption muted">Today is measured: those bytes traveled. With NimboCDN is estimated, and the label stays beside the number.</p>

<h2 id="questions">Questions</h2>
<details name="faq"><summary>Is “Serve images in modern formats” the same audit?</summary><p class="body-text muted">Yes. Lighthouse 13 moved the old “Serve images in next-gen formats” audit into Improve image delivery and renamed it. Both names refer to sending WebP or AVIF instead of older formats such as JPEG and PNG.</p></details>
<details name="faq"><summary>Is changing format the same as compressing an image?</summary><p class="body-text muted">No. A format is the encoding used for the image. Compression controls how that encoding spends bytes. The comparison above holds perceived quality constant so the weight difference comes from the format, not from making one image look worse.</p></details>
<details name="faq"><summary>Does every browser accept AVIF?</summary><p class="body-text muted">No. Support is narrower than WebP. Delivery should check the formats a browser accepts and fall back to the original when needed. NimboCDN does both, without changing the original file.</p></details>
<details name="faq"><summary>Will fixing this make the whole site fast?</summary><p class="body-text muted">We cannot claim that from these measurements. Lighter images remove bytes, and images are often the heaviest part of a page. We did not measure page-load time, which also depends on hosting, scripts, plugins, caching, and the rest of the page.</p></details>
]]></content:encoded>
  </item>
  <item>
   <title>Website image size checker: measure the bytes</title>
   <link>https://nimbocdn.net/tools/website-image-size-checker/</link>
   <guid isPermaLink="true">https://nimbocdn.net/tools/website-image-size-checker/</guid>
   <pubDate>Thu, 03 Sep 2026 12:00:00 +0000</pubDate>
   <description>Measure the bytes in every image on a page and estimate its weight after resizing and WebP conversion. Free, no account, no credit card.</description>
   <content:encoded><![CDATA[<p class="subtitle">Paste the address of one page: your home page, a category, or a product page. The checker measures the image bytes served now and estimates the same images resized and converted to WebP. Free, no account, no credit card, and no changes to your site.</p>

<!--scanner-->

<h2 id="why-heavy">Why your images carry extra bytes</h2>
<p>A product photo often leaves the camera about 3,000 pixels wide. You upload it, and the platform keeps the original while generating six or eight smaller versions. That part works as intended.</p>
<p>The extra weight appears at delivery. A theme may choose a 1,536-pixel image for an 800-pixel slot. Format adds another gap: across 14 images from two real stores, WebP was 21.8% lighter than JPEG at the median when perceived quality was held at the same point. WebP won in 11 of those 14 comparisons. Your visitor downloads every extra byte.</p>
<figure class="doc__fig">
<picture><source type="image/avif" srcset="/assets/content/image-analyzer/image-bigger-than-the-space-it-fills.avif"><source type="image/webp" srcset="/assets/content/image-analyzer/image-bigger-than-the-space-it-fills.webp"><img src="/assets/content/image-analyzer/image-bigger-than-the-space-it-fills.png" alt="A cheetah holds an image as wide as the page beside the much smaller screen space it needs to fill" width="1200" height="751" loading="lazy" decoding="async"></picture>
<figcaption>The file sent by the site and the space that draws it are rarely the same size. The difference travels with every visit.</figcaption>
</figure>
<p>On September 3, 2026, we measured the home pages of 41 stores across 14 platforms. The WordPress and WooCommerce stores served between 2.5 and 2.7 times more bytes per pixel than the Shopify stores. This was a small, uneven sample: 7 WordPress stores and 12 Shopify stores. Treat it as a measured signal, not a census.</p>

<h3>Where those extra bytes land</h3>
<p>Image weight has three direct costs.</p>
<table>
<thead><tr><th>Where</th><th>What happens</th></tr></thead>
<tbody>
<tr><td>Your visitor's phone</td><td>It downloads bytes the screen does not use.</td></tr>
<tr><td>Your server</td><td>It sends those extra bytes again with each image request.</td></tr>
<tr><td>Your time</td><td>You resize, compress, and export files by hand.</td></tr>
</tbody>
</table>
<p>LCP measures the time until the largest image or text block is rendered in the viewport, as the <a href="https://web.dev/articles/optimize-lcp" target="_blank" rel="noopener noreferrer nofollow">web.dev documentation</a> explains. On a product page, that block is often an image. This checker measures image bytes. It does not measure page-load time or diagnose hosting, theme, or checkout performance.</p>

<h2 id="why-tools-guess">Why a fixed percentage misses the result</h2>
<p>Multiplying today's weight by one percentage is quick. It also treats every photograph, illustration, size, and format as if they compressed alike.</p>
<p>We tested that baseline on 8 stores held out from the model. Its median image-by-image error was 59.4%. The estimator on this page reduced that error, but its output remains a prediction and is labeled <strong>estimated</strong>.</p>
<figure class="doc__fig">
<picture><source type="image/avif" srcset="/assets/content/image-analyzer/guessing-versus-weighing.avif"><source type="image/webp" srcset="/assets/content/image-analyzer/guessing-versus-weighing.webp"><img src="/assets/content/image-analyzer/guessing-versus-weighing.png" alt="A blindfolded cheetah points into empty space while a scale beside it weighs a stack of images" width="1200" height="702" loading="lazy" decoding="async"></picture>
<figcaption>A fixed percentage guesses. Encoding the image provides evidence for the estimate.</figcaption>
</figure>
<p>Lighthouse, the Chrome tool behind the audit on <a href="/blog/serve-images-in-next-gen-formats/">next-gen image formats</a>, documents two limits: it converts images to WebP but estimates AVIF size, and it omits images with potential savings below 8 KiB (<a href="https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images" target="_blank" rel="noopener noreferrer nofollow">developer.chrome.com</a>). Measured bytes and estimated output need different labels.</p>

<h2 id="how-it-measures">How this checker measures image weight</h2>
<p>The checker opens the page you provide in a real browser, sees the images your visitors see, and counts the bytes that were actually downloaded. It then resizes and encodes those images as WebP to estimate what they would weigh when delivered at the needed width.</p>
<ol>
<li><strong>We read one page.</strong> We open it in a real browser, so we see the images your visitors see — including the ones JavaScript inserts and the ones that load as you scroll. We do not crawl the rest of the site.</li>
<li><strong>We weigh each image.</strong> We count the response bytes and read its real width and height from the file header.</li>
<li><strong>We encode the image.</strong> The browser decodes it, reduces it to the width used by the page, and encodes a WebP file. Nothing about your site is changed.</li>
</ol>
<h3>Measured now, estimated after conversion</h3>
<p>The current weight is <strong>measured</strong>: those bytes came from your server. The WebP weight is <strong>estimated</strong>. It comes from a real encode of every image we could read, then receives a small correction because the browser's encoder is not byte-identical to the delivery encoder. The corrected value is still a prediction, so estimated items keep that label in the report.</p>
<figure class="doc__fig doc__fig--diagram">
<svg class="machine" viewBox="0 0 920 350" role="img" aria-labelledby="mae-t-en mae-d-en" style="min-width:680px" xmlns="http://www.w3.org/2000/svg">
<title id="mae-t-en">What the checker measures and estimates</title>
<desc id="mae-d-en">The top row fetches the page and counts the exact image bytes. The bottom row resizes each image to the width used by the page and encodes it as WebP for the estimate.</desc>
<text class="edge" x="8" y="24">MEASURED</text>
<rect class="engine" x="32" y="38" width="200" height="80" rx="10"/>
<text class="mod-t" x="132" y="72">your page</text>
<text class="mod-s" x="132" y="95">the one you paste</text>
<path class="pipe pipe--in" d="M236 78 L 292 78"/>
<rect class="mod" x="296" y="38" width="268" height="80" rx="10"/>
<text class="mod-t" x="430" y="72">we weigh every image</text>
<text class="mod-s" x="430" y="95">the exact response bytes</text>
<path class="pipe pipe--in" d="M568 78 L 624 78"/>
<g class="chip chip--meter"><rect x="628" y="48" width="260" height="60" rx="10"/><text x="758" y="84">today's image weight</text></g>
<text class="edge" x="8" y="194">ESTIMATED</text>
<rect class="mod" x="32" y="208" width="248" height="80" rx="10"/>
<text class="mod-t" x="156" y="242">we resize it</text>
<text class="mod-s" x="156" y="265">to the width the page uses</text>
<path class="pipe pipe--out" d="M284 248 L 340 248"/>
<rect class="mod" x="344" y="208" width="248" height="80" rx="10"/>
<text class="mod-t" x="468" y="242">we re-encode it</text>
<text class="mod-s" x="468" y="265">as WebP</text>
<path class="pipe pipe--out" d="M596 248 L 624 248"/>
<g class="chip chip--own"><rect x="628" y="218" width="260" height="60" rx="10"/><text x="758" y="254">estimated WebP weight</text></g>
<text class="note" x="32" y="330">The delivery encoder is different, so the corrected WebP total remains an estimate.</text>
</svg>
<figcaption>One row counts bytes that exist. The other encodes WebP files and produces a labeled estimate.</figcaption>
</figure>

<h2 id="the-report">What the report includes</h2>
<p>The total is backed by an image-by-image breakdown.</p>
<ul>
<li><strong>Current and estimated totals</strong>, in kilobytes and as a percentage.</li>
<li><strong>Weight, dimensions, and format</strong> for every image the page downloads.</li>
<li><strong>An estimated label</strong> wherever the result is a model output rather than measured bytes.</li>
<li><strong>A report by email</strong>, available when you ask us to send it.</li>
<li><strong>The files the checker could convert to WebP</strong>, available to download for two days.</li>
</ul>
<h3>What the WebP result means</h3>
<p>The main result uses WebP because that is the format included in the free plan. It estimates WebP at the width used by the page. In a separate test, AVIF was 21.8% lighter than WebP at the median across 16 derivatives from one real store, at the same width and perceived quality. That AVIF figure is a reference for the paid plan, not an estimate for the page analyzed here.</p>
<h3>One file does not represent every screen</h3>
<p>When a site provides responsive images, a browser downloads the larger source only when needed, as the <a href="https://web.dev/learn/design/responsive-images" target="_blank" rel="noopener noreferrer nofollow">web.dev documentation</a> explains. The report lists the dimensions and format retrieved in this scan. A different screen may receive a different source from the same site.</p>

<h2 id="accuracy">How far the estimate can vary</h2> <p>We measured this checker against NimboCDN's own delivery: four sites we control, running the connector, with every image compared one by one against the bytes the network actually served. 256 images.</p> <table> <thead><tr><th>Measure</th><th>Result</th></tr></thead> <tbody> <tr><td>Delivered width predicted correctly</td><td>164 of 166</td></tr> <tr><td>Headline error per site</td><td>within 3 points</td></tr> <tr><td>Worst site observed</td><td>2.8 points</td></tr> <tr><td>Image-by-image spread</td><td>0.94x to 1.01x</td></tr> </tbody> </table> <p>The image-by-image spread is the number to be careful with. Errors average out across a page, so the total is dependable and a single row is not — which is why the report labels per-image figures as estimated and the headline is what we stand behind.</p> <blockquote><p>The remaining gap is the encoder: a browser's WebP is not byte-identical to the one that delivers your images, and the correction for it depends on the kind of photography a site publishes. It is now a single constant of 1.035: the earlier version mixed the encoder with the resizing error, and that second error was removed.</p></blockquote> <p>This does not measure page-load time. It measures image bytes. Hosting, theme code, scripts, network conditions, and the rest of the page also affect how long a page takes to load.</p> <h2 id="what-we-do">From a measurement to lighter delivery</h2>
<p>If you only want to fix one photo right now, the free compress image tool runs in your browser and uploads nothing. The report shows where the image bytes are. NimboCDN is the optional next step: it resizes, converts, and delivers images while leaving the originals unchanged.</p>
<p>NimboCDN is an image CDN for WordPress. Install the connector and activate it. Each image is then prepared once at the size and format needed by the visitor and delivered through our network of 335 cities in more than 125 countries. The original files stay on your server.</p>
<p>The free plan covers up to 50 new images a month on your home page in WebP. It does not expire, and there is no credit card. Traffic does not change the price. The paid plan covers the full site in AVIF for $9.90 a month.</p>
<ul>
<li><strong>Original files stay intact.</strong> Nothing is recompressed, moved, or deleted.</li>
<li><strong>Turn it off in one click.</strong> Disable the connector and the original image URLs return right away.</li>
<li><strong>Automatic fallback.</strong> If the service cannot deliver an image, the connector serves the original.</li>
<li><strong>Fixed traffic cost.</strong> There is no charge per visit, per bandwidth, or for overage.</li>
</ul>
<p>For a product-by-product comparison, see <a href="/alternatives/optimole/">the alternatives to Optimole</a> and <a href="/alternatives/shortpixel-vs-imagify/">ShortPixel versus Imagify</a>. The first also covers what happens when an Optimole visit limit runs out.</p>

<h2 id="privacy">What this page stores</h2>
<p>We store the report and the page address included in it. Converted images stay available for download for two days and are then deleted. Files on your server are never changed.</p>
<p>This page uses Google Analytics and its <code>_ga</code> cookie to measure aggregate usage. We also retain the connecting IP address for 24 hours to enforce scan limits, then delete it.</p>

<h2 id="questions">Questions</h2>
<details name="faq"><summary>Does this change anything on my site?</summary><p class="body-text muted">No. The checker only requests the page and its image files. It does not write to your site or change the originals.</p></details>
<details name="faq"><summary>Do I need to install anything?</summary><p class="body-text muted">No. Measuring requires no account, no credit card, and no access to WordPress. The connector is only for applying the optimization afterward.</p></details>
<details name="faq"><summary>Which page should I test?</summary><p class="body-text muted">Test the page that matters: a home page, category, or product page. The checker handles one address at a time and does not crawl the whole site.</p></details>
<details name="faq"><summary>Can I measure a client's site?</summary><p class="body-text muted">Yes. Run the scan and request the report by email if you want to pass it on. Hourly and daily limits prevent automated scans of thousands of sites.</p></details>
<details name="faq"><summary>Why did the page return an error?</summary><p class="body-text muted">A firewall may reject an unfamiliar reader, and some sites answer a challenge page instead of their own. Pages that insert images only with JavaScript are read correctly, because the checker runs them in a real browser.</p></details>
<details name="faq"><summary>How accurate is the estimate?</summary><p class="body-text muted">Measured against NimboCDN's own delivery on four sites we control, 256 images compared one by one: the headline lands within 3 points, and 164 of 166 delivered widths were predicted correctly. Per-image figures spread much wider and are labeled estimated.</p></details>
<details name="faq"><summary>Do you keep my images?</summary><p class="body-text muted">We read and encode them to calculate the result. Converted files remain available to download for two days, then are deleted. The files on your server are untouched.</p></details>
<details name="faq"><summary>Can I use this without WordPress?</summary><p class="body-text muted">The checker works with any platform. The connector currently supports WordPress; BigCommerce and PrestaShop are planned without a release date.</p></details>
<p>Start with the page that matters most. If you want NimboCDN to handle the result, <a href="/install">install the connector</a> in two minutes. Your home page is free, with no credit card.</p>]]></content:encoded>
  </item>
  <item>
   <title>Hit Optimole&#x27;s visit limit? What happens next</title>
   <link>https://nimbocdn.net/blog/optimole-visit-limit/</link>
   <guid isPermaLink="true">https://nimbocdn.net/blog/optimole-visit-limit/</guid>
   <pubDate>Mon, 31 Aug 2026 12:00:00 +0000</pubDate>
   <description>On Optimole&#x27;s free plan, optimized delivery can stop. Paid plans upgrade automatically. Here is what their docs say and how to recover images.</description>
   <content:encoded><![CDATA[<p class="subtitle">Optimole treats its visit limit in two ways. On the free plan, optimized delivery can be permanently deactivated. On a paid plan, the subscription moves up automatically.</p>
<p>Those are Optimole's rules, not our interpretation. The recovery steps matter most if Image Offloading moved the originals away from your server.</p>

<h2 id="what-happens">What happens when you reach the limit</h2>
<p>On the free plan, Optimole sends an email and gives you a few days to upgrade. If you do not, its <a href="https://docs.optimole.com/article/1008-what-happens-if-i-exceed-plan-limits" target="_blank" rel="noopener noreferrer nofollow">official limit documentation</a> says the original images return and optimized delivery is permanently deactivated for the account.</p>
<p>Paid plans do not stop delivery. They move to the next tier automatically:</p>
<blockquote><p>Automatic quota upgrades for premium plans cannot be disabled. This is by design — it ensures your optimized images remain available without interruption when your site traffic exceeds your current plan limit.</p></blockquote>
<p>The upgrade is billed separately through FastSpring and prorated for the days left in the cycle. That can look like a duplicate charge after renewal. Check the plan tier in the Optimole dashboard first.</p>

<h2 id="images-went-blank">Why images can go blank</h2>
<p>After a limit event or deactivation, there are two documented places to look.</p>
<ol>
<li><strong>The originals are only in Optimole Cloud.</strong> Image Offloading can move them away from your server. Reactivate the plugin and transfer them back before deactivating again.</li>
<li><strong>A cache still contains Optimole URLs.</strong> The <a href="https://docs.optimole.com/wordpress-plugin/what-happens-when-you-deactivate-optimole" target="_blank" rel="noopener noreferrer nofollow">deactivation guide</a> says to clear the WordPress cache plugin, page-builder cache, host cache, CDN cache, and browser cache.</li>
</ol>

<h2 id="how-it-counts">How Optimole counts visits</h2>
<p>Optimole counts a unique user once per day, whether that person opens one page or twenty. Its <a href="https://docs.optimole.com/article/1134-how-optimole-counts-the-number-of-visitors" target="_blank" rel="noopener noreferrer nofollow">counting documentation</a> notes one exception: a large burst of requests from the same source, such as a scraper, can add more than one visit.</p>
<p>The total will not match Google Analytics because the tools measure traffic differently. The Optimole chart also defaults to the last 30 days, not the billing cycle. Use <em>Current Billing Month</em> to check quota use.</p>

<h2 id="your-options">Three options</h2>
<table><thead><tr><th>Plan</th><th>Visit ceiling/mo</th><th>Price</th></tr></thead><tbody><tr><td>Starter</td><td>48,000</td><td>$22.90/mo</td></tr><tr><td>Business</td><td>120,000</td><td>$47.00/mo</td></tr><tr><td>Flexible</td><td>300,000</td><td>$109.00/mo</td></tr></tbody></table>
<ol>
<li><strong>Move up a tier.</strong> This fits when the traffic increase is permanent and the price works. The current tiers are on Optimole's <a href="https://optimole.com/pricing/" target="_blank" rel="noopener noreferrer nofollow">pricing page</a>.</li>
<li><strong>Remove unwanted counted traffic.</strong> If bots explain part of the count, Optimole's visit documentation shows how to identify crawler requests in logs.</li>
<li><strong>Choose a different meter.</strong> If visits keep growing, compare what each service charges for. Our <a href="/alternatives/optimole/">Optimole alternatives</a> page puts five billing units side by side. NimboCDN is ours, so keep that bias in view: it costs $9.90 a month and does not count visits or bandwidth.</li>
</ol>

<h2 id="before-you-leave">If you used Image Offloading, roll back first</h2>
<p>Do not deactivate first. If the originals only exist in Optimole Cloud, that order can leave broken image URLs. Optimole's <a href="https://docs.optimole.com/wordpress-plugin/transfer-your-images-back-from-optimole-cloud" target="_blank" rel="noopener noreferrer nofollow">transfer guide</a> gives this sequence:</p>
<ol>
<li>Keep the plugin active and the API key connected. Confirm the domain is still under <em>Allowed Domains</em>.</li>
<li>Open Optimole → Settings → <em>Image Storage</em>. Choose “Optimole Cloud and your website,” then <em>Transfer back from Optimole</em>.</li>
<li>Wait for the transfer to finish. Deactivate only after the originals are back.</li>
</ol>
<p>You can also request a ZIP export of the library from the Optimole dashboard.</p>
<p>NimboCDN takes a different approach: the original files never move. Install the <a href="/install">connector</a> with no account and no credit card. The home page starts shipping lighter right away. Deactivate it and the original image addresses return at once.</p>

<h2 id="faq">Questions</h2>
<details name="faq"><summary>Does Optimole delete the originals when the free limit is reached?</summary><p class="body-text muted">That is not what its documentation says. It says the originals are returned and optimized delivery is permanently deactivated. If Image Offloading moved the originals to Optimole Cloud, transfer them back before deactivating the plugin.</p></details>
<details name="faq"><summary>Can automatic paid-plan upgrades be disabled?</summary><p class="body-text muted">No. Optimole's documentation says automatic quota upgrades cannot be disabled. When a paid plan exceeds its quota, the subscription moves to the next tier and a separate prorated charge is processed.</p></details>
<details name="faq"><summary>Why does the visit count differ from Google Analytics?</summary><p class="body-text muted">The tools count different events. Optimole counts a unique user once per day based on image requests, with an exception for large request bursts from the same source. Use Current Billing Month in Optimole to compare the count with your quota.</p></details>
<aside class="cta"><h3>Do you want a price without a visit meter?</h3><p>NimboCDN charges a flat $9.90 a month for the whole site and never counts visits or bandwidth. The originals stay on your server. First, <a href="/tools/website-image-size-checker/">weigh the images on one page</a>. If you prefer library-based tools, compare <a href="/alternatives/shortpixel-vs-imagify/">ShortPixel and Imagify</a>.</p><a class="btn" href="/">See how it works</a><small class="fine">Free forever on your home page · No credit card · Reversible in one click</small></aside>
]]></content:encoded>
  </item>
  <item>
   <title>Optimole Alternatives: What Each One Charges For</title>
   <link>https://nimbocdn.net/alternatives/optimole/</link>
   <guid isPermaLink="true">https://nimbocdn.net/alternatives/optimole/</guid>
   <pubDate>Mon, 31 Aug 2026 12:00:00 +0000</pubDate>
   <description>Five WordPress image tools, five different meters. What happens to your bill as your site grows — and how to switch away without breaking anything.</description>
   <content:encoded><![CDATA[<p><strong>Five WordPress image tools charge in five different units.</strong> Optimole counts visitors. ShortPixel counts credits. Imagify measures megabytes of images. EWWW meters bandwidth. Smush charges by site.</p>

<p>A cheapest-to-most-expensive ranking would compare unlike quantities. The useful question is simpler: which limit will your site reach first?</p>

<div class="verdict"><h2 class="heading" id="short-answer">The short answer</h2><dl><dt>Huge library, quiet traffic</dt><dd><b>Optimole</b>: the visit ceiling is the one you will never reach</dd><dt>Heavy traffic, few images</dt><dd><b>Imagify</b> or EWWW in local mode — paying per visit is the worst possible fit here</dd><dt>Both are growing and you want to stop thinking about it</dt><dd><b>NimboCDN</b>: the only one with no traffic meter</dd><dt>A fixed roster of client sites</dt><dd><b>Smush</b>: the only bill you can predict a year ahead</dd><dt>You want AVIF without paying</dt><dd><b>Imagify</b>, with AVIF even on the free plan</dd></dl></div>

<h2 id="what-each-charges-for">What each one actually charges for</h2>

<p>All of them shrink images. What changes is what they count while they do it, and that column weighs far more on your bill than the big number in the shop window.</p>

<table class="cmp"><thead><tr><th>Tool</th><th>Charges by</th><th>What runs out</th></tr></thead><tbody><tr><th scope="row"><span class="cmp__name">Optimole</span><span class="cmp__kind">Image CDN</span></th><td data-label="Charges by"><span class="cmp__unit">visits / month</span></td><td data-label="What runs out">48,000 · 120,000 · 300,000 by plan</td></tr><tr><th scope="row"><span class="cmp__name">ShortPixel Adaptive Images</span><span class="cmp__kind">Compressor that added a CDN</span></th><td data-label="Charges by"><span class="cmp__unit">credits / month</span></td><td data-label="What runs out">Unlimited credits — but 500&nbsp;GB of CDN traffic a month</td></tr><tr><th scope="row"><span class="cmp__name">Imagify</span><span class="cmp__kind">Compressor, no CDN</span></th><td data-label="Charges by"><span class="cmp__unit">MB of images / month</span></td><td data-label="What runs out">20&nbsp;MB · 500&nbsp;MB · unlimited</td></tr><tr><th scope="row"><span class="cmp__name">EWWW Image Optimizer</span><span class="cmp__kind">Compressor that added a CDN</span></th><td data-label="Charges by"><span class="cmp__unit">GB of bandwidth</span></td><td data-label="What runs out">50 · 200 · 400&nbsp;GB</td></tr><tr><th scope="row"><span class="cmp__name">Smush</span><span class="cmp__kind">Compressor that added a CDN</span></th><td data-label="Charges by"><span class="cmp__unit">number of sites</span></td><td data-label="What runs out">1 · 3 · 10 · unlimited sites, and 50&nbsp;GB of CDN per Pro plan</td></tr><tr class="is-ours"><th scope="row"><span class="cmp__name">NimboCDN</span><span class="cmp__ours">ours</span><span class="cmp__kind">Image CDN</span></th><td data-label="Charges by"><span class="cmp__unit">flat rate</span></td><td data-label="What runs out">Unlimited traffic. The free plan covers your home page only</td></tr></tbody></table>

<p>Read the middle column with your own site in mind. A magazine with 4,000 archived photos and 3,000 readers a month blows through Imagify’s megabyte cap without breaking a sweat, and never gets anywhere near Optimole’s visit ceiling. A landing page with nine images and 200,000 visitors is the exact opposite. Same two products, opposite verdicts. Which one suits you does not depend on the tool: it depends on what your site is made of.</p>

<h2 id="what-is-an-image-cdn">What an image CDN is — and why it takes weight off your server</h2>

<p>An image CDN is a network of servers spread around the world that optimizes and delivers your site’s images in place of your server. Each visitor gets the image from a point on the network, already converted and sized for their screen — and your server drops out of that equation.</p>

<p>The practical effect is a division of labor. Images are usually most of a page’s bytes — we weighed <a href="/blog/image-weight-by-ecommerce-platform/">how many, on 41 storefronts across 14 ecommerce platforms</a> — and without a CDN it is your hosting that ships file after file to every visitor — when its job is to run the site. With delivery delegated, your server is free for what actually matters: the catalog, the cart, the content. That is the difference between the two families in the table above: a compressor makes files lighter where they sit; a CDN optimizes and takes delivery off your server’s back.</p>

<h2 id="why-units-do-not-convert">Why the units do not convert</h2>

<p>It helps to picture a chain. Someone arrives, loads a page, the page asks for images, the images travel as bytes. Each tool taps a different link:</p>

<figure class="doc__fig doc__fig--diagram">
<svg class="machine" viewBox="0 0 920 392" role="img" aria-labelledby="mt md" xmlns="http://www.w3.org/2000/svg"><title id="mt">Where each tool puts its meter, from visitor to bytes delivered</title><desc id="md">A visitor enters on the left and a delivered image leaves on the right, through four stages. Optimole meters stage 1, Imagify and ShortPixel meter stage 3, ShortPixel and EWWW also meter stage 4, Smush charges per site before the chain and NimboCDN meters nothing.</desc><text class="edge" x="8" y="30">IN · a visitor</text><text class="edge" text-anchor="end" x="912" y="30">OUT · an image</text><path class="pipe pipe--in" d="M14 122.0H122"/><path class="pipe pipe--out" d="M854 122.0H906"/><circle class="port" cx="14" cy="122.0" r="7"/><circle class="port port--out" cx="906" cy="122.0" r="7"/><rect class="engine" x="106" y="48" width="764" height="148" rx="18"/><rect class="mod" x="128" y="74" width="150" height="96" rx="12"/><text class="mod-n" x="140" y="98">1</text><text class="mod-t" x="203" y="126">Visitor</text><text class="mod-s" x="203" y="148">unique daily user</text><polygon class="gear" points="309.1,122.0 312.7,124.9 311.9,127.7 307.2,128.2 305.8,129.8 306.3,134.5 303.7,135.9 300.2,132.9 298.0,133.1 295.1,136.7 292.3,135.9 291.8,131.2 290.2,129.8 285.5,130.3 284.1,127.7 287.1,124.2 286.9,122.0 283.3,119.1 284.1,116.3 288.8,115.8 290.2,114.2 289.7,109.5 292.3,108.1 295.8,111.1 298.0,110.9 300.9,107.3 303.7,108.1 304.2,112.8 305.8,114.2 310.5,113.7 311.9,116.3 308.9,119.8"/><circle class="gear-hub" cx="298.0" cy="122.0" r="4.5"/><rect class="mod" x="318" y="74" width="150" height="96" rx="12"/><text class="mod-n" x="330" y="98">2</text><text class="mod-t" x="393" y="126">Page view</text><text class="mod-s" x="393" y="148">requests images</text><polygon class="gear" points="499.1,122.0 502.7,124.9 501.9,127.7 497.2,128.2 495.8,129.8 496.3,134.5 493.7,135.9 490.2,132.9 488.0,133.1 485.1,136.7 482.3,135.9 481.8,131.2 480.2,129.8 475.5,130.3 474.1,127.7 477.1,124.2 476.9,122.0 473.3,119.1 474.1,116.3 478.8,115.8 480.2,114.2 479.7,109.5 482.3,108.1 485.8,111.1 488.0,110.9 490.9,107.3 493.7,108.1 494.2,112.8 495.8,114.2 500.5,113.7 501.9,116.3 498.9,119.8"/><circle class="gear-hub" cx="488.0" cy="122.0" r="4.5"/><rect class="mod" x="508" y="74" width="150" height="96" rx="12"/><text class="mod-n" x="520" y="98">3</text><text class="mod-t" x="583" y="126">Images</text><text class="mod-s" x="583" y="148">processed</text><polygon class="gear" points="689.1,122.0 692.7,124.9 691.9,127.7 687.2,128.2 685.8,129.8 686.3,134.5 683.7,135.9 680.2,132.9 678.0,133.1 675.1,136.7 672.3,135.9 671.8,131.2 670.2,129.8 665.5,130.3 664.1,127.7 667.1,124.2 666.9,122.0 663.3,119.1 664.1,116.3 668.8,115.8 670.2,114.2 669.7,109.5 672.3,108.1 675.8,111.1 678.0,110.9 680.9,107.3 683.7,108.1 684.2,112.8 685.8,114.2 690.5,113.7 691.9,116.3 688.9,119.8"/><circle class="gear-hub" cx="678.0" cy="122.0" r="4.5"/><rect class="mod" x="698" y="74" width="150" height="96" rx="12"/><text class="mod-n" x="710" y="98">4</text><text class="mod-t" x="773" y="126">Bytes</text><text class="mod-s" x="773" y="148">delivered</text><path class="tap" d="M203 170v18"/><g class="chip chip--meter"><rect x="164.0" y="188" width="78" height="26" rx="13"/><text x="203" y="205">Optimole</text></g><path class="tap" d="M583 170v18"/><g class="chip chip--meter"><rect x="544.0" y="188" width="78" height="26" rx="13"/><text x="583" y="205">Imagify</text></g><g class="chip chip--meter"><rect x="538.0" y="220" width="90" height="26" rx="13"/><text x="583" y="237">ShortPixel</text></g><path class="tap" d="M773 170v18"/><g class="chip chip--meter"><rect x="728.0" y="188" width="90" height="26" rx="13"/><text x="773" y="205">ShortPixel</text></g><g class="chip chip--meter"><rect x="734.0" y="220" width="78" height="26" rx="13"/><text x="773" y="237">EWWW</text></g><path class="tap" d="M106 252H870" stroke-dasharray="3 4"/><g class="chip chip--aside"><rect x="6" y="266" width="104" height="26" rx="13"/><text x="58" y="283">Smush</text></g><text class="note" x="6" y="310"><tspan x="6" dy="0">charges per site,</tspan><tspan x="6" dy="15">before any of this</tspan></text><g class="chip chip--own"><rect x="798" y="266" width="116" height="26" rx="13"/><text x="856" y="283">NimboCDN</text></g><text class="note" text-anchor="end" x="914" y="310"><tspan x="914" dy="0">no meter</tspan><tspan x="914" dy="15">anywhere</tspan></text></svg>
<svg class="machine machine--v" viewBox="0 0 372 564" role="img" aria-labelledby="mvt mvd" xmlns="http://www.w3.org/2000/svg"><title id="mvt">Where each tool puts its meter, from visitor to bytes delivered</title><desc id="mvd">A visitor enters on the left and a delivered image leaves on the right, through four stages. Optimole meters stage 1, Imagify and ShortPixel meter stage 3, ShortPixel and EWWW also meter stage 4, Smush charges per site before the chain and NimboCDN meters nothing.</desc><text class="edge" x="8" y="14">IN · a visitor</text><rect class="mod" x="4" y="30" width="364" height="74" rx="12"/><text class="mod-n" x="18" y="52">1</text><text class="mod-t mod-t--v" x="38" y="56">Visitor</text><text class="mod-s mod-s--v" x="38" y="76">unique daily user</text><text class="tap-l" x="38" y="95">Optimole</text><polygon class="gear" points="195.6,119.0 198.8,121.5 198.0,124.0 194.0,124.3 192.8,125.8 193.2,129.8 191.0,131.0 187.9,128.4 186.0,128.6 183.5,131.8 181.0,131.0 180.7,127.0 179.2,125.8 175.2,126.2 174.0,124.0 176.6,120.9 176.4,119.0 173.2,116.5 174.0,114.0 178.0,113.7 179.2,112.2 178.8,108.2 181.0,107.0 184.1,109.6 186.0,109.4 188.5,106.2 191.0,107.0 191.3,111.0 192.8,112.2 196.8,111.8 198.0,114.0 195.4,117.1"/><circle class="gear-hub" cx="186.0" cy="119.0" r="3.9"/><rect class="mod" x="4" y="134" width="364" height="74" rx="12"/><text class="mod-n" x="18" y="156">2</text><text class="mod-t mod-t--v" x="38" y="160">Page view</text><text class="mod-s mod-s--v" x="38" y="180">requests images</text><polygon class="gear" points="195.6,223.0 198.8,225.5 198.0,228.0 194.0,228.3 192.8,229.8 193.2,233.8 191.0,235.0 187.9,232.4 186.0,232.6 183.5,235.8 181.0,235.0 180.7,231.0 179.2,229.8 175.2,230.2 174.0,228.0 176.6,224.9 176.4,223.0 173.2,220.5 174.0,218.0 178.0,217.7 179.2,216.2 178.8,212.2 181.0,211.0 184.1,213.6 186.0,213.4 188.5,210.2 191.0,211.0 191.3,215.0 192.8,216.2 196.8,215.8 198.0,218.0 195.4,221.1"/><circle class="gear-hub" cx="186.0" cy="223.0" r="3.9"/><rect class="mod" x="4" y="238" width="364" height="74" rx="12"/><text class="mod-n" x="18" y="260">3</text><text class="mod-t mod-t--v" x="38" y="264">Images</text><text class="mod-s mod-s--v" x="38" y="284">processed</text><text class="tap-l" x="38" y="303">Imagify · ShortPixel</text><polygon class="gear" points="195.6,327.0 198.8,329.5 198.0,332.0 194.0,332.3 192.8,333.8 193.2,337.8 191.0,339.0 187.9,336.4 186.0,336.6 183.5,339.8 181.0,339.0 180.7,335.0 179.2,333.8 175.2,334.2 174.0,332.0 176.6,328.9 176.4,327.0 173.2,324.5 174.0,322.0 178.0,321.7 179.2,320.2 178.8,316.2 181.0,315.0 184.1,317.6 186.0,317.4 188.5,314.2 191.0,315.0 191.3,319.0 192.8,320.2 196.8,319.8 198.0,322.0 195.4,325.1"/><circle class="gear-hub" cx="186.0" cy="327.0" r="3.9"/><rect class="mod" x="4" y="342" width="364" height="74" rx="12"/><text class="mod-n" x="18" y="364">4</text><text class="mod-t mod-t--v" x="38" y="368">Bytes</text><text class="mod-s mod-s--v" x="38" y="388">delivered</text><text class="tap-l" x="38" y="407">ShortPixel · EWWW</text><text class="edge" x="8" y="448">OUT · an image</text><path class="tap" d="M4 456H368" stroke-dasharray="3 4"/><g class="chip chip--aside"><rect x="4" y="464" width="104" height="26" rx="13"/><text x="56" y="481">Smush</text></g><text class="note" x="120" y="481"><tspan x="120" dy="0">charges per site, before any of this</tspan></text><g class="chip chip--own"><rect x="4" y="504" width="116" height="26" rx="13"/><text x="62" y="521">NimboCDN</text></g><text class="note" x="132" y="521"><tspan x="132" dy="0">no meter anywhere</tspan></text></svg>
<figcaption>Where each tool taps the chain. Optimole counts the visitor arriving; Imagify and ShortPixel count the images they process; ShortPixel and EWWW also count the bytes going out. The two on the bottom row sit outside the chain: Smush charges per site before any of it, and NimboCDN measures at no point at all.</figcaption>
</figure>

<p>Five meters in five places. That is why a “normalised” price table would have to invent how many images a page carries, how many bytes each one weighs and how many pages a visitor opens. No vendor backs those assumptions, and an invented assumption is not a comparison: it is a hunch with table borders.</p>

<h2 id="why-people-leave">Why people look for Optimole alternatives</h2>

<p>Optimole has more than 200,000 active installations and a 4.7 rating on WordPress.org. This comparison does not measure product quality. It examines the billing model, where three limits tend to matter.</p>

<ol><li><strong>The ceiling arrived before the payoff.</strong> Paid plans start at 48,000 visits a month. Cross that and you move up a tier even if you have not uploaded a new image: the meter is on visitors, not images.</li><li><strong>The free plan does not go far.</strong> Its listing offers a <em>Free plan with all features – For sites with up to 2000 visits /month</em>. You can push it to 22,000 visits, but only by showing Optimole’s badge on your site: generous on features, short on volume, and those extra 20,000 visits cost you a slot on your own page.</li><li><strong>They wanted to be able to stop paying.</strong> Apart from EWWW’s local mode and ShortPixel’s one-off packs, everything on this list is a subscription.</li></ol>

<p>A visit meter is not automatically a flaw. It is predictable when traffic is predictable. Optimole also names its delivery network — <em>Cloudfront CDN (450+ locations)</em>. We publish the size of ours: 335 cities in more than 125 countries.</p>

<h2 id="over-the-limit">What happens when you go over Optimole’s visit limit?</h2>

<p>Hitting the Optimole visit limit plays out in two very different ways depending on the plan. On the free one, Optimole emails you and gives you a few days to decide whether to upgrade. If you don’t, the official documentation says what comes next: <em>Optimole will return your original images and permanently deactivate your account’s optimized image delivery</em> — your originals come back, and that account’s optimized delivery is switched off for good.</p>

<p>On paid plans nothing gets cut off, and that is precisely the detail. Go over the quota and the subscription <em>climbs on its own</em> to the next tier, with a separate prorated charge processed by FastSpring. The documentation is explicit: <em>Automatic quota upgrades for premium plans cannot be disabled. This is by design.</em> The declared intent is good — your images keep serving without interruption. The side effect is declared too: what decides next month’s bill is your traffic, not you.</p>

<p>Not every tool reacts this way. <a href="/alternatives/shortpixel-vs-imagify/">ShortPixel, compared against Imagify</a>, chose the opposite path: run out of quota and the plugin serves your originals straight from your server until the month resets. Nothing breaks, nothing gets pricier; your site just goes back to its old weight for a few weeks.</p>

<h2 id="your-bill-as-you-grow">What your bill looks like as the site grows</h2>

<p>With per-visit billing, the price does not track growth smoothly: it climbs in steps. These are Optimole’s published steps, with the automatic upgrade wiring one to the next:</p>

<div class="table-scroll"><table><thead><tr><th>Visits per month</th><th>Plan</th><th>Price</th></tr></thead><tbody><tr><td>up to 2,000</td><td>Free — or 22,000 showing their badge</td><td>—</td></tr><tr><td>up to 48,000</td><td>Starter</td><td>$22.90/mo</td></tr><tr><td>up to 120,000</td><td>Business — Starter climbs here on its own when you go over</td><td>$47.00/mo</td></tr><tr><td>up to 300,000</td><td>Flexible — same, from Business</td><td>$109.00/mo</td></tr></tbody></table></div>

<figure class="doc__fig doc__fig--diagram">
<svg class="ladder" viewBox="0 0 920 408" role="img" aria-labelledby="lt ld" xmlns="http://www.w3.org/2000/svg"><title id="lt">Optimole's price staircase as your visits grow</title><desc id="ld">Four steps: free plan up to 2,000 visits, Starter at 22.90 dollars up to 48,000, Business at 47 up to 120,000 and Flexible at 109 up to 300,000. Go past a paid step and the plan climbs on its own. Below, NimboCDN appears as a straight line: a flat rate that never changes with visits.</desc><text class="note" x="30" y="26">Went past the ceiling? On paid plans, the next tier arrives on its own — with no way to switch that off.</text><path class="l-base" d="M22 300H898"/><rect class="lstep" x="30" y="294" width="190" height="6" rx="3"/><text class="l-price" x="125" y="280">free</text><text class="l-visits" x="125" y="326">up to 2,000 visits</text><rect class="lstep" x="250" y="247" width="190" height="53" rx="8"/><text class="l-price" x="345" y="233">$22.90</text><text class="l-visits" x="345" y="326">up to 48,000</text><rect class="lstep" x="470" y="192" width="190" height="108" rx="8"/><text class="l-price" x="565" y="178">$47</text><text class="l-visits" x="565" y="326">up to 120,000</text><rect class="lstep" x="690" y="50" width="190" height="250" rx="8"/><text class="l-price" x="785" y="36">$109</text><text class="l-visits" x="785" y="326">up to 300,000</text><path class="l-up" d="M210 282 Q232 262 249 245"/><polygon class="l-head" points="252,243 240,248 248,256"/><path class="l-up" d="M430 237 Q455 212 464 197"/><polygon class="l-head" points="468,190 456,194 464,203"/><path class="l-up" d="M650 182 Q676 118 683 62"/><polygon class="l-head" points="686,54 674,60 683,68"/><g class="chip"><rect x="30" y="352" width="116" height="28" rx="14"/><text x="88" y="371">NimboCDN</text></g><path class="l-flat" d="M158 366H898"/><text class="note" x="30" y="402">flat $9.90/mo — never changes with visits (a different unit; see the text)</text></svg>
<svg class="ladder ladder--v" viewBox="0 0 372 470" role="img" aria-labelledby="lvt lvd" xmlns="http://www.w3.org/2000/svg"><title id="lvt">Optimole's price staircase as your visits grow</title><desc id="lvd">Four steps: free plan up to 2,000 visits, Starter at 22.90 dollars up to 48,000, Business at 47 up to 120,000 and Flexible at 109 up to 300,000. Go past a paid step and the plan climbs on its own. Below, NimboCDN appears as a straight line: a flat rate that never changes with visits.</desc><text class="note" x="4" y="16"><tspan x="4" dy="0">Went past the ceiling? On paid plans, the next</tspan><tspan x="4" dy="17">tier arrives on its own — no way to switch it off.</tspan></text><text class="l-visits l-visits--v" x="4" y="66">up to 2,000 visits</text><rect class="lstep" x="4" y="74" width="10" height="26" rx="3"/><text class="l-price l-price--v" x="26" y="93">free</text><text class="l-visits l-visits--v" x="4" y="136">up to 48,000</text><rect class="lstep" x="4" y="144" width="48" height="26" rx="6"/><text class="l-price l-price--v" x="64" y="163">$22.90</text><text class="l-visits l-visits--v" x="4" y="206">up to 120,000</text><rect class="lstep" x="4" y="214" width="99" height="26" rx="6"/><text class="l-price l-price--v" x="111" y="233">$47</text><text class="l-visits l-visits--v" x="4" y="276">up to 300,000</text><rect class="lstep" x="4" y="284" width="230" height="26" rx="6"/><text class="l-price l-price--v" x="242" y="303">$109</text><path class="l-base" d="M4 330H368"/><g class="chip"><rect x="4" y="352" width="116" height="28" rx="14"/><text x="62" y="371">NimboCDN</text></g><path class="l-flat" d="M132 366H368"/><text class="note" x="4" y="408"><tspan x="4" dy="0">flat $9.90/mo — never changes with visits</tspan><tspan x="4" dy="17">(a different unit; see the text)</tspan></text></svg>
<figcaption>The steps are Optimole’s own published monthly prices. The NimboCDN line is not on the same scale — we charge a different unit, a flat $9.90 with no visit meter — it only shows the shape: a bill that does not climb when visits do.</figcaption>
</figure>

<p>Every step is a price Optimole itself publishes; none is our estimate. NimboCDN is not on that staircase because it charges a different unit — a flat <strong>$9.90 a month, with no visit meter</strong> — so lining the numbers up compares nothing. What you can compare honestly is the shape of the bill: in one model, a promotion that works or a post that goes viral changes next month’s amount; in the other, it doesn’t.</p>

<h2 id="method">Where these numbers come from</h2>

<p>Every figure on this page was read on the vendor’s own site or its WordPress.org listing on 31 August 2026, and every one is cited at the foot with its link. None of them comes from a review or a comparison site.</p>

<p>Prices move in this market, so the date is worth as much as the number. If you are reading this months later, check the vendor’s page before you decide.</p>

<p>Two things worth a second look if you compare on your own:</p>

<ul><li><strong>Smush advertises “up to 500 GB”</strong> on its site, but each Pro plan says 50&nbsp;GB and only Premium says unlimited. The plan card wins, not the headline.</li><li><strong>Optimole’s visit counts will not match Google Analytics</strong>, and their own documentation says why: <em>the two tools measure traffic differently</em>. If you are checking your quota, check it in their dashboard, not in your Analytics.</li></ul>

<p>Optimole opens its pricing page with <em>Boost loading times by 40%</em>. That is Optimole’s claim, not our measurement. NimboCDN reports image bytes instead: page-load time also depends on the hosting, theme and every other resource, so we do not publish a speed multiplier.</p>

<h2 id="optimole">Optimole</h2>

<p><strong>Who it is for.</strong> A large library, predictable traffic and no appetite for configuring anything. You want the CDN, the format conversion and the storage in one place.</p>

<p>It is an image CDN by design, not a compressor with delivery bolted on afterwards, and it shows. All three plans carry <em>Unlimited Images &amp; Sites</em>, <em>Image Offloading &amp; Storage</em> and <em>Unlimited images on all plans with unmetered bandwidth</em>: bandwidth is not metered; visits are. It converts to WebP and AVIF. And it leaves what you have on the server alone — <em>without altering the original files on your server</em>.</p>

<div class="table-scroll"><table><thead><tr><th>Plan</th><th>Price</th><th>Visits per month</th></tr></thead><tbody><tr><td>Free</td><td>—</td><td>2,000, or 22,000 while showing their badge on your site</td></tr><tr><td>Starter</td><td>US$22.90/mo</td><td>48,000</td></tr><tr><td>Business</td><td>US$47.00/mo</td><td>120,000</td></tr><tr><td>Flexible</td><td>US$109.00/mo</td><td>300,000</td></tr></tbody></table></div>

<p>Two things the table does not say out loud. Serving images from your own domain with a CNAME only starts at Business, not at Starter. And the free plan is documented on its WordPress.org listing but does not appear on the pricing page, where only the three paid tiers show.</p>

<div class="pc"><div class="pc--good"><h3>What it does well</h3><ul><li><b>An image CDN from birth.</b> Not a compressor with delivery added later, and it shows in how it works.</li><li><b>Bandwidth is never metered, on any plan.</b> The size of your library never reaches the bill.</li><li><b>It names its network.</b> AWS CloudFront, more than 450 locations.</li><li><b>It leaves your originals alone.</b> It works without altering the files you keep on the server.</li><li><b>More than 200,000 active installations.</b> Its WordPress.org rating is 4.7.</li></ul></div><div class="pc--bad"><h3>Where it falls short</h3><ul><li><b>The meter is on people, not on photos.</b> Cross the visit ceiling and you move up a plan even if you added no images.</li><li><b>Paid plans start at 48,000 visits a month.</b> Below that there is only the free tier, at 2,000.</li><li><b>Your own CNAME only arrives at Business.</b> On Starter the images come off their domain, not yours.</li><li><b>The free plan is not on their pricing page.</b> You have to open their WordPress.org listing to learn it exists.</li></ul></div></div>

<p class="tv"><b>Verdict.</b> Pick it if your traffic is predictable and your library is large. Skip it if your visits spike: that is exactly where the meter sits, on the part you do not control.</p>

<h2 id="shortpixel">ShortPixel Adaptive Images</h2>

<p><strong>Who it is for.</strong> Anyone who wants something close to unlimited at a low, fixed price. And agencies, which often prefer buying credit once to carrying yet another subscription.</p>

<p>It is the only one in the group you can pay for in two ways: a monthly plan or a one-off purchase. The unlimited plan is US$9.99 a month, or US$8.33 if you pay yearly, with credits and sites uncapped. The fine print does carry a number, though: 500&nbsp;GB of CDN traffic a month. The credits never run out; the delivery does.</p>

<div class="table-scroll"><table><thead><tr><th>Option</th><th>Price</th><th>Includes</th></tr></thead><tbody><tr><td>Free</td><td>—</td><td>100 credits, about 500 visits/month</td></tr><tr><td>Unlimited</td><td>US$9.99/mo, or US$8.33 yearly</td><td>Unlimited credits and sites, 500&nbsp;GB of CDN</td></tr><tr><td>Unlimited AI</td><td>US$15.99/mo, or US$13.33 yearly</td><td>The above plus unlimited AI background removal and upscaling</td></tr><tr><td>30K pack</td><td>US$19.99</td><td>30,000 credits that never expire, 150&nbsp;GB of CDN</td></tr><tr><td>100K pack</td><td>US$49.99</td><td>100,000 credits that never expire, 500&nbsp;GB of CDN</td></tr></tbody></table></div>

<p>It serves WebP and AVIF without you doing anything, by swapping image URLs; your original files stay on your server. And if the credits run out mid-month, nothing breaks: its own listing says the plugin <em>will simply serve the original images from your server, without compression or resizing, until the quota resets</em>. The same listing says the delivery network is bunny.net. Worth not mixing up: the <em>Direct Cloudflare integration</em> on its pricing page is a different thing — a token so your own Cloudflare pulls the updated images.</p>

<div class="pc"><div class="pc--good"><h3>What it does well</h3><ul><li><b>Subscription or one-off, your call.</b> It is the only one here that offers both.</li><li><b>Credits you buy never expire.</b> Useful if your work arrives in bursts rather than every month.</li><li><b>Unlimited credits and sites on the Unlimited plan.</b> US$9.99 a month, or US$8.33 paying yearly.</li><li><b>Nothing breaks when the quota runs out.</b> The plugin serves your originals straight from your server until the quota resets.</li><li><b>It names its delivery network.</b> bunny.net, according to its own plugin listing.</li></ul></div><div class="pc--bad"><h3>Where it falls short</h3><ul><li><b>Credits are unlimited; delivery is not.</b> CDN traffic stops at 500&nbsp;GB a month.</li><li><b>A “credit” is a unit of their own.</b> Outside the free plan they do not publish what it converts to in traffic.</li><li><b>The least installed of the five.</b> 10,000 active installations of Adaptive Images, well behind the rest.</li></ul></div></div>

<p class="tv"><b>Verdict.</b> Pick it if you want a fixed monthly price or would rather buy credits once. Skip it if you deliver more than 500&nbsp;GB a month: that is the published delivery cap.</p>

<h2 id="imagify">Imagify</h2>

<p><strong>Who it is for.</strong> Sites with heavy traffic and few new images. All the more so if you already run WP Rocket, which comes from the same team.</p>

<p>Imagify makes traffic irrelevant by a simple route: it does not deliver anything. It compresses your files and leaves them where they were, on your server. There is no CDN in the product. If you already have one, that is an advantage rather than a gap.</p>

<div class="table-scroll"><table><thead><tr><th>Plan</th><th>Price</th><th>Images per month</th></tr></thead><tbody><tr><td>Starter</td><td>US$0/mo</td><td>20&nbsp;MB, about 200 images, 2&nbsp;MB per image maximum</td></tr><tr><td>Growth</td><td>US$5.99/mo</td><td>500&nbsp;MB, about 5,000 images, US$5 per extra GB</td></tr><tr><td>Infinite</td><td>US$11.99/mo</td><td>Unlimited</td></tr></tbody></table></div>

<p>Two things before you pick it. The good one: AVIF conversion is in even the free plan — <em>WebP and AVIF conversion included in the free plan</em> — which is more than EWWW and more than my own free plan offer. The one that needs attention: <em>Imagify automatically replaces the original images with an optimized image</em>. There is a backup and a one-click restore, but by default it rewrites your library. That is a different kind of risk from everything else on this list, and it is worth deciding on purpose rather than discovering afterwards.</p>

<div class="pc"><div class="pc--good"><h3>What it does well</h3><ul><li><b>Traffic stops mattering.</b> It compresses and leaves the files on your server; it delivers nothing.</li><li><b>AVIF even on the free plan.</b> More than EWWW and more than our own free plan give.</li><li><b>Unlimited sites on all three plans.</b> The free one included.</li><li><b>From the WP Rocket team.</b> It sits well with that cache if you already run it.</li></ul></div><div class="pc--bad"><h3>Where it falls short</h3><ul><li><b>There is no CDN.</b> If you do not have one, delivery is still your problem.</li><li><b>It replaces your originals.</b> It swaps them for the optimised version unless you turn the backup on yourself.</li><li><b>The free plan cuts each image at 2&nbsp;MB.</b> Larger files do not fit that plan.</li><li><b>4.3 stars, the lowest of the five.</b> Across 1,653 ratings on WordPress.org.</li></ul></div></div>

<p class="tv"><b>Verdict.</b> Pick it if you already have a CDN or do not need one, and above all if you already run WP Rocket. Skip it if you are uneasy about it rewriting your originals by default.</p>

<h2 id="smush">Smush</h2>

<p><strong>Who it is for.</strong> Agencies with a fixed, known roster. It is the only one here that charges per site rather than per usage, and that makes it the only one whose bill you can project a year out.</p>

<p>One site is US$50 a year; three, US$75; ten, US$100. The Premium tier covers unlimited sites at US$4.99 a month. Every Pro plan includes 50&nbsp;GB of CDN traffic, on a network they describe as <em>Global CDN (119 nodes)</em> without saying whose it is. It converts to WebP and AVIF and serves them on its own.</p>

<p>Its free version has a clear limit: <em>In the free version, images over 5MB are skipped.</em> Files above that threshold are left unchanged.</p>

<div class="pc"><div class="pc--good"><h3>What it does well</h3><ul><li><b>The only one that charges per site.</b> Next year’s bill is one you already know today.</li><li><b>Unlimited sites at US$4.99 a month.</b> On the Premium tier.</li><li><b>It converts to WebP and AVIF on its own.</b> With nothing for you to configure.</li><li><b>Over a million installations and 4.8 stars.</b> As widespread as Imagify and EWWW.</li></ul></div><div class="pc--bad"><h3>Where it falls short</h3><ul><li><b>The free tier skips images over 5&nbsp;MB.</b> Files above that threshold are left unchanged.</li><li><b>It does not say what network is behind its CDN.</b> It describes it as <em>Global CDN (119 nodes)</em> and nothing more.</li><li><b>Their site advertises up to 500&nbsp;GB; the plans say 50.</b> Only the Premium tier says unlimited.</li><li><b>Charging per site punishes you for growing.</b> Every new client adds up, whether they use the tool much or not.</li></ul></div></div>

<p class="tv"><b>Verdict.</b> Pick it if you need to know today what next year’s bill will be. Skip it if your roster grows fast: every new site adds up, heavily used or not.</p>

<h2 id="ewww">EWWW Image Optimizer</h2>

<p><strong>Who it is for.</strong> Anyone who wants to optimise seriously without sending a single file to anybody’s cloud.</p>

<p>EWWW takes a different route: it is, in its own words, <em>the only plugin that lets you optimize images using tools on your own web server</em>. jpegtran, optipng, pngout, pngquant, gifsicle and cwebp, running on your own machine, free. If what bothers you about everything above is the dependency itself, the discussion ends here.</p>

<p>Its paid side is a CDN called Easy IO, billed by bandwidth: US$80, US$160 or US$320 a year for 50, 200 or 400&nbsp;GB, with unlimited images and sites on all three tiers and overage at US$0.065 per GB on the top one. Check one thing before you pay: <em>AVIF conversion is built into the Easy IO CDN.</em> Here the modern format is not free.</p>

<div class="pc"><div class="pc--good"><h3>What it does well</h3><ul><li><b>It optimises without a file leaving your server.</b> It is the only one that uses local tools: jpegtran, optipng, pngquant and cwebp, among others.</li><li><b>That local mode costs nothing.</b> Not now and not later.</li><li><b>Unlimited images and sites on all three paid plans.</b> US$80, US$160 or US$320 a year.</li><li><b>The overage price is published.</b> US$0.065 per GB, instead of forcing you up a tier.</li><li><b>Over a million installations and 4.8 stars.</b> With years behind it.</li></ul></div><div class="pc--bad"><h3>Where it falls short</h3><ul><li><b>AVIF is paid.</b> It lives inside the Easy IO CDN; in the free local mode it is not there.</li><li><b>Charging by bandwidth punishes your good weeks.</b> A post that takes off costs you money without you changing anything.</li><li><b>It does not say what network is behind Easy IO.</b> It only names it.</li><li><b>It declares a “fair usage quota” without publishing the figure.</b> On the unlimited plans.</li></ul></div></div>

<p class="tv"><b>Verdict.</b> Pick it if your real objection is the dependency: in local mode nothing leaves your server and it costs nothing. Skip it if you want AVIF without paying.</p>

<aside class="cta"><h3>Want the one that measures nothing?</h3><p>NimboCDN charges a flat rate and never counts traffic. The free plan covers your home page forever, no credit card, and one click puts everything back the way it was.</p><a class="btn" href="/">See how NimboCDN works</a><small class="fine">Free forever on your home page · No credit card · Reversible in one click</small></aside>

<h2 id="nimbocdn">NimboCDN</h2>

<p>Stopping here to say it plainly: NimboCDN is mine. Read what follows with that suspicion in place, and check it against the entries above.</p>

<p><strong>Who it is for.</strong> A store that wants no meter on it, where images and traffic can grow without the bill following them.</p>

<p><strong>US$9.90 a month, or US$99 a year. Flat rate.</strong> Traffic is never counted.</p>

<p>That is not a commercial promise: it is how the thing is built. Each image is transformed once and stays cached for good. Once the image is cached — every visit after the first — <strong>no</strong> request reaches the transformation service, and that is measured in the experiment the price was built on. Ten visits and ten million cost the same, because visits were never what we were counting.</p>

<figure class="doc__fig doc__fig--diagram doc__fig--plate">
<svg class="engine-plate" viewBox="0 0 922 452" role="img" aria-labelledby="et ed" xmlns="http://www.w3.org/2000/svg"><title id="et">What goes into an image CDN and what comes out</title><desc id="ed">Your original files enter on the left. The engine detects each image, picks the right width, converts the format, caches the result for good and delivers it. On the right, the visitor downloads a much lighter file at the right size.</desc><text class="col" x="9" y="52">IN · YOUR LIBRARY</text><text class="col" text-anchor="end" x="912" y="52">OUT · WHAT THE VISITOR DOWNLOADS</text><g class="card"><rect x="5" y="74" width="200" height="70" rx="14"/><g class="ic" transform="translate(16,98.0) scale(0.9167)"><path d="M3 5h18v14H3zM3 15l5-5 4 4 3-3 6 6M8.5 9.5h.01"/></g><text class="c-t" x="46" y="105.0">Heavy JPEG</text><text class="c-s" x="46" y="122.0">as it left the camera</text></g><path class="wire" d="M205 109.0C216.0 109.0 216.0 186.0 227 186.0"/><circle class="dot" cx="216" cy="148" r="3.5"/><g class="card"><rect x="5" y="160" width="200" height="70" rx="14"/><g class="ic" transform="translate(16,184.0) scale(0.9167)"><path d="M9 3H3v6M15 21h6v-6M3 3l7 7M21 21l-7-7"/></g><text class="c-t" x="46" y="191.0">A 2000 px PNG</text><text class="c-s" x="46" y="208.0">in a 400 px slot</text></g><path class="wire" d="M205 195.0C216.0 195.0 216.0 186.0 227 186.0"/><circle class="dot" cx="216" cy="190" r="3.5"/><g class="card"><rect x="5" y="246" width="200" height="70" rx="14"/><g class="ic" transform="translate(16,270.0) scale(0.9167)"><path d="M4 8l8-4 8 4-8 4-8-4Zm0 5l8 4 8-4M4 18l8 4 8-4"/></g><text class="c-t" x="46" y="277.0">Your whole library</text><text class="c-s" x="46" y="294.0">thousands of files</text></g><path class="wire" d="M205 281.0C216.0 281.0 216.0 186.0 227 186.0"/><circle class="dot" cx="216" cy="234" r="3.5"/><g class="card card--out"><rect x="717" y="74" width="200" height="70" rx="14"/><g class="ic" transform="translate(728,98.0) scale(0.9167)"><path d="M4 20l7-7M20 4c0 7-5 12-12 12H4v-4C4 9 9 4 16 4h4Z"/></g><text class="c-t" x="758" y="105.0">AVIF or WebP</text><text class="c-s" x="758" y="122.0">up to the browser</text></g><path class="wire wire--out" d="M695 186.0C706.0 186.0 706.0 109.0 717 109.0"/><circle class="dot" cx="706" cy="148" r="3.5"/><g class="card card--out"><rect x="717" y="160" width="200" height="70" rx="14"/><g class="ic" transform="translate(728,184.0) scale(0.9167)"><path d="M3 15l12-12 6 6-12 12zM8 10l2 2M11 7l2 2M5 13l2 2"/></g><text class="c-t" x="758" y="191.0">The right width</text><text class="c-s" x="758" y="208.0">400, 800 or 1200 px</text></g><path class="wire wire--out" d="M695 186.0C706.0 186.0 706.0 195.0 717 195.0"/><circle class="dot" cx="706" cy="190" r="3.5"/><g class="card card--out"><rect x="717" y="246" width="200" height="70" rx="14"/><g class="ic" transform="translate(728,270.0) scale(0.9167)"><path d="M13 2 4 14h7l-1 8 9-12h-7l1-8Z"/></g><text class="c-t" x="758" y="277.0">The global network</text><text class="c-s" x="758" y="294.0">335 cities, 125 countries</text></g><path class="wire wire--out" d="M695 186.0C706.0 186.0 706.0 281.0 717 281.0"/><circle class="dot" cx="706" cy="234" r="3.5"/><rect class="engine" x="239" y="56" width="444" height="260" rx="20"/><text class="e-t" x="461" y="90">THE ENGINE</text><rect class="step" x="249" y="112" width="56" height="56" rx="14"/><g class="ic ic--step" transform="translate(265.0,128) scale(1.0000)"><path d="M3 8V3h5M21 8V3h-5M3 16v5h5M21 16v5h-5M7 12h10"/></g><text class="s-t" x="277" y="184">Detect</text><path class="link" d="M307 140.0h32"/><rect class="step" x="341" y="112" width="56" height="56" rx="14"/><g class="ic ic--step" transform="translate(357.0,128) scale(1.0000)"><path d="M6 2v14a2 2 0 0 0 2 2h14M2 6h14a2 2 0 0 1 2 2v14"/></g><text class="s-t" x="369" y="184">Resize</text><path class="link" d="M399 140.0h32"/><rect class="step" x="433" y="112" width="56" height="56" rx="14"/><g class="ic ic--step" transform="translate(449.0,128) scale(1.0000)"><path d="M4 8h13l-3-3M20 16H7l3 3"/></g><text class="s-t" x="461" y="184">Convert</text><path class="link" d="M491 140.0h32"/><rect class="step" x="525" y="112" width="56" height="56" rx="14"/><g class="ic ic--step" transform="translate(541.0,128) scale(1.0000)"><path d="M3 8l9-5 9 5v8l-9 5-9-5zM3 8l9 5 9-5M12 13v10"/></g><text class="s-t" x="553" y="184">Cache</text><path class="link" d="M583 140.0h32"/><rect class="step" x="617" y="112" width="56" height="56" rx="14"/><g class="ic ic--step" transform="translate(633.0,128) scale(1.0000)"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM2 12h20M12 2c3 3.5 3 16.5 0 20M12 2c-3 3.5-3 16.5 0 20"/></g><text class="s-t" x="645" y="184">Deliver</text><path class="rule" d="M263 234H659"/><text class="e-n" x="461" y="262">Each image goes through this once.</text><text class="e-n e-n--2" x="461" y="284">From then on it is served from cache — for good.</text><g class="stat"><rect x="5" y="344" width="293" height="96" rx="16"/><text class="st-b" x="152" y="390">32.1%</text><text class="st-s" x="152" y="412">lighter in AVIF than JPEG</text><text class="st-s" x="152" y="427">at equal perceived quality</text></g><g class="stat"><rect x="314" y="344" width="293" height="96" rx="16"/><text class="st-b" x="461" y="390">2,323 → 281 KB</text><text class="st-s" x="461" y="412">the 9 images on a home page,</text><text class="st-s" x="461" y="427">weighed file by file</text></g><g class="stat"><rect x="624" y="344" width="293" height="96" rx="16"/><text class="st-b" x="770" y="390">0</text><text class="st-s" x="770" y="412">requests to the transform service</text><text class="st-s" x="770" y="427">with the image already cached</text></g></svg>
<svg class="engine-plate engine-plate--v" viewBox="0 0 372 1148" role="img" aria-labelledby="evt evd" xmlns="http://www.w3.org/2000/svg"><title id="evt">What goes into an image CDN and what comes out</title><desc id="evd">Your original files enter on the left. The engine detects each image, picks the right width, converts the format, caches the result for good and delivers it. On the right, the visitor downloads a much lighter file at the right size.</desc><text class="col" x="8" y="14">IN · YOUR LIBRARY</text><g class="card"><rect x="4" y="26" width="364" height="64" rx="13"/><g class="ic" transform="translate(18,47.0) scale(0.9167)"><path d="M3 5h18v14H3zM3 15l5-5 4 4 3-3 6 6M8.5 9.5h.01"/></g><text class="c-t" x="52" y="55.0">Heavy JPEG</text><text class="c-s" x="52" y="71.0">as it left the camera</text></g><g class="card"><rect x="4" y="100" width="364" height="64" rx="13"/><g class="ic" transform="translate(18,121.0) scale(0.9167)"><path d="M9 3H3v6M15 21h6v-6M3 3l7 7M21 21l-7-7"/></g><text class="c-t" x="52" y="129.0">A 2000 px PNG</text><text class="c-s" x="52" y="145.0">in a 400 px slot</text></g><g class="card"><rect x="4" y="174" width="364" height="64" rx="13"/><g class="ic" transform="translate(18,195.0) scale(0.9167)"><path d="M4 8l8-4 8 4-8 4-8-4Zm0 5l8 4 8-4M4 18l8 4 8-4"/></g><text class="c-t" x="52" y="203.0">Your whole library</text><text class="c-s" x="52" y="219.0">thousands of files</text></g><path class="wire" d="M186.0 242v15"/><path class="wire" d="M181.0 255l5 6 5-6"/><rect class="engine" x="4" y="270" width="364" height="358" rx="18"/><text class="e-t" x="186" y="300">THE ENGINE</text><rect class="step" x="22" y="326" width="40" height="40" rx="12"/><g class="ic ic--step" transform="translate(30,334) scale(1.0000)"><path d="M3 8V3h5M21 8V3h-5M3 16v5h5M21 16v5h-5M7 12h10"/></g><text class="s-t s-t--v" x="74" y="351">Detect</text><path class="link" d="M42 367v5"/><rect class="step" x="22" y="372" width="40" height="40" rx="12"/><g class="ic ic--step" transform="translate(30,380) scale(1.0000)"><path d="M6 2v14a2 2 0 0 0 2 2h14M2 6h14a2 2 0 0 1 2 2v14"/></g><text class="s-t s-t--v" x="74" y="397">Resize</text><path class="link" d="M42 413v5"/><rect class="step" x="22" y="418" width="40" height="40" rx="12"/><g class="ic ic--step" transform="translate(30,426) scale(1.0000)"><path d="M4 8h13l-3-3M20 16H7l3 3"/></g><text class="s-t s-t--v" x="74" y="443">Convert</text><path class="link" d="M42 459v5"/><rect class="step" x="22" y="464" width="40" height="40" rx="12"/><g class="ic ic--step" transform="translate(30,472) scale(1.0000)"><path d="M3 8l9-5 9 5v8l-9 5-9-5zM3 8l9 5 9-5M12 13v10"/></g><text class="s-t s-t--v" x="74" y="489">Cache</text><path class="link" d="M42 505v5"/><rect class="step" x="22" y="510" width="40" height="40" rx="12"/><g class="ic ic--step" transform="translate(30,518) scale(1.0000)"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM2 12h20M12 2c3 3.5 3 16.5 0 20M12 2c-3 3.5-3 16.5 0 20"/></g><text class="s-t s-t--v" x="74" y="535">Deliver</text><path class="rule" d="M22 562H350"/><text class="e-n" x="186" y="586">Each image goes through this once.</text><text class="e-n e-n--2" x="186" y="604">From then on it is served from cache — for good.</text><path class="wire" d="M186.0 632v15"/><path class="wire" d="M181.0 645l5 6 5-6"/><text class="col" x="8" y="662">OUT · WHAT THE VISITOR DOWNLOADS</text><g class="card card--out"><rect x="4" y="674" width="364" height="64" rx="13"/><g class="ic" transform="translate(18,695.0) scale(0.9167)"><path d="M4 20l7-7M20 4c0 7-5 12-12 12H4v-4C4 9 9 4 16 4h4Z"/></g><text class="c-t" x="52" y="703.0">AVIF or WebP</text><text class="c-s" x="52" y="719.0">up to the browser</text></g><g class="card card--out"><rect x="4" y="748" width="364" height="64" rx="13"/><g class="ic" transform="translate(18,769.0) scale(0.9167)"><path d="M3 15l12-12 6 6-12 12zM8 10l2 2M11 7l2 2M5 13l2 2"/></g><text class="c-t" x="52" y="777.0">The right width</text><text class="c-s" x="52" y="793.0">400, 800 or 1200 px</text></g><g class="card card--out"><rect x="4" y="822" width="364" height="64" rx="13"/><g class="ic" transform="translate(18,843.0) scale(0.9167)"><path d="M13 2 4 14h7l-1 8 9-12h-7l1-8Z"/></g><text class="c-t" x="52" y="851.0">The global network</text><text class="c-s" x="52" y="867.0">335 cities, 125 countries</text></g><g class="stat"><rect x="4" y="906" width="364" height="72" rx="14"/><text class="st-b st-b--v" x="22" y="940">32.1%</text><text class="st-s st-s--v" x="22" y="958">lighter in AVIF than JPEG</text><text class="st-s st-s--v" x="22" y="972">at equal perceived quality</text></g><g class="stat"><rect x="4" y="988" width="364" height="72" rx="14"/><text class="st-b st-b--v" x="22" y="1022">2,323 → 281 KB</text><text class="st-s st-s--v" x="22" y="1040">the 9 images on a home page,</text><text class="st-s st-s--v" x="22" y="1054">weighed file by file</text></g><g class="stat"><rect x="4" y="1070" width="364" height="72" rx="14"/><text class="st-b st-b--v" x="22" y="1104">0</text><text class="st-s st-s--v" x="22" y="1122">requests to the transform service</text><text class="st-s st-s--v" x="22" y="1136">with the image already cached</text></g></svg>
<figcaption>How an image CDN works on the inside. Each file goes in once, comes out resized and converted, and from then on the cache serves it. That is why traffic stops being a cost variable.</figcaption>
</figure>

<figure class="doc__fig">
<picture><source type="image/avif" srcset="/assets/content/optimole/originals-stay-home.avif"><source type="image/webp" srcset="/assets/content/optimole/originals-stay-home.webp"><img src="/assets/content/optimole/originals-stay-home.png" alt="The large original stays inside the server while a much smaller copy travels to the visitor’s screen" width="1200" height="478" loading="lazy" decoding="async"></picture>
<figcaption>The big original stays on your server; only a much lighter copy travels to the visitor. That is how Optimole and NimboCDN work. Imagify replaces the original instead, unless you switch its backup on.</figcaption>
</figure>

<p>Your original files stay exactly where they are. They are not replaced, not moved, not uploaded anywhere.</p>

<p>You switch the connector off and everything goes back to how it was, in one click. If the service stops responding, the connector stops itself and your platform serves its own images. We tested the four worst cases — origin down, origin slow, corrupt file and invalid signature — and all four end on the original image. Never on a broken one.</p>

<p>On format: at equal perceived quality, measured with SSIMULACRA2 at 70, AVIF came out 32.1% lighter than JPEG at the median, winning on all 14 of the 14 images we tested, taken from two real stores, across 336 encodings. On the 9 images of a real home page, that was going from 2,323&nbsp;KB to 281&nbsp;KB.</p>

<p>Worth knowing before you try it. <strong>The free plan is a sample, not a usage tier:</strong> it covers your home page, up to 50 new images a month, in WebP. It is meant for seeing it work on the page that gets the most visits, no credit card and no commitment.</p><p>And if your site is small, or most visits land right on the homepage — the classic landing-page case — that slice covers what matters, and the free plan serves you perfectly well. The whole site and AVIF come with the paid plan, and there the price has no steps: US$9.90 a month, or US$99 a year, with no meter in the middle.</p>

<div class="pc"><div class="pc--good"><h3>What it does well</h3><ul><li><b>No traffic meter.</b> Traffic is never counted, on any plan.</li><li><b>Each image is transformed exactly once.</b> After the first visit, no request reaches the transformation service. Measured.</li><li><b>Your originals stay where they are.</b> Not replaced, not moved, not uploaded anywhere.</li><li><b>Reversible, and fail-safe.</b> One click turns it off and everything goes back. If the service does not answer, your platform serves its own images.</li><li><b>It stores no visitor data.</b> No IP, no browser, no page.</li></ul></div><div class="pc--bad"><h3>Where it falls short</h3><ul><li><b>The free plan covers your home page only.</b> Up to 50 new images a month, where every free tier above covers the whole site.</li><li><b>AVIF is paid.</b> On the free plan we serve WebP; Imagify gives AVIF even on theirs.</li><li><b>For now the connector is WordPress only.</b> If your store runs on another platform, it is not for you yet.</li></ul></div></div>

<p class="tv"><b>Verdict.</b> Pick it if you want no meter on you and need images and traffic to grow without the bill following them. Skip it if what you are buying is track record: the connector is new and the other five have years.</p>

<h2 id="switching-from-optimole">Is switching simple? What changes and what doesn’t</h2>

<p>Leaving Optimole is simpler than it looks, with one exception worth knowing before you deactivate anything.</p>

<p>If you never used their cloud storage, the exit is clean, and their own documentation says so: on deactivating the plugin, <em>the image URLs will be reverted to the original URLs, and the images will serve from your own server</em>. Your files never moved; what changes is who serves them. If some image still points at the old URL after that, it is cache — the caching plugin’s, the host’s or the browser’s — and clearing it fixes it.</p>

<p>The exception is <em>Image Offloading</em>, the Pro feature that moves your images into Optimole’s cloud. There, order matters: <strong>bring the files back first, deactivate second.</strong> The official path lives in Settings → Image Storage, choosing “Optimole Cloud and your website” and confirming <em>Transfer back from Optimole</em>; you can also request a ZIP export of the whole library from their dashboard. And keep your domain listed under <em>Allowed Domains</em> until the end — without it, their documentation warns, the rollback won’t run.</p>

<p>On this side, trying costs you nothing. The <a href="/install">NimboCDN connector</a> never moves or rewrites a single file — your originals stay where they are — and switching it off returns the site to its previous state in one click. The free plan covers your homepage forever, no credit card, precisely so you can watch it work before deciding. And the number that starts the whole decision is free either way: the <a href="/tools/website-image-size-checker/">image size checker</a> weighs the images your own storefront serves today.</p>

<h2 id="which-one">Which one should you pick?</h2>

<p>Before the recommendation, the side-by-side of what each one delivers:</p>

<div class="table-scroll"><table><thead><tr><th>Tool</th><th>Own CDN</th><th>AVIF</th><th>Free plan</th></tr></thead><tbody><tr><td>Optimole</td><td>Yes — CloudFront, 450+ locations</td><td>Yes</td><td>2,000 visits/mo, only on its WordPress.org listing</td></tr><tr><td>ShortPixel</td><td>Yes — bunny.net</td><td>Yes</td><td>100 credits, about 500 visits/mo</td></tr><tr><td>Imagify</td><td>No</td><td>Yes, even on the free plan</td><td>20&nbsp;MB/mo, 2&nbsp;MB max per image</td></tr><tr><td>Smush</td><td>Yes — 119 nodes, operator undisclosed</td><td>Yes, on Pro plans</td><td>Skips images over 5&nbsp;MB</td></tr><tr><td>EWWW</td><td>Paid — Easy IO</td><td>Only on the paid CDN</td><td>Full local mode, no cloud</td></tr><tr><td>NimboCDN</td><td>Yes — 335 cities, 125+ countries</td><td>On the paid plan; free delivers WebP</td><td>Homepage, 50 new images/mo</td></tr></tbody></table></div>

<ul><li><strong>Lots of images, modest traffic.</strong> Optimole. The visit ceiling is precisely the one you will not reach, and with bandwidth unmetered the size of the library stops mattering.</li><li><strong>Heavy traffic, few images.</strong> Imagify, or EWWW in local mode. Paying per visit to serve nine images is the worst possible fit.</li><li><strong>Both are growing and you want to stop thinking about it.</strong> NimboCDN’s paid plan has no cap on visits, images or traffic. ShortPixel stops delivery at 500&nbsp;GB a month.</li><li><strong>A fixed roster of clients.</strong> Smush. It is the only one whose bill for next year you already know today.</li><li><strong>No third-party dependencies.</strong> EWWW local. Nothing leaves your server and nothing costs anything.</li><li><strong>You want AVIF without paying.</strong> Imagify: AVIF is in even the free plan.</li></ul>

<aside class="cta"><h3>Ten visits and ten million cost the same</h3><p>Because visits were never what we were counting. Each image is transformed once and stays cached for good. You install the connector and it starts delivering; your originals stay exactly where they are.</p><a class="btn" href="/install" data-cta="body-alternatives">Try NimboCDN free</a><small class="fine">Free forever on your home page · No credit card · One click to undo it</small></aside>

<h2 id="faq">Frequently asked questions</h2>

<details name="faq">
<summary>What counts as a visit for Optimole?</summary>
<p class="body-text muted">Their pricing page defines it as a unique daily user: each visitor counts once, whatever they do and however many times they come back within those 24 hours. Someone opening six pages counts as one. The same someone tomorrow counts as another. There is one documented exception: an unusually large burst of requests from the same source in a short time — a scraper, say — can add more than one visit.</p>
</details>

<details name="faq">
<summary>Which of these plugins leaves my original files alone?</summary>
<p class="body-text muted">Optimole states that it works without altering the originals on your server, and NimboCDN does not touch them either. ShortPixel swaps URLs and serves from its CDN; your originals stay on your server, and get served directly again if the quota runs out. Imagify is the exception: it replaces the originals with the optimised versions unless you enable the backup. If you go that way, set it up before the first pass.</p>
</details>

<details name="faq">
<summary>Do I need a CDN, or is compressing enough?</summary>
<p class="body-text muted">If your audience sits close to your server and your images are already the right size, compressing gets you almost all of the benefit, and both Imagify and EWWW local do it without a subscription. A CDN pays for itself when the audience is spread across the world, or when you want size and format decided per visitor instead of frozen at upload time.</p>
</details>

<details name="faq">
<summary>Is it worth moving to AVIF?</summary>
<p class="body-text muted">On weight, no argument: at equal perceived quality we measured AVIF 32.1% lighter than JPEG at the median, across 14 images from two real stores. On search, be careful what you expect. Google has indexed AVIF since August 2024 with nothing special required, but it was explicit that the format on its own does not improve your ranking. The measured result is a lighter image. We did not measure page-load time or LCP.</p>
</details>

<details name="faq">
<summary>What happens if I go over my Optimole plan’s visit limit?</summary>
<p class="body-text muted">It depends on the plan, per their official documentation. On the free one, Optimole emails you and, with no upgrade within a few days, returns your originals and permanently deactivates that account’s optimized delivery. On paid plans, the subscription climbs to the next tier on its own, with a separate prorated charge — and that automatic upgrade cannot be turned off.</p>
</details>

<details name="faq">
<summary>Does Optimole’s badge really add 20,000 visits to the free plan?</summary>
<p class="body-text muted">It does: the official listing offers 20,000 extra visits for showing their badge, which adds up to 22,000 with the plan’s 2,000. Read the trade for what it is — you pay for those visits with a permanent slot on your own page.</p>
</details>

<details name="faq">
<summary>Is there an Optimole alternative with a fixed price and no visit meter?</summary>
<p class="body-text muted">Yes — that is NimboCDN’s model: a flat $9.90 a month with traffic never counted. Of the other four, the closest is ShortPixel, which does not count visits — but caps delivery at 500&nbsp;GB of CDN traffic a month.</p>
</details>]]></content:encoded>
  </item>
 </channel>
</rss>
