Next-Level Code. Nexuvibe Style ...

Hrs
Min
Sec
Image Optimization Stack & The Missing Infrastructure Layer

Why Your Image Optimization Plugin
Isn’t Enough (The Offload Missing Piece)

ShortPixel, Imagify, Smush, EWWW. You have one of these running and your images are compressed and in WebP. Your PageSpeed score improved a little. But LCP is still failing and your hosting storage is still filling up. Here is why, and what is missing from your stack.

11 min read
Updated 2026
Complete Image Stack Guide
Image optimization plugin like ShortPixel or Imagify alone is not enough for WordPress performance showing the missing FTP offload and CDN delivery layer needed to pass LCP

Image optimization plugins are one of the most popular categories of WordPress plugins. ShortPixel, Imagify, Smush, EWWW Image Optimizer, and Kraken.io collectively have tens of millions of installations. They are widely recommended, broadly reviewed, and genuinely useful. They compress images, convert to WebP, strip metadata, and resize large originals. For many sites, installing one of these plugins is the first performance improvement that produces a visible PageSpeed score change.

The problem is that most WordPress site owners treat image optimization as the complete solution to their image performance problem rather than one layer of a complete solution. After installing ShortPixel and converting everything to WebP, they check PageSpeed Insights, see the score went from 45 to 58, and conclude the image problem is solved. Then they are confused when LCP is still 3.8 seconds, when their hosting storage warning emails keep arriving, and when migrations are still slow.

Image optimization addresses one layer of the image stack: the file itself. It does not address where the file is stored, how it is delivered, or what TTFB the server serving it produces. This guide explains the complete image stack, what each optimization plugin addresses, and what the offload layer addresses that optimization plugins cannot touch.

What this guide covers
The complete image optimization stack and what each layer addresses.
Exactly what image optimization plugins do and what they explicitly do not do.
Why compression alone cannot fix LCP TTFB and what the actual bottleneck is.
What offloading adds that optimization cannot: storage, delivery origin, and TTFB.
How to combine optimization and offload correctly for the best results from both.
Whether you still need an optimization plugin after implementing FTP offload.

The complete image stack: four layers, four problems

A complete WordPress image optimization stack has four distinct layers. Each layer addresses a different aspect of image performance. An optimization plugin operates on Layer 1. Offloading to FTP with CDN delivery operates on Layers 2, 3, and 4. Understanding the separation makes it clear why each is necessary and why neither alone is sufficient.

1
Layer 1: File quality — compression, format, dimensions
What optimization plugins address

This layer is about the file itself: how many bytes it contains, what format it uses, and whether its dimensions are appropriate for its display context. Compression reduces bytes by 60 to 80% without visible quality loss. WebP conversion reduces bytes by a further 25 to 35% compared to JPEG at equivalent quality. Dimension scaling prevents a 4000px wide image from being served to a 400px wide display context.

Optimization plugins handle this layer fully and well.

2
Layer 2: Storage location — where the file lives
What offloading addresses — optimization plugins do not touch this

After an optimization plugin compresses and converts your images, those optimized files still live on your hosting server’s disk. The hosting server still accumulates inodes. The hosting server’s uploads directory still grows. Backups still take hours. Migrations still include all the files. An optimized 50KB WebP file still occupies one inode and still contributes to the backup archive. Optimization does not move files.

🔗To achieve consistent LCP improvements, you may need to offload WordPress media files to a dedicated CDN or object storage service. →

Optimization plugins do not address this layer. FTP offload does.

3
Layer 3: Delivery origin — what server responds to image requests
The primary LCP determinant — optimization plugins cannot change this

This is the layer that determines LCP. When a browser requests an image, the TTFB of that request depends on which server responds. A compressed WebP image served from a shared hosting server has a TTFB of 200 to 600ms. The same compressed WebP image served from a CDN edge node has a TTFB of 10 to 25ms. The file is identical. The difference is entirely which server the request goes to. Image optimization has zero effect on which server responds.

Optimization plugins do not address this layer. CDN delivery through FTP offload does.

4
Layer 4: Geographic proximity — how close the server is to the visitor
The global delivery problem — only CDN solves this

Even a fast hosting server in US-East has 80 to 150ms of network latency for visitors in Europe or Asia-Pacific, purely from the physical distance that data must travel. A CDN with edge nodes in Frankfurt, London, Singapore, and São Paulo reduces this to 5 to 20ms for visitors in those regions. Image optimization has no effect on network latency. Only changing where the image is delivered from affects this layer.

Optimization plugins do not address this layer. CDN with global edge nodes does.

Why LCP still fails after optimization: the numbers

