Delayed Image Import
Stop image servers throttling your imports - download them later
Your import should not stall or get your server blocked just because every product has images. Delayed Image Import lets the data finish first, then downloads images politely in the background. Works with Super Speedy Imports and any importer that can write post meta.
Import Fast Without Getting Blocked
Super Speedy Imports can pull a million products in about 22 minutes – but most image CDNs and supplier servers aren’t built for that kind of traffic. Delayed Image Import defers every image download until after the import finishes, so your import stays fast and your supplier never sees a spike.
Delayed Image Import takes the images out of your import. Instead of downloading every product photo while the import runs, your importer writes the supplier’s image URLs into two post-meta fields and moves straight on to the next row. The import finishes. Afterwards, a background queue works through those URLs at a sensible pace and turns each one into a proper WordPress attachment in your media library.
That is what makes the import fast. On a real catalogue the images are the expensive part, not the data. A product row is a line of text your database swallows in microseconds; each of its photos costs a separate HTTP round trip out to the supplier’s server, and then thumbnail generation for every image size registered on your site. A 50,000-product import means at least 50,000 of those, done one after another, while everything else waits on them. Take them out of the loop and the import goes back to doing what it should be doing – writing rows to the database.
And that is what stops you getting banned. Image hosts and CDNs do not distinguish between a legitimate bulk import and a scraper; they see thousands of requests from one IP address in a few minutes and they rate-limit you, start returning 403s, or block your server outright. Suddenly half your catalogue has no images and your supplier will not talk to you any more. The background queue is deliberately polite instead: it rotates between supplier domains so no single host is ever hit repeatedly, and when a host starts failing it backs off automatically for two minutes, doubling each time up to an hour, rather than hammering it.
It speeds up every importer, not just ours. The whole contract is two post-meta fields, so anything that can write post meta can use it – WP All Import, a WooCommerce CSV import, a custom feed script, whatever you already run. Point your featured-image column at delayed_image_url and your gallery column at delayed_gallery_image_urls, switch off that importer’s own image handling, and it inherits the same deferred downloads, the same politeness and the same background queue. With Super Speedy Imports there is nothing to map at all: deferring switches itself on the moment both plugins are active.
Before the local copy exists, the page uses the supplier’s URL directly. If that source remains reachable and permits hotlinking, shoppers and search engines see the real photograph while the queue works. A supplier outage or hotlink block can affect the image until it has been downloaded locally.
How It Works
# Check the current backlog and throughput
wp dii status
# Drain everything now instead of waiting for cron
wp dii load-all
# Watch it work in real time
wp dii status --watchInvest in Speed
Yearly plans include a year of updates and support and the plugin keeps working afterwards – renew at 30% off. Upgrade to a lifetime plan within 60 days and just pay the difference. Backed by our 60-day money-back guarantee.
1 Site
- Yearly licence – 1 year of updates and support, keeps working afterwards
- 1 Site License
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
5 Sites
- Yearly licence – 1 year of updates and support, keeps working afterwards
- 5 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
25 Sites
- Yearly licence – 1 year of updates and support, keeps working afterwards
- 25 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
- Priority support
5 Sites
- Lifetime licence – updates and support for life
- 5 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
25 Sites
- Lifetime licence – updates and support for life
- 25 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
- Priority support
250 Sites
- Lifetime licence – updates and support for life
- 250 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 2 support seats – chat live with our engineers on Discord
- Priority support
Start with the plan you need today.
If you need more sites later, move up without buying the plugin twice.
to try it properly
Ask for a full refund within 60 days of purchase, for any reason.
Upgrade and pay the difference
Within 60 days, your original payment counts in full towards a larger plan, including lifetime.
Example based on our €79 yearly and €279 lifetime plans.
Upgrading later? You still get credit after 60 days, though the credit reduces over time on yearly plans.
How do yearly renewals work?
A yearly licence includes one year of updates and support. The plugin keeps working after that. Renewal for further updates and support is optional. Renew before or within one month after expiry for 30% off, within six months for 20% off, or later for 10% off. Full terms
Agency or hosting company? Get in touch for custom pricing
Why image downloads become the bottleneck
Slow importers never exposed this problem, because they trickled image requests out over hours by accident. Super Speedy Imports is built to import or update a million products in about 22 minutes, and at that speed the images stop being a cost and start being a firehose: tens of thousands of requests aimed at one supplier’s server inside a few minutes, from a single IP address. That is the point at which the import is no longer the bottleneck – the supplier is – and the point at which a CDN decides you are scraping it.
So the faster your importer gets, the more you need this. The import itself gets faster again, because it stops downloading images at all. And the image requests get slower and politer, which is the half nobody expects: small batches, rotated across supplier domains, backing off automatically from any host that starts failing.
There is one more piece of ordering that matters on a live shop. Every time a not-yet-downloaded image is rendered, that post’s view counter ticks up, and the queue drains most-viewed first. The products your customers are actually browsing get their local copies tonight; the long tail nobody has opened can take until the morning without costing you anything.
Features
Everything the background queue handles for you
- Alt text, titles, captions and descriptions defer too, and are applied to each attachment as it downloads, so a deferred import produces exactly what an inline one would have.
- Full-size originals with every registered thumbnail size, generated at download time. Nothing is left half-imported.
- A hot-link blocklist for suppliers that refuse browser requests but allow server-side downloads, so those products show a neutral placeholder instead of a doomed request on every page view.
- Image dimensions published up front, read from the supplier URL where it encodes them, so WooCommerce’s lightbox and hover magnifier work before anything has been downloaded.
- Verified on twelve themes, including Twenty Twenty-Five, Storefront, Astra, OceanWP, Kadence, Blocksy, GeneratePress, Neve and Hello Elementor.
- Extensionless and CDN-transform URLs hydrate, with the file type read from the content rather than guessed from the path.
- Ambient progress everywhere – a dashboard widget, an admin-bar count while a backlog exists, and two Site Health checks.
- WP-CLI for the whole job, including a dry run that shows the image count per supplier host before you commit.
- Pause and resume at any time, without anything breaking. Visitors keep seeing supplier images while hydration is stopped.
- No custom database tables. Once the backlog has drained, every post is an ordinary WordPress post with ordinary attachments and no dependency on this plugin.
Documentation and development
Delayed Image Import Knowledge Base
View full Knowledge Base →What's new in Delayed Image Import?
View full changelog →- Fixed the PHP notice "Translation loading for the delayed-image-import domain was triggered too early" in debug.log on WooCommerce stores.
- Maintenance release: the plugin package build now checks for the bundled MCP Adapter files the shared settings module loads, with no change to how the plugin works.
- Checking whether an image is already in the Media Library is now a single indexed lookup, using a new
dii_source_urlstable built from existing images in the background after the update. - New "Find duplicate downloads" button on the Loaded Images tab, listing source URLs stored on more than one attachment, most copies first.
- New
wp dii index-sourcescommand to build the index immediately (--rebuildto re-derive it), andwp dii duplicatesto list duplicates from the command line.
- Faster image downloads on large stores: checking whether an image is already in the Media Library no longer reads the whole post meta table.
Frequently asked questions
delayed_image_url and gallery URLs (pipe-separated) to delayed_gallery_image_urls, and Delayed Image Import handles the rest. Super Speedy Imports has this wired in automatically; other importers need that meta mapping set up.Works well with
Some combinations get a bigger discount than others. Add this set to your basket to see its price.
Invest in Speed
Yearly plans include a year of updates and support and the plugin keeps working afterwards – renew at 30% off. Upgrade to a lifetime plan within 60 days and just pay the difference. Backed by our 60-day money-back guarantee.
1 Site
- Yearly licence – 1 year of updates and support, keeps working afterwards
- 1 Site License
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
5 Sites
- Yearly licence – 1 year of updates and support, keeps working afterwards
- 5 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
25 Sites
- Yearly licence – 1 year of updates and support, keeps working afterwards
- 25 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
- Priority support
5 Sites
- Lifetime licence – updates and support for life
- 5 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
25 Sites
- Lifetime licence – updates and support for life
- 25 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 1 support seat – chat live with our engineers on Discord
- Priority support
250 Sites
- Lifetime licence – updates and support for life
- 250 Site Licenses
- Imports finish without waiting on images
- No more CDN throttling or blocks
- 2 support seats – chat live with our engineers on Discord
- Priority support
Start with the plan you need today.
If you need more sites later, move up without buying the plugin twice.
to try it properly
Ask for a full refund within 60 days of purchase, for any reason.
Upgrade and pay the difference
Within 60 days, your original payment counts in full towards a larger plan, including lifetime.
Example based on our €79 yearly and €279 lifetime plans.
Upgrading later? You still get credit after 60 days, though the credit reduces over time on yearly plans.
How do yearly renewals work?
A yearly licence includes one year of updates and support. The plugin keeps working after that. Renewal for further updates and support is optional. Renew before or within one month after expiry for 30% off, within six months for 20% off, or later for 10% off. Full terms
Agency or hosting company? Get in touch for custom pricing

Reviews
There are no reviews yet.