Risk Free, Backed By Our 90-Day Money Back Guarantee
 - 
Read More
Lifetime Licenses Are Ending Soon, Get Yours Before They're Gone
 - 
Read More
Risk Free, Backed By Our 90-Day Money Back Guarantee
Pricing

You may have seen some references on our site to annual licensing or renewals.

All plugins currently come with a lifetime license, no matter what the site says.

We’re currently running tests before we make the switch to annual pricing. Check the Discounts tab to purchase our other plugins and get a lifetime license before they’re gone.

I Understand I Have a Lifetime License
Now is your last chance to buy a lifetime license before we switch to annual pricing. Existing licenses will be unaffected.
Read More
Docs Menu

The best import export plugin for WordPress & WooCommerce.

Complete, granular control of your data with an easy to use drag & drop interface.
  • 90 Day Money Back Guarantee
  • Unlimited Installs
  • Lifetime Licence
  • Fast, World-Class Support
Get Started
90 Day Money Back Guarantee

Speed Optimizations for WP All Import

If you have a slow import or you're running into a lot of server timeouts, you can use the following steps to optimize your import.

Table of Contents

WP All Import Optimizations

Slow Import Guide

Follow all of the steps listed here: https://www.wpallimport.com/documentation/slow-imports/.

Enable Skip Posts If Their Data Has Not Changed

You can enable Skip posts if their data in this import file has not changed in the import settings of your existing imports: 

Skip posts if their data in your file hasnt changed

When enabled, posts will be skipped if their data hasn't changed since the last time you ran the import. If the data hasn't changed, imports that used to take hours will complete in minutes.

Important notes:

  • This setting is enabled by default in new imports created with WP All Import v4.6.2 (released in July 2020) and above.
  • The Keep images currently in Media Library option must be enabled in order for this option to work.

Run the Import Via WP-CLI

As long as you're not importing a huge amount of data, you can use WP-CLI to import your data much faster: https://www.wpallimport.com/documentation/wp-cli/. Please keep in mind that larger imports may not work via WP-CLI due to server timeout limits. You'll also need to make sure that your WP All Import Add-Ons are compatible with WP-CLI.

You can disable the import history log to make WP-CLI imports even faster:

wp all-import run 1 --disable-log

Settings That Decrease Speed

You may not be able to change these settings, but if you can, it will help with speed:

  • Scan through post content and import images wrapped in <img> tags
    • Disable this to increase speed (found in All Import › Edit Import › Images).
  • Search through the Media Library for existing images before importing new images and
  • Keep images currently in Media Library 
    • Enable these to increase speed in subsequent runs of the import (found in All Import › Edit Import › Images).
  • Don't check for duplicate SKUs
    • Enable this to increase speed (found in All Import › Edit Import › WooCommerce Add-On › Add-On Options).
  • Use StreamReader instead of XMLReader to parse import file
    • Disable this to increase speed (found in All Import › Import Settings › Configure Advanced Settings). Make sure to test your feed/file in a new import to confirm that it still works with this disabled.

