Title: Super Speedy Imports Lite
Author: Dave Hilditch
Published: <strong>October 5, 2026</strong>
Last modified: October 6, 2026

---

Search plugins

![](https://ps.w.org/super-speedy-imports-lite/assets/banner-772x250.png?rev=3730670)

![](https://ps.w.org/super-speedy-imports-lite/assets/icon.svg?rev=3728880)

# Super Speedy Imports Lite

 By [Dave Hilditch](https://profiles.wordpress.org/dhilditch/)

[Download](https://downloads.wordpress.org/plugin/super-speedy-imports-lite.2.99.21.zip)

 * [Details](https://wordpress.org/plugins/super-speedy-imports-lite/#description)
 * [Reviews](https://wordpress.org/plugins/super-speedy-imports-lite/#reviews)
 *  [Installation](https://wordpress.org/plugins/super-speedy-imports-lite/#installation)
 * [Development](https://wordpress.org/plugins/super-speedy-imports-lite/#developers)

 [Support](https://wordpress.org/support/plugin/super-speedy-imports-lite/)

## Description

Super Speedy Imports Lite imports CSV and XML 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, 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 this exact WordPress.org build on a 4-vCPU server, through the dashboard:
100,000 simple WooCommerce products imported in 90 seconds, 1,000 products with 
their images downloaded from a remote image host and resized in 74 seconds, and 
a price and stock update of 10,000 products in 10 seconds. [Full results and how to reproduce them](https://www.superspeedyplugins.com/benchmarks/super-speedy-imports/results/lite-2-99-21-import-speed/).

#### What it imports

 * WordPress posts and pages, and simple WooCommerce products
 * Post fields: title, content, excerpt, status, dates, slug and more
 * WooCommerce fields: SKU, GTIN, regular and sale prices and sale dates, stock,
   weight and dimensions, tax, shipping class and more
 * Categories, tags and brands, including hierarchies such as `Men > T-Shirts`, 
   and WooCommerce global attributes such as `pa_color`
 * Custom fields (postmeta)
 * Featured images from any public URL, each URL downloaded once however many rows
   use it
 * XML files, converted to an import under **Migration Tools**
 * Imports saved in WP All Import on the same site, converted into Super Speedy 
   imports under **Migration Tools**

#### Your shop is ready when the import finishes

When the products are in, it rebuilds WooCommerce’s product lookup tables, the price,
stock and SKU data your shop sorts and filters on, and clears WooCommerce’s caches,
so the new prices and stock show straight away. Under **After Import**, each import
can also recount your category, tag and attribute counts and rebuild WooCommerce’s
attribute lookup table, the data that filter widgets and other plugins read.

#### Keeping a catalogue in sync

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 deleted permanently,
or moved to the Trash if you untick **Force delete (skip trash)**. Items created
by hand or by other imports are left as they are.

#### Large files and how imports run

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**.

#### Running your own import

 1. **Give it your file.** Click **New Import** and drop in a CSV, or paste a URL that
    returns a CSV file and press **Fetch**. It reads the file and recognises what it
    holds (screenshots 1 and 2). XML files go through **Migration Tools**, which converts
    them and finds the repeating record for you (screenshot 3).
 2. **Check the mapping.** The import is already configured: every column it recognises
    is mapped to its field, and the panel on the right shows the real values from your
    file, row by row (screenshot 4).
 3. **Make any corrections you want.** Map a column somewhere else, add a column, combine
    columns in a transform, or set the hierarchy and multiple-value separators for 
    a taxonomy (screenshot 5).
 4. **Run it.** **Preview & Run** shows the file, the row count and what happens to
    items already on your site, then **Start Import** runs it with every stage and 
    its timing on screen (screenshots 6 to 8).
 5. **Or run it from WP-CLI** with `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, or post title + category for
posts. Pro matches on any field or combination of fields.

#### Three ways to run it

 * **The dashboard** – **Preview & Run**, then **Start Import**, with every stage
   and its timing on screen
 * **WP-CLI** – `wp ssi <import id>` runs any import; put it in cron to run it on
   a schedule
 * **AI agents** – an AI coding agent runs imports with WP-CLI, and 32 WordPress
   Abilities API tools let it upload files, create and change imports, preview the
   first item and read the results over the REST API (`/wp-abilities/v1`), with 
   no MCP setup needed

#### Try it in one click

 1. Install and activate the plugin.
 2. Open **Super Speedy > Imports** and go to the **Demo Data** tab.
 3. Click **Load this sample** on one of the samples: 1,000 posts with featured images,
    20,000 posts, or 1,000 simple WooCommerce products with categories, brands, colours
    and images.
 4. On the **Imports** tab, press **Preview & Run**, then **Start Import**, and watch
    it import.

#### Super Speedy Imports Pro

Everything above is included here, unlimited. Pro, a separate download from superspeedyplugins.
com, adds:

 * **Variable products** – parents and their variations, with per-variation prices,
   stock and attributes
 * **Product galleries** – several images per product, with alt text and captions
 * **ACF and SCF fields** – scalar, choice, group and repeater fields
 * **Custom PHP transforms** – split, format, look up or calculate a value before
   it is written
 * **Custom post types** – any registered post type
 * **Term descriptions and term metadata** – for the categories, tags and attributes
   an import creates
 * **Image size selection** – generate only the image sizes you choose
 * **Parallel workers from WP-CLI** – and per-stage performance tuning
 * **Built-in scheduled imports**
 * **Match on any field** – or any combination of fields
 * **CSV export** – export your catalogue and use the file as the start of the next
   import
 * **Direct help from the developer** in the Super Speedy Plugins Discord

[Comparison and pricing](https://www.superspeedyplugins.com/product/super-speedy-imports/)

### External services

#### Your own data sources

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:

 * The address of a CSV file you enter under **Import from URL**, when you press**
   Fetch**, or the address of a CSV or XML file you give the plugin’s Abilities 
   API tools. The file is downloaded once, when you fetch it.
 * The source of an import converted from WP All Import that loads its file from
   a URL or FTP server. It is fetched at the start of each run of that import.
 * The image URLs inside your file, to download featured images (and, in the paid
   edition, gallery images). Each distinct URL is downloaded once and reused on 
   later runs.

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.

#### Local process checks (not a service)

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.

## Screenshots

[⌊Give it your file: drop in a CSV and it recognises what the file holds.⌉⌊Give 
it your file: drop in a CSV and it recognises what the file holds.⌉[

Give it your file: drop in a CSV and it recognises what the file holds.

[⌊Or paste the URL of a CSV file, here WooCommerce's own sample products file on
GitHub.⌉⌊Or paste the URL of a CSV file, here WooCommerce's own sample products 
file on GitHub.⌉[

Or paste the URL of a CSV file, here WooCommerce’s own sample products file on GitHub.

[⌊XML files go through Migration Tools, which converts them and finds the repeating
record.⌉⌊XML files go through Migration Tools, which converts them and finds the
repeating record.⌉[

XML files go through Migration Tools, which converts them and finds the repeating
record.

[⌊The import it configured from WooCommerce's sample file. The panel on the right
shows the real values from your file, row by row.⌉⌊The import it configured from
WooCommerce's sample file. The panel on the right shows the real values from your
file, row by row.⌉[

The import it configured from WooCommerce’s sample file. The panel on the right 
shows the real values from your file, row by row.

[⌊Make any corrections you want: combine columns in a transform, or set the hierarchy
and multiple-value separators.⌉⌊Make any corrections you want: combine columns in
a transform, or set the hierarchy and multiple-value separators.⌉[

Make any corrections you want: combine columns in a transform, or set the hierarchy
and multiple-value separators.

[⌊Preview & Run shows the file, the row count, the matching field and what happens
to items already on your site.⌉⌊Preview & Run shows the file, the row count, the
matching field and what happens to items already on your site.⌉[

Preview & Run shows the file, the row count, the matching field and what happens
to items already on your site.

[⌊An import running, with every stage and its timing on screen.⌉⌊An import running,
with every stage and its timing on screen.⌉[

An import running, with every stage and its timing on screen.

[⌊The finished import, with any follow-up jobs and the WP-CLI command for each.⌉⌊
The finished import, with any follow-up jobs and the WP-CLI command for each.⌉[

The finished import, with any follow-up jobs and the WP-CLI command for each.

[⌊The same import from WP-CLI with wp ssi <import id>, ready to add to cron.⌉⌊The
same import from WP-CLI with wp ssi <import id>, ready to add to cron.⌉[

The same import from WP-CLI with `wp ssi <import id>`, ready to add to cron.

[⌊The imported products in WooCommerce, with prices, stock, categories, brands and
featured images.⌉⌊The imported products in WooCommerce, with prices, stock, categories,
brands and featured images.⌉[

The imported products in WooCommerce, with prices, stock, categories, brands and
featured images.

[⌊No CSV to hand? Load a sample from the Demo Data tab and run it.⌉⌊No CSV to hand?
Load a sample from the Demo Data tab and run it.⌉[

No CSV to hand? Load a sample from the Demo Data tab and run it.

## Installation

 1. In wp-admin, go to Plugins > Add New, search for “Super Speedy Imports”, then click
    Install and Activate.
 2. Open **Super Speedy > Imports** and click **New Import**, or load a sample from
    the **Demo Data** tab.

WooCommerce is needed for product imports only. Requirements: WordPress 6.9 or newer
and PHP 8.0 or newer.

## FAQ

### How do I import products with images from URLs?

Put the image URL in a column of your file and map it to the featured image; automatic
configuration does this for the image columns it recognises. The image is downloaded
into your Media Library, and it can be on any public website, not only your own.
Each URL is downloaded once, however many rows use it, and reused on later runs.
Several images per product (galleries) are in Pro.

### What happens when I run the same file again, or an updated one?

Each row is matched to the item already on your site by the import’s unique identifier
column, and that item is updated; rows with no match are added as new items. The
identifier is SKU by default for products, or GTIN / UPC / EAN / ISBN, and post 
title by default for posts, or post title + category. Items created by other plugins
or by hand are matched too, and images already downloaded are reused.

### How do I remove products that are no longer in my supplier’s file?

Set **If an item is missing from your file…** to **Remove it** when you create the
import (in the ⚙ options on **New Import**), or tick **Delete missing items** under**
Additional Options**. After each run, the items this import created or updated that
are not in the new file are deleted permanently; untick **Force delete (skip trash)**
to move them to the Trash instead. Items created by hand or by other imports are
left as they are.

### How do I import a large catalogue, such as 100,000 products? Should I split the file?

Import it as one file: imports are unlimited. Measured with this exact WordPress.
org build on a 4-vCPU server, through the dashboard, 100,000 simple WooCommerce 
products imported in 90 seconds. With **Remove it** set, each run removes the items
that are not in that run’s file, so keep the whole catalogue in one file. If the
file is larger than your server accepts as an upload, copy it into `wp-content/uploads/
super-speedy-imports` by FTP or SFTP and choose it under **or pick a previously 
uploaded file**.

### Can an import run without a browser?

Yes, with WP-CLI: `wp ssi <import id>` runs the import on the server with no browser,
and you can add it to cron. A dashboard import runs while its tab is open, so leave
the tab open until it shows **Import complete**.

### How do I import a CSV that uses semicolons, or commas for decimals?

Choose the file as usual. The plugin detects the semicolon separator and the decimal
comma when you choose the file, and both settings are in the ⚙ options on **New 
Import** if you want to check them. Prices such as `12,50`, `1.234,50` and `€ 9,95`
are read as 12.5, 1234.5 and 9.95.

### What format do prices and dates need?

Prices can carry currency symbols or codes and thousands separators: `£12.99`, `
$5`, `EUR 19.90` and `1,234.50` are all read as plain numbers. Write post dates 
as `YYYY-MM-DD`, optionally with a time (`YYYY-MM-DD HH:MM:SS`); ISO 8601 dates 
such as `2026-01-20T10:00:00Z` work too.

### How do I import an Excel spreadsheet?

Save it as CSV first (in Excel, **File > Save As** and choose a CSV format), then
import the CSV file. If Excel saves it with semicolons and decimal commas, import
it as it is.

### How do I import a Google Sheet?

In Google Sheets, choose **File > Share > Publish to web**, pick the sheet and **
Comma-separated values (.csv)**, and paste that link under **Import from URL** on**
New Import**. The sheet is downloaded when you press **Fetch**; press **Fetch** 
again to pick up later edits, then run the import.

### How do I import a CSV from a URL or an API?

Paste the address under **Import from URL** on **New Import** and press **Fetch**,
and the file is downloaded to your site. The URL must return CSV, so an API endpoint
that exports CSV works; for XML, download the file and convert it under **Migration
Tools**. To import a newer version, press **Fetch** again on the same URL under **
New Import**: it replaces the saved copy, and the import uses it on its next run.
Imports converted from WP All Import keep their URL source and fetch it again at
the start of every run.

### How do I run an import automatically, on a schedule?

wp ssi runs any import from WP-CLI. Add that command to cron to run it on a schedule,
and turn on email reports to hear how each run went.

### How do I get an email when an import finishes?

On the **Schedule** tab, under **Email reports**, add the recipients and tick the
outcomes that send a report: **Succeeded**, **Succeeded with issues**, **Failed**
and **Stopped**. You can also send a daily summary. Imports run from WP-CLI send
reports too, so a cron job that runs your import can tell you how it went. Reports
go out through your site’s own WordPress email.

### Does this edition import variable products?

Variable products and their variations are in Pro. This edition imports simple products.

### Does this edition import custom post types or ACF fields?

Custom post types and ACF and SCF fields are in Pro. This edition imports posts,
pages and simple WooCommerce products, with their custom fields (postmeta).

### Can it import WooCommerce categories, tags, brands and attributes?

Yes: hierarchical categories such as `Men > T-Shirts` (`>` by default, and you can
set any hierarchy separator on the mapping), tags and brands, and global attributes
such as `pa_color`, which the import creates for you along with their terms. If 
your category names contain commas, set that taxonomy’s multiple-value separator
on the mapping to a character they do not use, such as `|`.

### How does automatic configuration work?

When you create an import, the plugin reads your column names and sample values 
and recognises what the file holds, for example “Looks like WooCommerce products”.
It then maps each column it recognises to the matching field: prices, stock, categories,
image URLs, dimensions and so on. WooCommerce’s own sample product CSV comes in 
with its titles, descriptions, prices, stock, categories, tags, dimensions and images
already mapped. You can change any mapping before you run.

### Are there example CSV files, or can I try it without one?

Load one of the samples from the **Demo Data** tab, then press **Preview & Run**
and **Start Import**. The sample brings its own CSV and demo categories, brands 
and colours.

### How do I bring my WP All Import imports across?

**Migration Tools** reads the WP All Import imports saved on the same site and turns
each one into a Super Speedy import. Check its mapping on the **Config** tab, then
run it from the **Imports** tab like any other import.

### Can I copy an import to another site?

Yes. Export the import’s configuration as JSON from the **Config** tab and import
it on the other site.

### Where can I get help?

Post in [this plugin’s support forum on WordPress.org](https://wordpress.org/support/plugin/super-speedy-imports-lite/).
Pro customers get direct help from the developer in the Super Speedy Plugins Discord.

### What are the requirements?

WordPress 6.9 or newer and PHP 8.0 or newer, on MySQL or MariaDB. WooCommerce is
needed for product imports only.

### Which database storage engine does it use?

It uses InnoDB, the MySQL and MariaDB default since 2010. On a server without InnoDB
it creates its working tables as MyISAM and imports with a single worker, and the
Preview screen explains what that means before you start.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Super Speedy Imports Lite” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Dave Hilditch ](https://profiles.wordpress.org/dhilditch/)

[Translate “Super Speedy Imports Lite” into your language.](https://translate.wordpress.org/projects/wp-plugins/super-speedy-imports-lite)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/super-speedy-imports-lite/),
check out the [SVN repository](https://plugins.svn.wordpress.org/super-speedy-imports-lite/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/super-speedy-imports-lite/)
by [RSS](https://plugins.trac.wordpress.org/log/super-speedy-imports-lite/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.99.21 (29th September 2026)

 * Every database query passes table and column names and values as bound parameters,
   with no values or SQL fragments written into the statement.
 * The Abilities API (MCP) tools are named `super-speedy-imports/...` instead of`
   ssi/...`; refresh the tool list in any AI client that uses them.
 * The REST routes moved from `ssi/v1` to `superspeedyimports/v1`, and script and
   style handles use the `superspeedyimports-` prefix.
 * The taxonomy export and load/save configuration scripts load only on the Imports
   screen.
 * Uploaded files, CSV file lists, import types, e-mail recipients and custom PHP
   functions are read field by field through sanitisers, and an address the e-mail
   sanitiser would change is refused.
 * The WordPress.org edition asks you to switch on WooCommerce’s “Enable table usage”
   after a full attribute lookup build instead of switching it on itself.
 * The readme documents the local /proc checks used to tell whether an interrupted
   WP-CLI import has stopped.

#### 2.99.20 (26th September 2026)

 * Custom PHP function mappings in a saved or imported configuration are checked
   before they are stored: they must be valid PHP in editions that run them, and
   editions that cannot run them refuse them with a message.
 * Configuration JSON sent by the admin screens is returned only after it has been
   sanitised or validated.
 * Database queries that named the plugin’s own tables, their storage engine and
   character set, or lists of IDs now pass every one of them as bound parameters.

#### 2.99.19 (22nd September 2026)

 * Imports now run on a database server without InnoDB (for example WordPress Playground):
   the working tables are created as MyISAM, the run uses a single worker, and the
   Preview screen explains what a crash or a failed force delete can cost.
 * Shortened the hierarchy, term-lookup and ACF index prefixes so every index the
   plugin creates fits MyISAM’s 1,000-byte key limit; results are unchanged.
 * Activation records a database that refuses the plugin’s tables and explains it
   with a “Check again” link, instead of switching imports off whenever InnoDB is
   missing.

#### 2.99.18 (22nd September 2026)

 * Activation no longer stops with an error on a database without InnoDB (including
   WordPress Playground’s SQLite): the plugin activates, shows an admin notice explaining
   that imports need MySQL or MariaDB with InnoDB, and offers a “Check again” link.
 * Saving an import now refuses malformed `config`, `additional_options` and email`
   settings` requests with a clear message instead of saving nothing, and validates
   custom PHP functions as parseable PHP source before storing them.
 * Documented every outbound request the plugin can make under “External services”
   in this readme, including the editions’ update and licence checks.
 * Local reads of process and upload-folder files now go through WordPress’s filesystem
   class.
 * Removed an unused `$newline` global from the `fix-attributes` stage.

#### 2.99.17 (22nd September 2026)

 * Sanitised the Auto match fields checkbox value read when creating an import.

#### 2.99.16 (22nd September 2026)

 * Updated WordPress.org code-review annotations for the Only create new row predicate
   in the attribute stage.

#### 2.99.15 (22nd September 2026)

 * Fixed SKU + Title (and other combined) matching timing out on large catalogues:
   matching a 1,000-row file against 100,000 products now takes under half a second
   of database time instead of over fifteen seconds.

#### 2.99.14 (22nd September 2026)

 * Fixed Only create new imports replacing the categories, tags and other taxonomy
   terms of products that already exist, and rebuilding their attributes; matched
   items are now left alone unless they are a variable product receiving new variations
   in the same file.

#### 2.99.13 (21st September 2026)

 * Fixed imports removing a product’s featured, hidden or out-of-stock visibility
   when the file does not map Featured, Catalog Visibility or stock; each of those
   now changes only when its own source is mapped.
 * Fixed a mapped stock quantity overwriting a product’s low stock threshold with
   the store setting when the threshold is not mapped.

#### 2.99.12 (21st September 2026)

 * Fixed Preview First Item leaving an unowned draft and a hidden temporary import
   when the preview request was killed before it finished; Discard, the next preview,
   the next run and the daily sweep now remove them.

Earlier releases: [the full Super Speedy Imports changelog](https://www.superspeedyplugins.com/support/changelogs/super-speedy-imports/).

## Meta

 *  Version **2.99.21**
 *  Last updated **4 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.9 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [CSV Import](https://wordpress.org/plugins/tags/csv-import/)[import](https://wordpress.org/plugins/tags/import/)
   [product import](https://wordpress.org/plugins/tags/product-import/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
   [XML Import](https://wordpress.org/plugins/tags/xml-import/)
 *  [Advanced View](https://wordpress.org/plugins/super-speedy-imports-lite/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/super-speedy-imports-lite/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/super-speedy-imports-lite/reviews/)

## Contributors

 *   [ Dave Hilditch ](https://profiles.wordpress.org/dhilditch/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/super-speedy-imports-lite/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://www.superspeedyplugins.com/)