To understand exactly why a well-optimized image can still produce a failing LCP, let us trace the full LCP timeline for two scenarios: an optimized image on a hosting server, and the same optimized image served from a CDN.

Optimized WebP (80KB) on hosting server

Page HTML TTFB: 320ms
LCP image discovery: +180ms
Image request TTFB: +420ms
Image download (80KB): +140ms
Browser paint delay: +60ms
Total LCP: 1,120ms = 1.12s
Wait — this looks like it passes!

Un-optimized original (800KB) on hosting server

Page HTML TTFB: 320ms
LCP image discovery: +180ms
Image request TTFB: +420ms
Image download (800KB): +1,400ms
Browser paint delay: +60ms
Total LCP: 2,380ms = 2.38s
Failing — needs improvement

Wait — why does the optimized version look fine above?
The calculation above uses ideal conditions: a fast server with low concurrent load, a visitor on broadband in the same region as the hosting server. In the real world, the same page measured by Google’s CrUX data captures the 75th percentile across all real visitors including mobile users, international visitors, and visitors hitting the server during peak load. For those visitors, the image TTFB from a hosting server is not 420ms — it is 600ms, 800ms, or more. The CrUX LCP for the same page is 3.4 seconds even with the optimized image because the 25% of visitors on slower connections or in distant regions are dragging the 75th percentile above 2.5 seconds.
Optimized WebP (80KB) on CDN edge node

Page HTML TTFB: 220ms
LCP image discovery: +140ms
Image request TTFB: +18ms (CDN edge)
Image download (80KB): +65ms (CDN bandwidth)
Browser paint delay: +45ms
Total LCP: 488ms = 0.49s
Excellent — passes all thresholds

Un-optimized original (800KB) on CDN edge node

Page HTML TTFB: 220ms
LCP image discovery: +140ms
Image request TTFB: +18ms (CDN edge)
Image download (800KB): +650ms (larger file)
Browser paint delay: +45ms
Total LCP: 1,073ms = 1.07s
Still passes! But much better with compression.

The four scenarios tell the complete story. The biggest LCP improvement comes from switching delivery from hosting server to CDN edge — this changes image TTFB from 420ms to 18ms, a 95% reduction. Compression then reduces download time from 1,400ms to 65ms, which is a meaningful further improvement. Both matter. But the CDN move is the larger lever, and it is the one that optimization plugins cannot pull.

What optimization plugins claim to do with CDN — and the reality

Some image optimization plugins include a CDN delivery feature as part of their premium plans. ShortPixel has an Adaptive Images CDN. Imagify has an option to serve images from a CDN. Jetpack Boost includes image CDN functionality. These features are worth understanding carefully because they address some of the delivery problem while introducing their own constraints.

What plugin CDNs do well

They serve your images from edge nodes, reducing TTFB significantly. They often include real-time format conversion (serving WebP to supporting browsers, AVIF to supporting browsers) without requiring you to pre-generate those formats. They can handle responsive image sizes dynamically. For sites that want the simplest possible setup, a plugin with built-in CDN is a legitimate all-in-one option.

🔗While plugins like ShortPixel improve compression, failing to optimize Elementor media library performance can still leave your site with slow load times and bloated storage. →

What plugin CDNs do not solve

They do not move the images off your hosting server. The original files still live on the hosting server’s disk. The hosting server still accumulates inodes. Backups still include all the files. The storage warning problem persists. They serve images from CDN but the origin remains the hosting server — so the CDN is pulling from the same server you are trying to relieve of image serving. And their pricing includes a per-image processing credit model that can become expensive for large libraries.

When plugin CDN is right vs when FTP offload is right

Plugin CDN is right when: you want a single plugin to handle compression, format conversion, and delivery; your library is small enough that credits are not a cost concern; storage accumulation on the hosting server is not a problem you are trying to solve. FTP offload is right when: you need images physically removed from the hosting server; your library is large and growing; backup size and migration time are real problems; you want flat-rate predictable infrastructure cost.

How to combine optimization and offload correctly

The correct approach is to use both optimization and offload, with the right tool for each layer. Here is the workflow that produces the best results from both.

1
Install your optimization plugin and run the bulk optimization on your existing library

Compress and convert to WebP using ShortPixel, Imagify, EWWW, or your plugin of choice. This handles Layer 1. Do this before setting up FTP offload so that the files transferred to FTP are already optimized, minimizing FTP storage usage.

2
If your optimization plugin has CDN delivery, disable it

Once you configure WP FTP Media’s CDN URL rewriting, having the optimization plugin also attempt to rewrite URLs creates conflicts and double-CDN situations. Disable the CDN feature of the optimization plugin while keeping its compression and WebP conversion active.

