Backup and Restore

WP Engine has both automated and manual backups to help protect your data, removing the need for any bulky third-party application. Backups exist for all environments on WP Engine by default (Production, Staging, and Development). These backups are stored offsite on Amazon S3 and are encrypted in transit and at rest.

In this article we’ll discuss how to locate, restore, and download a backup checkpoint, as well as how to restore a backup to another environment entirely.


Locate Backup and Restore

All backup functionality takes place from the same page in your User Portal, called “Backup Points”. To access the Backup Points page:

  1. Log in to the User Portal
  2. Select the environment name
  3. Click Backup Points

This page shows the 40 most recent checkpoints.

We store up to 60 days worth of checkpoints. If you need a checkpoint that is not displayed, contact Support.


Make a Backup Checkpoint

Backups are automatically taken nightly, but if you’re planning to make changes to your site you will typically want to make a fresh backup checkpoint before proceeding.

  1. Open Backup Points in the User Portal
  2. Click Backup Now
  1. A second window will pop up with required fields:
    • Backup description — For example “Before updating plugins”
    • Send notification to — List emails, separated by commas, to receive a notification when the backup completes
  2. Click Create environment-type Backup

NOTE

It’s possible for the email notification to be filtered into Junk or Spam. Be sure to check these folders in your email inbox.


Restore a Backup

To restore (or rollback) your website to a previous version:

  1. Open Backup Points in the User Portal
  2. Select a backup from the list by clicking the radio button
    • Backup are in server time UTC
  3. Click Restore
  1. A window will pop up with required fields:
    • Restore to — Select an environment name to restore this backup to
    • Restore with databaseCheck to restore database information OR Uncheck to restore files only. The partial database selection of specific tables is not an option.
    • Send notification to — List email addresses, separated by commas, to receive a notification when the restore completes
  2. Click Restore Backup


The automated restore process can take anywhere from a few minutes to several hours. This largely depends on the size of your site and the number of files. An email will be sent to the email addresses listed when the restore has completed.

NOTE

It’s possible for the email notification to be filtered into Junk or Spam. Be sure to check these email folders.

If you choose to restore the backup to another environment, the source environment that the backup belongs to will not be impacted.

The restore process is destructive, meaning all content will be overwritten on the destination environment to match the content of the backup point selected. This means files present on the destination, if not present in that backup point, will be removed from the destination upon restore.


Restore a Backup from One Environment to Another

Sometimes you need to revert a site back to a previous version to check out an old feature, or investigate to see if a site issue existed before an update. However reverting in place would impact a live site and your business. In these cases we suggest restoring a backup to another environment.

Additionally, the Copy Environment feature only offers the ability to copy environments within the same site, for example PRD to DEV or STG. If you wish to copy an environment from one site to an environment in another site, this is still possible using the process below instead.

NOTE

Before proceeding, you will need to ensure you have an environment already created that you can load content to.

  1. Log in to the User Portal
  2. Select the source environment name
  3. Click Backup Points
  1. Select any checkpoint by clicking the radio button next to it
  2. Click Restore
  1. In the popup, select the Restore to dropdown
  2. Choose the environment name you wish to copy content to
  3. Check an option to include or exclude the database
  4. Enter your email address (or multiple email addresses, separated by commas)
  5. Click Restore backup

You will receive an email at the specified email address(es) when the copy is complete.


Download a Backup