Slow Cron Imports

  • Make sure the "processing" cron job is running every 2 minutes (or 1 minute).
  • Make sure Cron Sleep is empty at All Import › Settings.
  • Set Cron Processing Time Limit to 120 at All Import › Settings. If the server times out the processing script, lower this until you find the optimal setting (highest number without hitting your server's timeout limits).
  • If the above settings don't help, try a full conflict test.

Import Any CSV, XML, or Excel to WordPress

  • Any theme or plugin
  • Images & galleries
  • Custom fields
  • Categories & tags
  • Woo, ACF, Meta Box, JetEngine

Speeding Up "Existing Items" Imports

When using Manual Record Matching (see documentation), the fastest and most versatile option is Post ID. If you don't have the Post ID in your file, you can use a custom PHP function to find the ID: see documentation.

Actions From Other Plugins

In an attempt to stop other plugins from running actions during post save/updates, try enabling Increase speed by disabling do_action calls in wp_insert_post during import (found in All Import › Manage Imports › Settings › Configure Advanced Settings):

Increase speed by disabling do_actions

Make sure to check your imported posts and confirm that they're correct with this setting enabled. In some cases, this change can significantly improve the import speed.

We explain more about this feature here: https://www.wpallimport.com/documentation/slow-imports/#disable_do_action.

Database Clean Up

Before you clean up your database, it's extremely important to make a backup that you can roll back to. After you've made a backup, you can use one of the following plugins to clear transients and orphaned data:

External Images

Downloading external images is one of the most common reasons for slow imports, and it can be one of the toughest to troubleshoot (for example, the external host may be throttling the downloads or may just be slow).

Sometimes, it's unavoidable, and you must download images from an external host. But if it's an option, we strongly suggest moving the images to the /wp-content/uploads/wpallimport/files/ folder or the Media Library and using one of those options in the import.

Remember that you can't manually move images into the Media Library folder without registering them using a plugin like this: https://wordpress.org/plugins/media-sync/.

Disable Image Optimization Plugins

If you're using a plugin like EWWW Image Optimizer or Smush Pro, you should disable them before starting your import. These types of plugins can cause the imports to run extremely slowly.

Disable Image Sizes

Depending on your active plugins and theme, it could take a long time to generate all of the supported image sizes. You can use a plugin like this to disable everything except for the necessary size: https://wordpress.org/plugins/image-sizes/. If that helps, you can generate the necessary sizes after the import using the same plugin or this other plugin: https://wordpress.org/plugins/regenerate-thumbnails/.

Full Conflict Test

If other plugins (or your theme) are running a lot of do_action calls during the import, it could cause things to crawl. We see this affecting cron job imports a lot. Check it by running a full conflict test: https://www.wpallimport.com/documentation/plugin-theme-conflicts/. If possible, it's best to do this on a staging copy of your site: https://themeisle.com/blog/wordpress-staging-site/.

MyISAM Storage Engine

If your database tables are using MyISAM, you should switch to InnoDB: https://kinsta.com/knowledgebase/convert-myisam-to-innodb/.

Slow Queries

Here's a detailed guide on troubleshooting a slow WordPress install in general: https://carlalexander.ca/troubleshoot-wordpress-performance/.

Resource Usage

If the import is causing your server to max out its resources (CPU/Memory), the import will run extremely slowly. Sometimes, the only way to fix this is to upgrade your server, but it's possible that changing some settings in WP All Import may help.

These are the things that increase CPU/Memory usage:

To remedy some of these issues, you can:

  • Enable the Increase speed by disabling do_action calls in wp_insert_post during import option in the Import Settings. Learn more here.
  • Increase In each iteration, process X records to at least 20 records. Important note: this only applies to resource usage. If you're running into timeouts instead, it's bad to increase this setting.
  • Disable Split file up into X record chunks option. See:
actions-from-plugins
  • Remove the images/taxonomies, etc., in the main import, then set up a separate import that only imports those items: https://www.wpallimport.com/documentation/manual-record-matching/.
  • Add a sleep with the Cron Sleep setting via All Import › Settings, or add a sleep with the PHP sleep() function and our pmxi_saved_post hook (see code example below). This will slow down the import significantly but help with reduced performance during imports. It should only be necessary if your server has low resources.
add_action( 'pmxi_saved_post', function( $id ) {
	sleep(1); // sleep 1 second between each imported record.
}, 10, 1 );

Increase Speed After Optimizations

Once you've done everything listed above, you can try increasing the records per iteration via the import Settings to speed things up:

Records per Iteration Speed Optimization

The higher you can set this, the faster the import will run.

Troubleshooting Terminations / Failures

If you set the records per iteration higher and the server terminates the import, you can work with your web host to find the error in the logs on your server to see what's causing the termination and fix it: https://www.wpallimport.com/documentation/terminated-imports-exports/#check-server-error-log.

If they can't find anything in the logs, try using the error-revealer plugin to log the error yourself: https://github.com/mbissett/error-revealer. Make sure to follow the directions closely and revert the changes to your wp-config.php file when you're done.

Some common problem areas are:

  • (Server) CPU Usage
  • (Server) Memory Usage
  • (PHP) max_execution_time
  • (PHP) max_input_vars
  • (PHP/Apache) FcgidIOTimeout
  • (PHP/Apache) FcgidBusyTimeout
  • (PHP) mysql.connect_timeout
  • (PHP) default_socket_timeout
  • (MySQL) wait_timeout
  • (MySQL) interactive_timeout

Export WordPress Data to any CSV, XML, or Excel

  • Any theme or plugin
  • Images & galleries
  • Custom fields
  • Zapier integration
  • Woo, ACF, Meta Box, JetEngine

Web Host Optimization

The web host and server you choose will have a direct impact on the speed of your imports. If you're trying to import a lot of data on a bad server, it's going to be slow no matter what you do. If you follow all of the steps above and nothing increases the speed, try switching to a good web host. To find one, you can check out our Recommended Hosts.

Third-Party Solutions

WP Intense

Some WP All Import users have reported huge speed increases by using the Scalability Pro plugin from WP Intense: https://www.wpintense.com/product/scalability-pro/. You can find some articles on their website outlining how they've sped up imports in certain environments in the past.

NOTESoflyy/WP All Import is not affiliated with WP Intense in any way, and this is not an official recommendation to use them. It's simply added information for you to use at your own risk.

Advanced

Skip Updating the Posts

Sometimes the act of updating an entire product can fire off a lot of other code that slows down the import. Consider a scenario where you only want to update the stock level for your products. With this workaround, you'll update the stock field specifically, then skip the act of updating the product via WP All Import.

You must read the comments in the code and make the necessary changes for it to work with the data on your site. Keep in mind that the import summary is going to say that every single product was skipped – this is expected, and you need to download the history log to view the custom log entries and see what was updated.

function my_is_post_to_update( $continue_import, $post_id, $xml_node, $import_id ) {
	/*********
	 * Change this to your import ID.
	 * You can find the import ID on the "Manage Imports" page.
	 * *******/
	if ( $import_id == 1 ) {
	
		/*****
		* You need to change 'column_2' to the correct stock element name in your import.
		* column_2 in this case means that the import element is {column_2[1]}.
		* If your stock import element is {stock[1]}, change this to:
		* $xml_node['stock'];
		* *****/
		
		$new_stock = $xml_node['column_2'];

		/*****
		 * Programmatically update the stock value only.
		 * ***/
		$prod = wc_get_product( $post_id );
		$prod->set_stock_quantity( $new_stock );
		$prod->save();

		/********
		 * Make a log entry since it's going to look like all products are skipped.
		 * *****/
		$logger = function($m) {printf("
[%s] $m
\n", date("H:i:s"));flush();}; call_user_func($logger, "Workaround: Stock for ".$prod->get_name()." set to: ".$xml_node['column_2']); /***** * Return "false" so that other actions are not fired and the entire * product is not updated. * ***/ return false; } return $continue_import; } add_filter( 'wp_all_import_is_post_to_update', 'my_is_post_to_update', 10, 4 );

Skip Duplicate Checks

WARNINGFollow these instructions closely, or you will end up with many duplicate posts.

On the very first run of your import, if you're sure that there are no duplicate posts in your import file, you can use this method to import your posts very quickly:

1. Add the following code in the Function Editor at All Import › Settings:

add_filter( 'wp_all_import_is_check_duplicates', 'wpai_is_check_duplicates', 10, 2 );
function wpai_is_check_duplicates( $is_check_duplicates, $import_id ) {
	return false;
}

2. Create and/or run your import.

3. Very important: remove the above code from the Function Editor. If you do not remove the code, then every import will create duplicate posts every time you run them.

Related Docs

These are the options we recommend for hosting your WordPress site.

Learn more about the server requirements and recommended server settings.

Troubleshoot slow imports and their main issues.

The best import export plugin for WordPress & WooCommerce.

Complete, granular control of your data with an easy to use drag & drop interface.
  • 90 Day Money Back Guarantee
  • Unlimited Installs
  • Lifetime Licence
  • Fast, World-Class Support
Get Started
90 Day Money Back Guarantee

Unlimited Installs.
World-Class Support. Money Back Guarantee.

Packages
Standalone
Import
Pro Package
$199
.00
/yr
Save $494, 71% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$693 If Purchased Individually
Buy Now
90 Day Money Back Guarantee
Import + Export Pro Package
$299
.00
/yr
Save $1087, 78% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$1386 If Purchased Individually
Buy Now
90 Day Money Back Guarantee
WooCommerce Import Package
$169
.00
/yr
Save $29, 15% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$198 If Purchased Individually
Buy Now
90 Day Money Back Guarantee
Import Standalone
$99
.00
/yr
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Import + Export Standalone
$169
.00
/yr
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Export Standalone
$99
.00
/yr
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Packages
Standalone
Import
Pro Package
$199
.00
/yr
Save $494, 71% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$693 If Purchased Individually
Buy Now
90 Day Money Back Guarantee
Import + Export Pro Package
$299
.00
/yr
Save $1087, 78% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$1386 If Purchased Individually
Buy Now
90 Day Money Back Guarantee
WooCommerce Import Package
$169
.00
/yr
Save $29, 15% Discount
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
$198 If Purchased Individually
Buy Now
90 Day Money Back Guarantee
Lifetime License
$999
One-Time Payment
  • Import Pro + Export Pro
  • All Current Add-Ons
  • All Future Add-Ons
  • Lifetime Support
  • Lifetime Updates
  • No Renewal Fees
Buy Now
90 Day Money Back Guarantee
Import Standalone
$99
.00
/yr
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Import + Export Standalone
$169
.00
/yr
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
Export Standalone
$99
.00
/yr
  • Import Pro
Import Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
  • Export Pro
Export Add-Ons
  • Woo
  • ACF
  • Meta Box
  • JetEngine
  • Gravity Forms
  • Users
Buy Now
90 Day Money Back Guarantee
cross