Real 84EM email is only @84em.com

WooCommerce Product Data and Media at Scale

Managing product data and images at catalog scale: bulk import, media pipelines, and keeping WooCommerce product data clean.

How do you manage product data and images at scale?

Bulk import and media handling separately from WordPress’s default path. Importing thousands of products through the Media Library or a generic import plugin puts real load on the server: every image gets downloaded, resized into every registered thumbnail size, and written to disk. At catalog scale, that adds up fast enough to slow the whole site down.

Bulk product import and updates

A catalog refreshed from an external feed, whether nightly or continuous, needs to write changes in batches through a background queue, not one product at a time inside a single web request. WooCommerce ships with Action Scheduler, the same background job runner used for order processing, and it’s a natural fit for import work too: each row or small batch becomes its own job, isolated so one bad record doesn’t stop the rest of the run, with failures visible in the WooCommerce admin instead of silently dropped.

Media pipelines

Product photos are usually the heaviest part of an import. Instead of downloading, resizing, and storing every image on the WordPress server, an image service like Cloudflare Images can fetch, resize, and serve images directly from a source URL: the WordPress server hands over a URL and never touches the file itself. That keeps the origin server light regardless of how many photos a catalog has, since image processing happens somewhere else entirely.

The tradeoff is a real dependency: images live on that service, not the WordPress server, so deleting a product needs to clean up its remote image too, or storage leaks silently over time.

Keeping product data clean

An importer that writes directly against a store’s actual product and variation structure handles edge cases a generic plugin often doesn’t: variation-level attributes, custom taxonomy, and fields specific to how a particular catalog is organized. A purpose-built importer is also one less general-purpose plugin to break on the next WordPress or WooCommerce update.

Rate limits matter too, once an import is pushing a large volume of requests at any external API. Reading and respecting the limits an API actually reports, rather than guessing at a safe pace, keeps a large import from spending its run bouncing off errors.

Real example

84EM built an import pipeline for a client refreshing a large WooCommerce catalog nightly: images uploaded by URL directly to Cloudflare Images instead of the Media Library, and the import itself run through Action Scheduler so the storefront stays responsive while thousands of products update in the background.

Talk to 84EM about a custom WooCommerce import pipeline if your catalog’s size or update frequency has outgrown the Media Library.

Let's Talk

Direct access to the senior engineer who scopes, builds, and ships your project. No one in between.

Folks We've Helped