3
Set up WP FTP Media, configure FTP connection, and set CDN base URL

This handles Layers 2, 3, and 4. Files move to FTP (Layer 2 — storage location). Image requests go to CDN (Layer 3 — delivery origin). CDN edge nodes serve images close to visitors (Layer 4 — geographic proximity).

4
Configure your optimization plugin to auto-optimize on new uploads

Going forward, new uploads are automatically optimized by the plugin (Layer 1) and then automatically transferred to FTP by WP FTP Media (Layers 2, 3, 4). The workflow is: upload to WordPress, plugin compresses, WP FTP Media transfers to FTP, URL rewriting serves from CDN. All four layers handled automatically for every new image.

🔗For WooCommerce stores struggling with bloated media libraries, the ability to offload WooCommerce product images via FTP can drastically reduce server load without sacrificing image quality. →

Do you still need an optimization plugin after implementing FTP offload?

Yes, for two reasons.

First, compression and WebP conversion genuinely reduce LCP download time, as the four scenarios above show. Even with CDN delivery reducing TTFB to 18ms, a 800KB image takes 650ms to download versus 65ms for an 80KB WebP equivalent. Both improvements compound. Implementing CDN delivery without optimization leaves 580ms of improvement on the table per image request.

Second, smaller optimized images reduce CDN storage and delivery costs. BunnyCDN charges per GB delivered. An unoptimized library transfers 10x more data than an optimized one for the same number of image requests. The combination of optimization and CDN delivery provides both the performance benefit and the cost efficiency that neither alone fully achieves.

According to Google’s LCP optimization guide, the two largest contributors to LCP failure are TTFB and resource load duration. TTFB is addressed by CDN delivery (FTP offload). Resource load duration is addressed by file compression (optimization plugin). The complete stack requires both. WP FTP Media’s WordPress image infrastructure completion plugin provides the delivery and storage layers that image optimization plugins cannot, completing the stack that starts with compression and WebP conversion.


WP FTP Media dashboard showing the complete image stack active with optimized images transferred to FTP storage and served via CDN completing what optimization plugins start

Complete stack active in WP FTP Media – WordPress complete image optimization stack plugin that pairs with ShortPixel Imagify or EWWW to handle the delivery and storage layers optimization plugins cannot reach — this dashboard confirms Layers 2, 3, and 4 are handled. Your optimization plugin handles Layer 1.
Layer 1 Done · Now Add Layers 2, 3 and 4 · Complete the Stack

Your optimization plugin did the easy part. Here is the part it could not do.

WP FTP Media handles the three layers your ShortPixel or Imagify plugin cannot: moving images off your hosting server, routing delivery through CDN edge nodes, and serving images from geographic locations close to your visitors — completing the image stack that optimization alone leaves unfinished.

WP FTP Media – WordPress image infrastructure completion plugin that handles storage delivery and geographic layers that optimization plugins like ShortPixel and Imagify cannot address

WP FTP Media by NEXU WP
WordPress plugin · Pairs with any optimizer · FTP & SFTP · CDN Delivery


Get WP FTP Media

🔗For Divi users struggling with storage bloat, implementing Divi external FTP media offloading can drastically reduce server load while maintaining fast delivery speeds. →

Picture of Mahdi Jabinpour

Mahdi Jabinpour

As a sales-driven developer and the founder of NexuWP, Mahdi focuses on building WordPress solutions that don't just work—they convert. From AI-powered bulk translation engines to high-efficiency media offloading, he helps business owners automate the "grind" so they can focus on global growth. He is a pioneer in integrating advanced LLMs into the WordPress workflow.

RELATED POSTS

RELATED POSTS

4 Reviews
Sarah Garcia 2 months ago

Got this for my friend's blog, but the inode problem is still hanging around. Compression helps, but his host keeps nagging about storage limits. Offload might work, but now I'm not sure he even needs ShortPixel at all

Mahdi Jabinpour 2 months ago

Offloading does help with storage limits, but it doesn't handle image compression or WebP conversion like ShortPixel. using both optimizing first, then offloading gives you the best results

Lisa Rodriguez 3 months ago

Got this after struggling with slow load times. My images were optimized but LCP was still terrible

Joseph Thompson 3 months ago

I've been using image optimization plugins for years and always wondered why my LCP scores never quite hit where I wanted them, even after compressing everything. This guide finally made it all click for me turns out, just optimizing images isn't enough if they're still slowing down your server

Mahdi Jabinpour 3 months ago

That's exactly why we put this guide together so many folks hit the same wall.

Sarah Garcia 3 months ago

Finally got my LCP under control!

Please log in to leave a review.