Moving a lot of data can be difficult for a variety of reasons. Whether you're working with a slow internet connection or moving a large amount of data, here are the common solutions for migrating large WordPress sites.
We recommend and support All-in-One WP Migration (AIO), as our preferred plugin for migrating to Shifter. These tips are based on the assumption that you're using AIO to migrate your site.
One of the most common causes for large backups is redundant backup files from other backup plugins. In our experience helping customer migrate to Shifter, we find large sites are often smaller than they seem. Using more than one backup plugin can result in redundant backup files included in the others backup file.
Example: Are you using any other backup plugins?
Backup files on sites using UpdraftPlus, Duplicator, and more will be captured and included in the All-in-One WP Migration backup file. If you have a 1 GB site with 10 backups totaling 10 GBs, the backup file that AIO creates will be 11 GBs.
Check for any additional backup plugins on your site. If you are using one in addition to the recommended AIO backup plugin it's possible you're including other backup files in the AIO archive.
Check your wp-content directory for large files from plugins you may no longer have. At one point if your site did use a backup plugin those files may still be stored within your wp-content or uploads directory. This check would be manual and removing any unnecessary files before exporting can reduce the file size.
VCS or Dependency Folders
Including folders created by package managers such as NPM can increase the file size of your backup. This is also common for themes and plugins using Git, SVN, or other version control systems.
Using NPM for theme or plugin development is common. The node_modules which stores all your dependences for that project would be included in a backup created by most plugins including All-in-One WP Migration.
Using Git for theme development will create a .git folder in the root directory of your project. Folders created with version control systems like Git can be excluded in backup files.
Exclude folders from the AIO export using the All-in-One WP Migration Folder Excluder. This plugin is available on the WordPress plugin directory and offers a GUI and features for excluding specific folders or patterns of files from your backup.
Exclude folders or files using a custom function. The functionally of the excluder plugin can be added manually to a WordPress site or a custom plugin. Check out the guide we've developed a guide on how to exclude files from the AIO backup.
Timeouts and Slow Internet Connections
If you have limited internet connectivity or a slow connection there are very few options for uploading a large amount of data. This is also a problem with importing large backups that take longer than the available runtime of the Shifter Static container.
Example: Container stops before import is complete.
When importing data using All-in-One WP Migration leaving the browser window or tab can result in a container timeout. This is due to user inactivity and the Shifter WordPress container will power down.
Example: Internet connection is too slow for the upload to complete in a reasonable amount of time.
Create a backup on your current site using AIO. Copy the direct public link of that backup and using the URL extension from AIO, you can import a backup from one site to another without downloading the backup file and reloading to WordPress.
Upload your backup to a storage service such as S3 or Dropbox, using a public link from that service paste the backup file address into the URL extension and import your site directly.
Tips for using the AIO URL Extension:
Getting the backup link from AIO is done by right clicking the download button from the backups page or immediately after the export file is created. Here are examples of each.
Next, install the URL extension in the new site on Shifter and paste the URL into the import form.
You can also adjust the speed of the plugin before you start your import. By default, the limit is low so you won't use too much network bandwidth but if you're transferring from server to server the speed can be adjusted to the maximum.