

Give it your file: drop in a CSV and it recognises what the file holds.
Super Speedy Imports Lite imports CSV, XML and JSON files into WooCommerce products, WordPress posts and pages, in bulk. It is unlimited: import as many products and posts as you want. This edition imports simple products; variable products, product galleries, custom post types and ACF fields are in Pro.
Give it the file you want to import, uploaded from your computer or fetched from a URL that returns CSV, XML or JSON, and it works out where every column goes, including files separated by semicolons with decimal commas. Check the mapping, change anything you like, then run the import from the dashboard or with WP-CLI. Import an updated file and it updates the items already on your site and adds the new ones, or set the import to only update existing items or to remove items that are no longer in your file.
Measured with the WordPress.org build of version 3.40.0 on a 4-vCPU server, through the dashboard: 100,000 simple WooCommerce products imported in 81 seconds, 1,000 products with their images downloaded from a remote image host and resized in 105 seconds, and a price and stock update of 10,000 products in 11 seconds. Full results and how to reproduce them.
Men > T-Shirts, and WooCommerce global attributes such as pa_colorWhen the products are in, it rebuilds WooCommerce’s product lookup tables, the price, stock and SKU data your shop sorts and filters on, recounts your category, tag and attribute counts, and clears WooCommerce’s caches, so the new prices, stock and counts show straight away. It also hands the rebuild of WooCommerce’s attribute lookup table, the data that filter widgets and other plugins read, to WooCommerce, which runs it in the background. Each import’s choices are under After Import, including a rebuild of the attribute lookup table with bulk SQL straight after the import.
Run the same import each time your supplier sends a new file. Fields you have not mapped stay as they are, and a mapped column is applied as it is in the file, so an empty cell empties that field. Featured images downloaded on an earlier run are reused.
To update only the items already on your site, set What should this import do? (the ⚙ options on New Import, or Additional Options on the Config tab) to Only update existing items: it updates every mapped field of those items and creates none.
To remove the items this import loaded that are no longer in your file, set If an item is missing from your file… to Remove it, or tick Delete missing items under Additional Options. After each run they are moved to the Trash, or deleted permanently if you tick Force delete (skip trash). Items created by hand or by other imports are left as they are.
A dashboard import runs as a series of short requests to your server. The plugin sizes each batch of rows from how long the previous batch took, so every request stays short, and when one big step takes longer than a request, the dashboard waits for the server to finish it and then carries on. It needs no exec or proc_open.
A dashboard import runs while its tab is open. For unattended runs, use WP-CLI: wp ssi <import id> runs the whole import on the server with no browser.
For a file larger than your server accepts as an upload, copy it into wp-content/uploads/super-speedy-imports by FTP or SFTP, then choose it under or pick a previously uploaded file on New Import.
wp ssi <import id>, and add that command to cron to run it on a schedule (screenshot 9).Every import matches rows to items already on your site with a unique identifier column. By default this is SKU for products and post title for posts, and you can choose another: GTIN / UPC / EAN / ISBN for products, post title + category for posts, or the post ID for either. Pro matches on any field or combination of fields.
wp ssi <import id> runs any import; put it in cron to run it on a schedule/wp-abilities/v1), with no MCP setup neededEverything above is included here, unlimited. Pro, a separate download from superspeedyplugins.com, adds:
The plugin makes outbound HTTP requests only to addresses you give it, and only when you ask it to fetch a file or while an import you started is running:
These requests are made with WordPress’s own HTTP functions and carry nothing but the request for the file. Beyond the requests described in this section, the plugin contacts no other server: it sends no data about your site, your users or your imports to Super Speedy Plugins or to anyone else.
On Linux servers, an import started with WP-CLI records its own process identity from the server’s local /proc files and /etc/machine-id (stored only as a hash), so that a later run can tell whether an interrupted import has really stopped. These are files on your own server, read locally; nothing is sent anywhere.