The official WordPress Importer plugin is in shambles and has frustrated users with inconsistent performance for years. The plugin has more than a million active installations and is critical for migrations, unless you are familiar with using more advanced tools. With years of unresolved support threads identifying the plugin’s many bugs, the importer is in need of some help.
In a volunteer-driven open source community, important projects like the WordPress importer can go neglected for a long time until someone gets inspired to take on the responsibility. The good news, however, is that the importer is in the process of being completely rewritten thanks to Ryan McCue, who is also a leader on the WP REST API project.
The WordPress Importer Redux project is available on GitHub with fixes for some of the previous plugin’s most troublesome issues. McCue is rewriting the importer with the goals of making it “fast, lightweight, and consistent.” He summarized the major improvements that are part of version 2 in a post on Make/WordPress core blog:
- Way less memory usage: Testing shows memory usage to import a 41MB WXR file is down from 132MB to 19MB (less than half the actual file size!). This means no more splitting files just to get them to import.
- Faster parser: By using a streaming XML parser, we process data as we go, which is much more scalable than the current approach. Content can begin being imported as soon as the file is read, rather than waiting for pre-processing.
- Resumable parsing: By storing more in the database instead of variables, we can quit and resume imports on-the-go.
- Partial imports: Rethinking the deduplication approach allows better partial imports, such as when you’re updating a production site from staging.
- Better CLI: Treating the CLI as a first-class citizen means a better experience for those doing imports on a daily basis, and better code quality and reusability.
Until recently, the new importer had no UI, so the only way to test it was to run it via WP-CLI. A new Admin UI branch of the project is now available so you can download the plugin as a zip and activate it inside WordPress. McCue tweeted a sneak peak at the progress bar for the import summary:
New WordPress Importer UI, coming soon. pic.twitter.com/wM6cZY6BSk
— Ryan McCue 🥶 (@rmccue) April 6, 2016
He is also working on a better user mapping UI for the importer. This image shows the UI in progress with the old one at the bottom for reference.
If you want to test the new importer, McCue encourages users to compare the experience to the old importer and take note of what works and what breaks. Feedback is welcome in the project’s GitHub issues queue on the designated general feedback thread.