Smush vs External Images Plugin
Want faster results? Try External Images on your store.
Get External Images →Comparing Smush with External Images? This page breaks down the key differences and similarities so you can find the best fit for your WordPress or WooCommerce store.
Overview of Smush
Smush is the award-winning WordPress image compression plugin from WPMU DEV. It automatically compresses, resizes, and lazy loads images to improve site speed and boost your Google PageSpeed Insights score.
How External Images differs from Smush
All plugins from Super Speedy Plugins share a SQL-first architecture and an uncompromising focus on performance — and External Images is no different. Here is what sets it apart:
If a supplier, merchant or CDN already hosts your images, downloading copies into WordPress wastes import time, CPU and disk. External Images lets WooCommerce use those remote URLs without creating local attachments or thumbnails.
How to choose between Smush and External Images?
If you're fed up with plugin updates slowing down your site — and wondering whether Smush's developers ever test against stores with large catalogues — it might be time for a change. Every release of External Images is performance-tested against a one-million-product WooCommerce store to guarantee sub-second response times across every page. Migration is more straightforward than you might expect, and a free trial means you can evaluate the difference on your staging server with zero risk.
What do others say about External Images?
Purchased the external images plugin which was superb. Needed some bespoke work so it was compatible with a third party plugin and Dave was only to happy to help and in record time. Very happy.
I'm impressed. I wasn't sure I would be able to accomplish what I needed with my images. I'm hosting images on my site for SEO purposes. On product upload, I don't need WP to download those images and create multiple versions that a browser could serve (more images served = slower website load). Since I've optimized my images I want WordPress to use those images. With the external images plugin, I'm able to upload my images via FTP. Then I upload a reference to those images in the product upload file. Also, support is fantastic. My theme had a slight issue with external images. Dave personally looked into it and was able to quickly resolve the issue for me.
External Images allowed me to import products at 6x the speed! Great plugin as are Dave's other plugins, and fantastic support. He will make updates to the plugin within days to fix any issues you may run into. 5/5, highly recommend.
External Images Knowledge Base
View full Knowledge Base →- External Images demo with Houzez Theme
- External Images demo with RealHomesPro Theme
- External Images demo with WPResidence theme
- Compatibility and Integrations
- Houzez Theme Gallery Display Options
- Photon image resizing
- The SSL Image Proxy
- WooCommerce Advanced Bulk Edit Compatibility
- WooCommerce Variation and Gallery Images
- Adding external images to posts or custom post types
- Changing external images for WooCommerce products manually
- Datafeedr Integration
- Guide to third party storage
- How to alter import jobs to import external images
- How to Delete All External Images from Your Database
- Installation & Activation
Articles about External Images
View all articles →- December Development Update
- More speed, more updates, and a bit of a roadmap for our plugins
- More beta updates available
- Dev Diary #7
- Dev Diary #6
- Dev Diary #4
- Dev Diary #2
- External Images 1.97 released
- External Images upgrade released – gallery support added
- External Images upgrade released
What's new in External Images?
3.43 (3rd August 2026)
- Updated the shared Super Speedy settings module: AI agents can check your licence and install other Super Speedy plugins over MCP, now also exposed on AI Engine's MCP endpoint when AI Engine is active
- New Check frequency setting – cap licence, update and changelog checks to once a day or once a week, and see when the licence was last checked
- Licence and changelog checks fail fast when superspeedyplugins.com cannot be reached, instead of hanging the settings page
- The newest installed copy of the shared Super Speedy settings code now runs site-wide, whichever plugin loads first – previously the alphabetically-first plugin's often-older copy won
- AI agents can read and change External Images settings over MCP, count how products are imaged, and verify a sample of external image URLs – also exposed on AI Engine's MCP endpoint
- Fixed a fatal `array_key_exists(): Argument #2 ($array) must be of type array, false given` on PHP 8, hit on an HTTPS site when a product carried a malformed `http://` image URL such as `http:///photo.jpg` or one with a non-numeric port
- Malformed image URLs no longer raise PHP 8.1 deprecation notices when the proxy filename or the image host is read from them
- Security: the Per Website tab's HTTPS checkbox now requires a nonce and the `manage_options` capability, and only ever writes its own `eissl-` options
- Removed `ssl-proxy.php`, an unused legacy file that was still reachable over the web
- New Proxy HTTP Images setting, off by default. On an HTTPS site, an image whose host offers no HTTPS at all is blocked by browsers as mixed content. Switch this on to serve those images from your own server instead, at the cost of storing each one in `uploads/external-images/`
- Removed the "External Images DB update required" notice and its Run DB Update now button. The one statement behind it now runs by itself, once, with nothing to click
- Security: the variation gallery endpoint now checks that the id it is given is a published variation, instead of acting on any post id
- Removed the `EI_BETA` constant. It was defined but never read, so setting it did not opt a site into beta releases
- Tested up to WordPress 7.0
- Removed leftover debug logging. The plugin no longer writes to the browser console, including once per row per second on the WP All Import review screen
- The HTTPS support probe now times out after 3 seconds instead of stalling the page when a supplier host is unresponsive
- A supplier recorded as having no HTTPS is re-checked monthly, so a host that was briefly down is not proxied forever. Untick it on the Per Website tab to pin the choice and stop the re-check
- Pick largest now ignores an image whose size could not be read, rather than letting the failure decide which image wins
- Fixed a notice "Translation loading for the external-images domain was triggered too early" on WordPress 6.7 or later when the site language is not English, and the "Cannot modify header information – headers already sent" warnings it caused when activating the plugin
- Licence declarations in the plugin header and readme corrected to GPLv3
Want faster results? Try External Images on your store.
Get External Images →
Comments