50,000 Full Update

June 4, 2026

Super Speedy Imports applied a full 50,000-product update in ~60 seconds — around 1,100–1,200× faster than WP All Import Pro, which took 20h 11m for the same update on the same server. This is the everyday operation for a shop on a supplier feed, and it’s the single most decisive result in our testing. Full timings, dataset and a reproduce bundle below.

Summary

  • Result: ~1,100–1,200× faster than WP All Import Pro (≈60s vs 20h 11m).
  • Scenario: a full update of an existing 50,000-product catalogue — 47,500 kept, 5,000 changed, 2,500 added, 2,500 removed.
  • Image-independent: updates resolve images from the existing library (no re-download), so this result carries no image caveat.
  • SPRO: makes the update fast and stable — see the dedicated Super Speedy Imports + Scalability Pro run.
  • Reproducible: full dataset + configs linked below.

Multiple runs (wall-clock seconds, 8 parallel workers):

ConfigRun 1Run 2Products
SSI (no SPRO)66ssee note50,000
SSI (+ SPRO)61s59s50,000

Note: the second no-SPRO repeat was lost to an early test-harness timeout cap (since removed). The no-SPRO update is also bimodal — see key findings — which is exactly why we recommend SPRO for recurring imports.

Results

MetricWP All Import ProSSISSI + SPRO
Total time20h 11m (72,685s)66s59–61s
Records / sec~0.69~758~820–847
Speed-up vs WPAI~1,100×~1,190–1,230×

Per-stage breakdown (SSI, standard run)

StageDuration
load-csv19.55s
import-taxonomies0.03s
match-existing2.30s
update-posts0.59s
insert-posts1.01s
update-postmeta10.68s (SPRO cuts this to ~4.3s)
insert-postmeta2.92s
attach-existing-images3.06s
upsert-relationships2.24s
upload-remote-images2.07s
process-variable-products2.12s
attach-gallery-images5.81s
fix-attributes9.87s
process-deletes0.29s
Total stage time64.71s

Key findings

  • This is the strongest, most defensible result we have. A recurring full update is what most shops actually do every day against a supplier feed — and SSI turns a 20-hour job into a one-minute one.
  • SPRO makes the update fast and reliable. Without SPRO the update is bimodal: ~66s when MariaDB picks a good query plan for the bulk postmeta UPDATE, but it can blow out to over 30 minutes when it picks a full-scan plan. SPRO’s performance index removes that cliff — every SPRO run lands at a stable ~60s. For recurring imports, use SPRO.
  • The work is spread evenly across stages (no single dominant stage, unlike the image-heavy fresh import) — because there are no images to download, this is pure database work, and SSI does it in bulk SQL.

Compare: the same update with Scalability Pro (stable ~60s), or from WP All Import’s side — 20h 11m / 2h 23m with SPRO.

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: Super Speedy Imports 2.55.7 (8 parallel workers, default); WP All Import Pro 5.0.6 + WooCommerce add-on 4.0.6 (defaults).

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).
  • Workers: 8 (SSI default).
  • Runs: SPRO ×2 (59s, 61s); no-SPRO ×1 valid (66s).
  • State: update applied over an existing loaded 50k catalogue; snapshot-reset between runs.
  • Images: resolved from the existing media library — no downloads.

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 is 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: the update feed, the taxonomy definitions, the Super Speedy Imports config, the WP All Import template, and our raw timing results.

  • Download: ssi-benchmark-50000-update.zip
  • Contains the update + original feeds, taxonomies.json, the SSI configs, wpai-template-export.json, results JSON and a HOW-TO-REPRODUCE.md.

Steps (Super Speedy Imports)

  1. Start from a loaded 50,000-product WooCommerce catalogue with Super Speedy Imports installed.
  2. Register the taxonomies (if not already): wp ssi import-taxonomies taxonomies.json
  3. Create the update import: wp ssi create benchmark product /path/to/shirt-test-50k-update.csv ssi-import-config.json
  4. Run it: time wp ssi <id> --workers=8 (with Scalability Pro active for the stable ~60s result).

If your results differ significantly, tell us — we’d like to know.

FAQ

Is a 20-hour update realistic for WP All Import?

It’s what we measured on this hardware for a full 50,000-product update. WP All Import re-processes each row individually, and that cost compounds at scale. The run produced a correct catalogue — the difference is purely time.

Why is SPRO separate?

Scalability Pro is a distinct product. On updates it’s decisive — it removes a worst-case database query plan that can otherwise make the update unpredictable. We show it separately so you can see exactly what it changes.

Can I reproduce this locally?

Yes — download the bundle above. Absolute times depend on your hardware, but the relative speed-up should hold.

×
1/1