Today we’re pleased to announce the official release of WP Migrate 2.4. With new capabilities for migrating must-use plugins and other files in the
wp-content directory, it’s now possible to migrate an entire site from WP Admin, including all the files that are essential to the functionality of a modern WordPress site.
But that’s just the beginning.
Version 2.4 also introduces High-Performance File Transfers—the biggest change to happen under the hood since file migrations were first introduced in WP Migrate. This new approach provides a big performance boost and faster migrations for sites with lots of media, theme, and plugin files. Let’s dive in.
🔌 Must-Use Plugins
WordPress developers know that must-use plugins have certain, shall we say… quirks that require unique handling. Unlike regular plugins, must-use plugins sometimes consist of one PHP file that requires additional files from a separate subdirectory. The unpredictable file structure of mu-plugins means that a specialized solution is necessary to provide complete control when migrating these essential files.
In WP Migrate 2.4, a new Must-Use Plugins panel now appears in Push and Pull migration profiles whenever mu-plugins are detected.
📂 Other Files (in wp-content)
Sometimes miscellaneous files in the
wp-content directory don’t fit neatly into the scope of other panels dedicated to media, themes, or plugins. For example, multilingual sites may also include a
languages directory, while third-party plugins may generate their own files that need to go along for the ride.
To ensure that no mission-critical file is left behind, a new Other Files panel now appears in Push and Pull migration profiles whenever miscellaneous files are detected in the
🏎 High-Performance File Transfers Now In Beta
WP Migrate 2.4 introduces a smarter, faster approach to file migrations. After enabling this new option, which appears at the bottom of Push and Pull migration profiles, our team was able to reduce the overall migration time of a 1GB site by over 60%!
Before High-Performance File Transfers
When the option is disabled, the maximum request size defaults to 1MB, which is the default request size that has long been a factory setting in WP Migrate. The result is a slower migration comprising many small requests, which was a common occurrence for large sites prior to version 2.4.
Without High-Performance File Transfers, a 1GB site could result in 1,164 requests over 7 minutes and 12 seconds with an average request size of 0.79MB.
After High-Performance File Transfers
When the option is enabled, the size of each request gradually ramps up until either a failure is encountered or the theoretical max of the server has been reached. The result is a faster migration comprising fewer requests with more data per request.
With High-Performance File Transfers, a 1GB site results in just 38 requests over 2 minutes and 47 seconds with an average request size of 24.32MB.
How It Works
The power of this new mode lies in its ability to dynamically determine the ideal request size that will result in the most efficient migration.
Packing too much data into a single request can exhaust server resources and result in failure. Packing too little data can lead to unnecessary delays as each individual request adds more time to the overall migration. Getting the request size just right means fitting as much data as possible into each request without running the risk of overwhelming the server.
High-Performance File Transfers remove the need to guess at the ideal request size by instead figuring it out on the fly based on the current conditions that exist between the source and destination.
Why Public Beta?
While the new file transfer mode has been extensively tested in both local and remote environments hosted by WP Engine, we want to ensure that the same success is found across other hosts and development environments. For this reason, High-Performance File Transfers is launching as an opt-in public beta feature with the goal of soon becoming the standard for file migrations in WP Migrate.
Migration Stats for Nerds
To help evaluate the new mode during the public beta period, we’ve added a helpful stats section that appears during any stage of a migration that involves moving files. A complete report of the file transfer stats is even available at the end of the migration.
Goodbye Maximum Request Slider
With the arrival of High-Performance File Transfers, we bid farewell to the Maximum Request Slider that previously resided in the plugin settings. While this setting relied on the user to manually set the ideal request size, the new high-performance mode automatically dials in the most efficient request based on server resources and other variables assessed at the time of the migration.
🤝 WP Migrate + WP Engine Compatibility
In case you missed it, WP Migrate 2.3.4 established full compatibility for pushing files such as media, themes, and plugins to sites hosted by WP Engine. This effort marked the first collaboration between our Delicious Brains and WP Engine team members, with more initiatives already underway to streamline migration workflows for our shared customers.
🗑️ Cleaning Up After Ourselves
While great progress has been made towards improving the reliability of WP Migrate, there are times when a migration does not fully complete due to cancellation or failure. Rest assured that going forward, all temporary database tables and directories will be cleaned up when a migration is terminated for any reason.
For a full list of new features, improvements, and bug fixes, see the 2.4 Changelog.
In WP Migrate 2.5, we’re teaming up with Local to establish the most streamlined remote-to-local workflow in all of WordPress. Imagine a future where WP Migrate can export an entire site directly into Local with the click of a button. That’s the vision.
Until then, we want to hear your thoughts on the new support for must-use plugins and other files. Did you get a chance to take the new High-Performance File Transfers for a spin? Let us know on Twitter or in the comments below.