50,000 Full Update

June 4, 2026

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

MetricWP All Import ProSSISSI + SPRO
Total time20h 11m (72,685s)66s59–61s
Records / sec~0.69~758~820–847
Time per product~1.45s~0.0013s~0.0012s
Speed vs WP All Import~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 a HOW-TO-REPRODUCE.md.

Steps (WP All Import Pro)

  1. Start from a loaded 50,000-product WooCommerce catalogue.
  2. wp-admin → All Import → New Import (or re-run the existing import), upload the update feed; map columns or import wpai-template-export.json.
  3. 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.

×
1/1