{"name": "WP Engine Site Migration", "tags": ["migrate", "push", "transfer", "wordpress migration plugin", "move site", "database migration", "site migration"], "requires_at_least": "5.0", "tested_up_to": "6.7", "stable_tag": "1.5.2", "contributors": ["wpengine", "ahmedgeek", "philwebs", "ianmjones", "eriktorsner", "dalewilliams", "tysonreeder", "kevinwhoffman"], "donate_link": null, "short_description": "License: GPLv2 or later\nLicense URI: https://www.gnu.org/licenses/gpl-2.0.html\nMigrate any WordPress site to WP Engine or Flywheel.", "screenshots": [], "is_excerpt": false, "is_truncated": false, "sections": {"description": "<p>Migrate any WordPress site to WP Engine or Flywheel. Copy all database tables and site files or customize the migration to include only what you need.</p>", "changelog": "<h4>WP Engine Site Migration 1.5.2 - 2025-01-22</h4>\n\n<ul>\n<li>Fixed: Cancelling a migration no longer causes a PHP error on the remote site</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.5.1 - 2025-01-20</h4>\n\n<ul>\n<li>Fixed: The str_contains function introduced in PHP 8 has been replaced with str_pos in order to reestablish compatibility back to PHP 5.6</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.5.0 - 2025-01-13</h4>\n\n<ul>\n<li>New: Files and directories in the root of the WordPress site can now be transferred in order to avoid having to manually migrate root files outside of the plugin</li>\n<li>Changed: The presence of root files is now highlighted when configuring a migration in order to ensure that all critical files are included in the initial migration</li>\n<li>Changed: Child panels are now collapsed by default in order to allow more options to be visible without scrolling</li>\n<li>Changed: Exiting an errored migration now clears the previous migration in order to reflect changes made to the database and files in subsequent attempts</li>\n<li>Fixed: Multiple background processes are now prevented in order to improve performance and avoid displaying an inaccurate status in the migration progress panel</li>\n<li>Fixed: Directories are now scanned more efficiently in order to reduce the time required to scan a large site with thousands of top-level files in the uploads directory</li>\n<li>Fixed: Errors are now caught and handled more consistently in order to avoid displaying incorrect migration state and error messages</li>\n<li>Fixed: Long URLs and paths now wrap in order to prevent overflow outside of the Standard Search &amp; Replace container</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.4.2 - 2024-12-02</h4>\n\n<ul>\n<li>Changed: The directory scanner now handles large directories more efficiently in order to reduce the time required to initialize a migration</li>\n<li>Changed: The Wordfence Web Application Firewall (WAF) status is now included in diagnostic information in order to diagnose 403 errors with more certainty</li>\n<li>Fixed: Migrations blocked by Wordfence now provide troubleshooting steps in order to avoid 403 errors</li>\n<li>Fixed: JSON-encoded data for telemetry is now validated in order to avoid fatal errors caused by non-UTF-8 characters</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.4.1 - 2024-11-18</h4>\n\n<ul>\n<li>Fixed: Resetting the secret key no longer requires a page refresh in order to see the new expiration date</li>\n<li>Fixed: Handling a non-string error message no longer causes a fatal error</li>\n<li>Fixed: Migrating from MariaDB to MySQL no longer alters field names for tables in rare cases</li>\n<li>Fixed: Migrating collations that are unsupported by the destination database no longer causes an error</li>\n<li>Fixed: Migrating files with the fallback file transfer method no longer exhausts the memory of a site with a low PHP memory limit</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.4.0 - 2024-10-30</h4>\n\n<ul>\n<li>New: Error messages now display more helpful explanations in order to inform the troubleshooting process</li>\n<li>New: Redesigned error dialogs now include the ability to copy the error report to the clipboard in order to quickly communicate diagnostic information to support</li>\n<li>New: Database transfer errors are now retried in order to overcome temporary connection issues</li>\n<li>New: The file transfer speed is now optimized throughout the migration in order to migrate the site as quickly as possible</li>\n<li>New: The file transfer mechanism is now optimized throughout the migration in order to migrate the site as efficiently as possible</li>\n<li>Fixed: REST API errors now display details of the failed request in order to clarify why the UI did not respond to a command</li>\n<li>Fixed: SiteGround's <code>wordpress-starter</code> plugin is now excluded from migrations in order to prevent modifications to WP Admin</li>\n<li>Fixed: Divi CSS is now regenerated after a successful migration in order to avoid loading outdated cached styles</li>\n<li>Fixed: The migration progress panel now resizes in order to fit the contents of the panel</li>\n<li>Fixed: Plugin dependencies have been updated in order to maintain security and stability</li>\n<li>Removed: The upfront calculation of the database and file sizes has been removed in order to improve performance of the Site Migration page in WP Admin</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.3.0 - 2024-08-14</h4>\n\n<ul>\n<li>Changed: Serialized strings are now only deserialized during search and replace if they contain a match</li>\n<li>Fixed: Migrating from MariaDB to MySQL no longer causes missing table errors when the source site is using MariaDB-specific options</li>\n<li>Fixed: Migrating parent and child themes in the same subdirectory no longer causes <code>rename()</code> and <code>copy()</code> warnings in logs</li>\n<li>Fixed: Exceptions caused by insufficient permissions now include more details about the file or directory involved</li>\n<li>Fixed: Undefined constants such as <code>DB_CHARSET</code> no longer cause errors when gathering diagnostics</li>\n<li>Fixed: Background migration healthchecks no longer fail to schedule on multisites</li>\n<li>Fixed: Permalinks are now flushed more reliably after a migration completes</li>\n<li>Fixed: Error notices are now more compatible with assistive technologies</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.2.1 - 2024-07-08</h4>\n\n<ul>\n<li>Fixed: Subsequent migration attempts after a failed migration are no longer blocked by an undefined <code>platform</code> property</li>\n<li>Fixed: Errors during finalization are now surfaced when a <code>WP_Error</code> prevents the migration profile from being updated</li>\n<li>Fixed: Database tables with <code>NULL</code> values in <code>binary</code> columns, such as those generated by the Simply Static plugin, no longer cause WordPress database errors</li>\n<li>Fixed: Uploads directory <code>/wp-content/uploads/wpcf7_captcha/</code> is now excluded by default to avoid errors when the contents change mid-migration</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.2.0 - 2024-06-10</h4>\n\n<ul>\n<li>Added: A new recursive scanner now results in faster initialization and improved performance to reduce the likelihood of \"Scan manifest\" errors</li>\n<li>Removed: The legacy recursive scanner is now removed</li>\n<li>Fixed: Excluding a symlinked file or directory in the stage's root no longer causes a \"Temporary file not found\" error during finalization</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.1.4 - 2024-05-29</h4>\n\n<ul>\n<li>Added: An optional setting to preserve the destination's search engine visibility (i.e. the <code>blog_public</code> option) is now available when customizing the Database \u2192 Advanced Options subpanel</li>\n<li>Changed: Search engine visibility (i.e. the <code>blog_public</code> option) is now migrated by default to behave more consistently with other options</li>\n<li>Changed: Searching and replacing the path now includes a trailing slash (e.g. <code>/wordpress/</code>) to reduce the impact on content URLs</li>\n<li>Fixed: Error messages related to failed table and file transfers now provide more detail</li>\n<li>Fixed: Excluded Windows file paths no longer cause \"Temporary file not found\" errors during finalization</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.1.3 - 2024-05-16</h4>\n\n<ul>\n<li>Fixed: Must-use plugin <code>/wp-content/wp-cache-memcached</code> is now excluded by default to prevent errors during finalization when migrating from another WP Engine site</li>\n<li>Fixed: Drop-in plugin <code>/wp-content/db.php</code> (commonly generated by W3 Total Cache) is now excluded by default to prevent fatal errors at the destination following a completed migration</li>\n<li>Fixed: Prefixing an exclude with <code>/</code> now ensures that only matches within that stage's root directory are excluded (e.g. in the Plugins panel, <code>/foo/</code> will only match <code>/wp-content/plugins/foo/</code>)</li>\n<li>Fixed: Total migration size is now accurately displayed when opening or refreshing the browser mid-migration</li>\n<li>Fixed: Table sizes now accurately reflect the <code>data_length</code> without including <code>index_length</code> in the calculation</li>\n<li>Fixed: Spellcheck is now disabled for exclude lists to prevent red underlines for \"misspelled\" words</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.1.2 - 2024-05-03</h4>\n\n<ul>\n<li>Fixed: Default excludes now match <code>nginx-helper</code> and <code>loader.php</code> more precisely to reduce critical errors after a migration</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.1.1 - 2024-05-02</h4>\n\n<ul>\n<li>Fixed: User roles and capabilities are no longer lost when the source site's table prefix (e.g. <code>wp_foo_</code>) begins with the destination site's table prefix (e.g. <code>wp_</code>), fixing a regression introduced in version 1.1.0</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.1.0 - 2024-04-29</h4>\n\n<ul>\n<li>Changed: All default excludes can now be modified when customizing a migration</li>\n<li>Fixed: \"Duplicate entry\" errors are now less likely to occur when the database contains multiple <code>user_roles</code> entries with different prefixes</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.3 - 2024-04-16</h4>\n\n<ul>\n<li>Fixed: Errors related to invalid characters in the database are now less likely to occur due to improved handling of tables with multiple Unicode character sets</li>\n<li>Fixed: The \"Migration canceled\" panel now only displays when a migration is fully canceled</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.2 - 2024-04-11</h4>\n\n<ul>\n<li>Fixed: \"Duplicate entry\" errors are now less likely to occur when migrating a database table with binary primary keys, such as Wordfence\u2019s <code>wffilemods</code> table</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.1 - 2024-04-11</h4>\n\n<ul>\n<li>Fixed: \"Duplicate entry\" errors are now less likely to occur when migrating a database table with non-integer primary keys</li>\n<li>Fixed: Pressing the <strong>Close</strong> button now clears all migration-related database records from the options table</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0 - 2024-04-04</h4>\n\n<ul>\n<li>Added: The WP Engine Site Migration plugin is now generally available</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-rc.4 - 2024-04-03</h4>\n\n<ul>\n<li>Changed: REST API endpoints that previously used <code>PUT</code> or <code>DELETE</code> now use <code>POST</code> for compatibility with more server configurations</li>\n<li>Changed: Debug logging is now disabled by default and can be enabled by setting the <code>wpmdb_enable_debug_log</code> filter to return <code>true</code></li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-rc.3 - 2024-03-18</h4>\n\n<ul>\n<li>Changed: Recursive scanning is once again split across all files and directories within the <code>uploads</code> directory</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-rc.2 - 2024-03-14</h4>\n\n<ul>\n<li>Changed: Connection information for WP Engine sites now uses the WordPress site URL instead of the wpengine.com domain</li>\n<li>Fixed: Connection information in the WP Engine User Portal is now able to be retrieved faster and more reliably</li>\n<li>Fixed: A change in background processing logic has been reverted to reduce the likelihood of stuck migrations</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-rc.1 - 2024-03-07</h4>\n\n<ul>\n<li>Changed: All default excludes are now defined via PHP and passed to the UI</li>\n<li>Changed: The slower fallback file transfer method now only activates after two consecutive timeouts rather than two total timeouts</li>\n<li>Fixed: Scanning media files is now faster and more accurate when there are many files in the root of the uploads directory</li>\n<li>Fixed: ProPhoto theme compatibility has been improved by excluding cached CSS files that will be regenerated at the destination</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.27 - 2024-03-01</h4>\n\n<ul>\n<li>Fixed: \"Duplicate entry\" database errors are now less likely to occur as a result of long-running background processes</li>\n<li>Fixed: WP Engine User Portal links in email notifications now include the environment name to provide better context for support</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.26 - 2024-02-28</h4>\n\n<ul>\n<li>Added: Flywheel documentation and support links are now available in the sidebar</li>\n<li>Changed: The Destination panel now clarifies where to find connection information</li>\n<li>Fixed: Background process locking now prevents multiple background processes from running simultaneously</li>\n<li>Fixed: Healthcheck cron jobs no longer run immediately after a background process is dispatched</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.25 - 2024-02-22</h4>\n\n<ul>\n<li>Added: WP Engine caches are now automatically cleared after a completed migration to ensure changes are immediately visible</li>\n<li>Fixed: Failed loopback requests are now surfaced in an error panel before the migration begins rather than allowing the migration to start and immediately fail</li>\n<li>Fixed: Scan manifest file handling has been improved to reduce errors during initialization</li>\n<li>Fixed: Cached directory permissions on certain NFS filesystems no longer cause \"Unable to overwrite destination file\" errors during finalization</li>\n<li>Fixed: Symlinked theme and plugin directories are now transferred using the symlinked name to avoid \"Temporary file not found\" errors during finalization</li>\n<li>Fixed: .DS_Store excludes now include wildcard variations to avoid \"Temporary file not found\" errors during finalization</li>\n<li>Fixed: Directories that only contain a single .htaccess file no longer cause \"Temporary file not found\" errors during finalization</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.24 - 2024-02-08</h4>\n\n<ul>\n<li>Security: Plugin configuration data now uses JSON encoding instead of serialization to prevent PHP Object Injection</li>\n<li>Security: Unserializing an object during find and replace operations now passes <code>'allowed_classes' =&gt; false</code> to avoid instantiating the complete object and potentially running malicious code stored in the database</li>\n<li>Security: The wp-queue library now ensures that only its own classes can be unserialized via <code>allowed_classes</code></li>\n<li>Security: The wp-background-processing library has been updated to version 1.3.0 for more secure handling of serialized data</li>\n<li>Fix: Sites with \"bundle\" or \"runtime\" in the domain name can now load plugin pages in WP Admin</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.23 - 2024-01-24</h4>\n\n<ul>\n<li>Changed: Scan manifest errors now provide unique error codes and debug logs to assist with troubleshooting</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.22 - 2024-01-17</h4>\n\n<ul>\n<li>Fix: Chunked file data is now reverified after a timeout occurs so the migration can pick up where it left off</li>\n<li>Fix: The WP Migrate plugin is no longer excluded from migrations, however it will remain deactivated to avoid conflicts with WP Engine Site Migration</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.21 - 2024-01-10</h4>\n\n<ul>\n<li>Added: An alternative migration method is now suggested when an error occurs</li>\n<li>Fixed: Recursive scanning performance is now improved due to ignoring excluded directories</li>\n<li>Fixed: Connecting to a multisite no longer causes an error when the primary domain is <code>wpenginepowered.com</code></li>\n<li>Fixed: Errors while saving the remote manifest are now surfaced</li>\n<li>Fixed: Focus rings on the plugin settings page are now fully visible</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.20 - 2023-12-22</h4>\n\n<ul>\n<li>Fixed: Excluded media files defined in the UI are once again excluded from the migration</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.19 - 2023-12-20</h4>\n\n<ul>\n<li>Fixed: Excluded directories defined in the UI are now correctly excluded from the migration</li>\n<li>Fixed: Plugins that contain multiple files with header comments no longer cause migrations to fail</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.18 - 2023-12-14</h4>\n\n<ul>\n<li>Changed: Failed migration logs once again provide insight when troubleshooting a migration</li>\n<li>Fixed: Stuck migrations are now terminated after 4 minutes without progress</li>\n<li>Fixed: Third-party admin notices no longer appear on plugin pages</li>\n<li>Fixed: \"Unsupported operand types\" no longer cause errors when scanning a directory during initialization</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.17 - 2023-12-11</h4>\n\n<ul>\n<li>Removed: Changes from Beta 16 have been reverted to result in more stable migrations</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.16 - 2023-12-07</h4>\n\n<ul>\n<li>Changed: Failed migration logs now provide more insight when troubleshooting a migration</li>\n<li>Fixed: \"Unsupported operand types\" no longer cause errors when scanning a directory during initialization</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.15 - 2023-11-29</h4>\n\n<ul>\n<li>Added: PHP memory limit is now available in the diagnostic log to aid in troubleshooting memory issues</li>\n<li>Changed: The option to \"Load Select Plugins for Migration Requests\" has been removed as it was often used to unnecessarily load plugins during a migration, thereby increasing the likelihood of errors</li>\n<li>Fixed: PHP warnings related to 'open_basedir' restrictions no longer occur</li>\n<li>Fixed: The number of background polling requests that fetch data from the server has been reduced</li>\n<li>Fixed: Error handling of manifest files is now more robust</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.14 - 2023-11-16</h4>\n\n<ul>\n<li>Added: An alternative file transfer method is now attempted when encountering <code>cURL error 28</code></li>\n<li>Fixed: Elementor CSS and references to these files in the database are now properly regenerated after a migration</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.13 - 2023-11-14</h4>\n\n<ul>\n<li>Fixed: Compatibility with Widgets for Google Reviews and other plugins which mix <code>utf8</code> and <code>utf8mb4</code> character sets has been improved</li>\n<li>Fixed: Temporary files (i.e. <code>tmpchunk</code> files) from previous migrations no longer cause errors in subsequent attempts</li>\n<li>Fixed: Failure to create temporary tables used in background processing now displays an error and immediately stops the migration</li>\n<li>Fixed: Telemetry now includes a more accurate representation of each migration based on current task data</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.12 - 2023-11-08</h4>\n\n<ul>\n<li>Changed: The User-Agent request header is now set to <code>wpe-site-migration/&lt;version&gt;</code> for all migration requests</li>\n<li>Changed: Migration status updates are now sent to WP Engine at regular intervals throughout the migration for better support and troubleshooting</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.11 - 2023-10-31</h4>\n\n<ul>\n<li>Added: cURL version is now available in the site diagnostics to provide more complete information for suppport</li>\n<li>Changed: All <code>.htaccess</code> files are now excluded as they are not supported on WP Engine or Flywheel</li>\n<li>Changed: Temporary directories on the source site are now located in the <code>uploads</code> directory where the plugin is more likely to have write permissions</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.10 - 2023-10-25</h4>\n\n<ul>\n<li>Changed: Connection information in the plugin Settings tab now uses the <code>wpengine.com</code> URL for WP Engine sites</li>\n<li>Fixed: Errors caused by file size differences are now less likely to occur as the size is reverified just before transferring</li>\n<li>Fixed: Errors that occur while initializing the migration are now more likely to be caught</li>\n<li>Fixed: Compatibility with WP Go Maps has been further improved through better handling of empty <code>POINT</code> fields</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.9 - 2023-10-18</h4>\n\n<ul>\n<li>Fixed: Compatibility with WP Go Maps has been improved through support for the MySQL <code>POINT</code> data type</li>\n<li>Fixed: Themes in nested directories no longer cause errors when finalizing the migration</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.8 - 2023-10-16</h4>\n\n<ul>\n<li>Changed: UpdraftPlus directory <code>/wp-content/updraft</code> is now excluded to avoid migrating backups that significantly increase size and duration</li>\n<li>Fixed: Only tables with the site's prefix are selected by default when customizing the selected tables</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.7 - 2023-10-12</h4>\n\n<ul>\n<li>Changed: Wordfence directory <code>/wp-content/wflogs</code> is now excluded to avoid errors caused by files changing in the middle of a migration</li>\n<li>Changed: Elementor directory <code>/wp-content/uploads/elementor/css</code> is now excluded so that CSS with the correct URLs is generated at the destination</li>\n<li>Fixed: Temporary tables generated by a migration no longer cause missing table errors</li>\n<li>Fixed: The calculated migration size no longer disappears after returning to a paused migration</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.6 - 2023-10-04</h4>\n\n<ul>\n<li>Added: External links that open in a new tab now have visual indicators</li>\n<li>Changed: Disabling the WP REST API now surfaces a warning</li>\n<li>Changed: Minimum WordPress and PHP requirements now deactivate the plugin if they are not met</li>\n<li>Fixed: Temporary directories starting with <code>wpmdb-tmp</code> are now automatically excluded from file transfers</li>\n<li>Fixed: Toggle buttons no longer disappear when panels are open</li>\n<li>Fixed: The WP Admin footer no longer moves up the page when customizing a migration</li>\n<li>Fixed: Error messages no longer render HTML, which could cause the surrounding page layout to break</li>\n<li>Fixed: Error messages related to the folder name of a theme now clarify which theme caused the error</li>\n</ul>\n\n<h4>WP Engine Site Migration 1.0.0-beta.5 - 2023-09-28</h4>\n\n<ul>\n<li>Added: WP Engine Site Migration is now available for download and testing from the User Portal.</li>\n</ul>"}, "remaining_content": "", "upgrade_notice": null, "download_link": "https://s3.amazonaws.com/update.atomicblocks.com/wpe-site-migration/wpe-site-migration-1.5.2.zip?AWSAccessKeyId=AKIA3GV7FXEAJZVJ3NHH&Signature=Ns0M6PHR4V8d3I8CUfs4BAizrMk%3D&Expires=1743833118", "package": "https://s3.amazonaws.com/update.atomicblocks.com/wpe-site-migration/wpe-site-migration-1.5.2.zip?AWSAccessKeyId=AKIA3GV7FXEAJZVJ3NHH&Signature=Ns0M6PHR4V8d3I8CUfs4BAizrMk%3D&Expires=1743833118", "version": "1.5.2", "new_version": "1.5.2", "slug": "wpe-site-migration"}