50,000 Full Update
WP All Import Pro applied a full 50,000-product update in 20 hours 11 minutes on a 4-vCPU server. The same update, on the same machine, took Super Speedy Imports about 60 seconds — roughly 1,100–1,200× faster. Because a recurring update is the everyday operation for a shop on a supplier feed, this is the most consequential scenario of all. Full numbers, dataset and a reproduce bundle below.
Summary
- WP All Import Pro result: 20h 11m (72,685s) to update 50,000 products, ~0.69 products/sec.
- Scenario: a full update of an existing 50,000-product catalogue — 47,500 kept, 5,000 changed, 2,500 added, 2,500 removed.
- Compared with: Super Speedy Imports — ~60s on identical hardware and data.
- Version tested: WP All Import Pro 5.0.6 + WooCommerce add-on 4.0.6 (defaults).
- Reproducible: full dataset + the exact WP All Import template linked below.
Results
| Metric | WP All Import Pro | SSI | SSI + SPRO |
|---|---|---|---|
| Total time | 20h 11m (72,685s) | 66s | 59–61s |
| Records / sec | ~0.69 | ~758 | ~820–847 |
| Time per product | ~1.45s | ~0.0013s | ~0.0012s |
| Speed vs WP All Import | 1× | ~1,100× faster | ~1,190–1,230× faster |
Where the time goes
An update is mostly database work — matching existing products, then writing the changed rows. WP All Import processes the feed row-by-row in a single process, re-resolving and re-saving each product, so a 50,000-row update accumulates to ~1.45s per product. Super Speedy Imports matches and writes in bulk SQL across parallel workers, so the same update is dominated by a one-off CSV load rather than per-row cost — which is why it finishes in about a minute.
Key findings
- This is the everyday operation for shops on a supplier feed — and the gap is at its largest here, because the per-row update cost compounds across 50,000 products.
- WP All Import produced a correct catalogue (50,000 products, 2,500 trashed); the difference is purely time.
- A 20-hour update is impractical to run frequently; this is the scenario where import speed stops being a convenience and becomes an operational constraint.
↔ Compare: the same update with Scalability Pro applied (2h 23m, ~8× faster), or from Super Speedy Imports’ side (~60s).
Methodology
Environment
- Server: Hetzner CPX32 — 4 vCPU (AMD), 8 GB RAM, 160 GB SSD, Ubuntu 24.04 LTS.
- Stack: WooCommerce 10.3, PHP 8.2, MariaDB 10.6, WordPress 7.0.
- Plugins: WP All Import Pro 5.0.6 + WooCommerce add-on 4.0.6 (defaults, single process); Super Speedy Imports 2.55.7 (8 workers) for comparison.
Test setup
- Source: a 50,000-row update feed derived from the original 50k catalogue (47,500 kept + 2,500 added + 2,500 removed + 5,000 changed).
- WP All Import: default settings, run via
wp all-import run <id>. - State: update applied over an existing loaded 50k catalogue; snapshot-reset between runs.
- Images: already present from the initial load — not re-downloaded during the update.
Rules & measurement
- Same update feed, same hardware, same scope, same expected end-state (50,000 products, 2,500 trashed) for both plugins.
- Headline figure is total wall-clock duration; records/sec and time-per-product are derived from it.
This is not intended as a universal benchmark — your data shape, hardware and hosting will differ. It is one carefully controlled, fully reproducible scenario.
Dataset
- Products: 50,000 existing, of which 5,000 changed, 2,500 added, 2,500 removed.
- Taxonomies: product_cat, product_brand, plus variation attributes pa_color and pa_size.
- Metadata: SKU, regular/sale price, weight.
- Images: already present from the initial load — not re-downloaded during the update.
Reproduce
Everything needed to repeat this run is in the bundle below, including the exact WP All Import Pro template we used.
- Download: wpai-benchmark-50000-update.zip
- Contains the update + original feeds,
wpai-template-export.json,taxonomies.json, the SSI configs (for comparison), results JSON and aHOW-TO-REPRODUCE.md.
Steps (WP All Import Pro)
- Start from a loaded 50,000-product WooCommerce catalogue.
- wp-admin → All Import → New Import (or re-run the existing import), upload the update feed; map columns or import
wpai-template-export.json. - Run for a clean timing:
time wp all-import run <id>. (Expect many hours.)
If your results differ significantly, tell us — we’d like to know.
FAQ
Why is an update so slow in WP All Import?
Each row is matched and re-saved individually through WooCommerce, and that per-product cost adds up across 50,000 rows. It’s the same row-by-row model that sets the floor on a fresh import, applied to an update.
Is the update realistic?
Yes — a daily or hourly supplier-feed update is one of the most common WooCommerce workflows, which is exactly why the time it takes matters so much.
Can I reproduce this locally?
Yes — download the bundle above. Absolute times depend on your hardware, but the relative difference should hold.