Backups can be downloaded as a ZIP archive and can be requested as full or partial. If you have a large site, or need to manually restore a single directory, partial backups can be useful.

  1. Open Backup Points in the User Portal
  2. Select a backup point by clicking the radio button
  3. Click Prepare ZIP
  1. A window will pop up with required fields:
    • Backup Contents:
      • Full Backup — All files and the database
      • Partial Backup:
        • Entire database — Database file, /wp-content/mysql.sql
        • Themes — Themes directory, /wp-content/themes/*
        • Plugins — Plugins and must-use plugins directories /wp-content/plugins/*, /wp-content/mu-plugins/*
        • Media uploads — Uploads directory /wp-content/uploads/*
        • Everything else — Everything not listed above
        • *The partial database selection of specific tables is not an option.
    • Send notification to — List email addresses, separated by commas, to receive a notification with the backup file download
  2. Click Prepare backup ZIP

When a backup is requested, it is first compiled. Once the backup has been prepared it can be downloaded from the Backup Points page. Any backup that’s already been prepared can be downloaded from this page for up to 7 days.

At this time there is no way to automatically export WP Engine generated backups to another service, such as Amazon S3. However, you can still use your own backup integration to offload backups to a separate location. Bear in mind that your WP Engine local storage is limited, and excess storage can impact performance, so these third-party backups should never be stored on the same server as your website.


Partial Restore

At times you may want to restore a single directory, or just the database. WP Engine’s automated restore feature will not work in these cases so the restore must be done manually. Partially restoring specific tables in the database is not an option.

Restore a Directory

Restoring a single, or several directories requires first downloading and opening a backup, then uploading the specified content back to your site.

  1. Download a full or partial backup point
  2. Unzip the backup archive locally
  3. Locate the directory you wish to restore within the local copy of the backup
  4. Connect to your environment using SFTP or SSH Gateway
  5. Overwrite the remote directory on WP Engine with the local backup directory
  6. Reset default file permissions
  7. Purge cache

Restore Database Only

Restoring just the database of a WordPress website requires first downloading and unpacking a backup point to locate the database file. Next you will clear out the existing database and import the database file from your backup to the website.

  1. Download a full or partial backup point
  2. Unzip the backup archive locally
  3. Locate the database within the local backup directory at wp-content/mysql.sql
  4. Open phpMyAdmin from the User Portal
  5. Select the database name
  6. Check all database tables
  7. From the dropdown, select Drop
  8. Confirm by clicking Yes
    • If there are several pages of tables, this may need to be done a few times until no tables show
  9. Click Import
  10. Browse your computer to locate the mysql.sql file and select it
  11. Click Go
  12. Purge cache

NOTE

A database file can also be imported using SSH Gateway.


Backup Inclusions and Exclusions

Every backup (manual or automated) includes the following:

WordPress core files
Themes
Plugins
Database

Backup Exclusions

The things we choose not to backup on our platform typically fall into the following 5 buckets:

Temporary Files (Cache, temporary files, versioning files, etc): These files are meant to be kept around temporarily and therefore can be regenerated easily. In most cases it’s actually bad if we restored these files as they contain time specific content and may affect the functionality of your website.

Stock files (samples, templates): These files are provided by the maintainer of the software to illustrate sample content in various config files. EX: sample-wp-config.php in WordPress core. The files are not used in rendering a site, and can be gathered again if needed.

Backups (backups, snapshots, .bak files): These files are redundant to the backups we offer as part of our platform, and for that reason we choose not to include them as part of the backups we create. We recommend never creating backups locally (we disallow some plugins that perform this), but we do permit additional offsite backups to be created.

Log files (logs, error logs, debug logs): Log files as they would appear in the WordPress root are relevant only at the time of creation, or shortly after. We believe that backing up these files is typically unnecessary and instead recommend downloading relevant log files when the necessary information is captured. Long running log files can also create a large amount of local storage, and we recommend disabling wp debug and other logs once you are done using them.

Obsolete software (unmaintained or prohibited): This category contains things like timthumb and other softwares that aren’t something we recommend using. If you are using unmaintained software, we strongly recommend working to eliminate that software from your site as a security precaution.

Full List of Backup Exclusions

WP Engine backups contain the majority of your uploads, though some are excluded.
Here is our list of files and directories that are not backed up:

.*~
.*/_wpeprivate
.*\.(svn|cvs|git|log|tmp|listing|bak|swp)
.*/log\.txt
.*/wp-content/upgrade
.*/wp-content/.logs
.*/pclzip-.*
.*/wp-content/uploads/sucuri
.*/.sucuriquarantine
.*/cache/.*\..*
.*/imagecache.*
.*/ics-importer-cache
.*/gt-cache
.*/et-cache
.*/wp-content/w3tc.*
.*/wp-content/w3-.*
.*/wp-content/uploads/igcache
.*/wp-content/backups
.*/wp-content/snapshots
.*/wp-content/plugins/wpengine-snapshot/snapshots
.*/wp-content/uploads/snapshots
.*/wp-content/updraft/.*\.(zip|gz)
.*/wp-content/uploads/backupbuddy_backups/.*\.(zip|gz)
.*/wp-content/ai1wm-backups/.*\.wpress
.*/wp-content/aiowps_backups/.*\.wpress
.*/wp-content/backups-dup-pro/.*\.(zip|gz)
.*/wp-content/envato-backups/.*\.(zip|gz)
.*/wp-content/uploads/backup/.*\.(zip|gz)
.*/wp-content/uploads/backup-guard/.*\.(zip|gz)
.*/wp-content/uploads/db-backup/.*\.(zip|gz)
.*/wp-content/uploads/pb_backupbuddy/.*\.(zip|gz)
.*/wp-content/uploads/tCapsule/backups/.*\.(zip|gz)
.*/wp-content/wpvividbackups/.*\.(zip|gz)
.*/wp-content/managewp
.*/wp-content/infinitewp
.*/wp-content/wfcache
.*/wp-content/wflogs
.*/wp-content/plugins/wordfence/tmp
.*/wp-content/plugins/wp-clean-up-optimizer/views/error-logs
.*/wp-content/uploads/gravity_forms/logs

Backup Errors

Start your troubleshooting process here if you receive an email that your WP Engine backup, restore, or copy has failed.

Database

The following database items are currently not fully supported on WP Engine specifically because they interfere with the checkpoint process. Unlike files, however, these items are not ignored automatically by our system. The entire database is backed up at once without any modifications, taking any problem-causing items with it.

When the database is restored or imported with these items, Superadmin permissions are required. For security purposes, our system does not allow Superadmin actions and the process will fail, leaving your site potentially broken.

The following database items should be removed to prevent issues:

Definers
Custom Views
Custom Procedures
Custom Functions

NOTE

While these items may work on your live site itself, they will directly interfere with WP Engine backup, restore and Copy Site processes and should be removed if you intend to use these services.

Too Many Processes

Only one backup, Copy Site or restore can run for an environment at any given time. Starting any additional operations will cause the new process to immediately fail if the old process has not yet completed.

If you receive a failure email after starting an additional backup/restore/copy, this typically means there is no error at all with the original process. Simply need to wait a bit longer for the original process to finish.

If you’re still having issues or simply have questions, our Support team is always happy to help!


Restore Checkpoint Prompt in WordPress

As part of our standard environment, WP Engine includes an awesome restore checkpoint feature that allows you to easily create a backup of your site at a single point in time. This feature may not be something that you remember to use often, so we include a popup to prompt you to create a restore point before making updates to plugins or themes on your website.

This warning appears as follows: Before taking this action, we at WP Engine recommend that you create a Restore Point of your site. This will allow you to undo this action within minutes.

While our goal is to ensure that you can always get back to a working version of your site if something goes wrong, we certainly understand how this feature can be intrusive at times.

With that in mind, there’s an easy way to disable this popup window. To do so, add the following line to the wp-config.php file found in the root directory of your site:

define( 'WPE_POPUP_DISABLED', true );

NEXT STEP: Copy an Environment

Still need help? Contact support!

We offer support 24 hours a day, 7 days a week, 365 days a year. Log in to your account to get expert one-on-one help.

The best in WordPress hosting.

See why more customers prefer WP Engine over the competition.

Chat with us!