
RestorePilot Backup & Migration is a straightforward backup and restore plugin for WordPress site owners, developers, and small agencies.
It creates a downloadable backup package containing this site’s WordPress database tables and, optionally, the wp-content files. During restore, RestorePilot automatically detects the source URL from the backup manifest and replaces it with the current site URL using serialized-safe replacement — no manual search-and-replace needed.
Why RestorePilot
Most backup plugins are tested by how well backups work. Restores get tested less, and that is the moment you actually need one to work.
- A rollback point before every restore. RestorePilot saves your current database before it changes anything, and you can restore straight from it if something goes wrong — no separate backup step, no remembering to do it yourself.
- Resumes instead of restarting. A host timeout, a closed browser tab, a slow connection — collecting files and restoring both pick up from where they stopped, and a restore continues partway through a single large database table. The one step that does not resume is the database export inside a backup: it is taken as a single consistent snapshot, which cannot outlive the process that opened it, so if that step is cut short it starts again rather than stitching together tables read at different moments.
- Volume splitting for large sites. Backups are split into volumes automatically, so a host’s per-file size limit stops being a reason a backup can fail. Free disk space, rather than file size, becomes the limit.
- Nothing leaves your server. Backups are written to your own server, in a directory beside WordPress where the web server cannot serve them, falling back to the uploads directory if that is not writable. RestorePilot has no cloud storage integration and sends nothing to the plugin author or any third party — see Privacy & data below.
- Built for migration, not just backup. Source and target URLs are detected automatically from the backup itself, with serialized-safe replacement across options, widgets, and post meta — restoring a backup on a different domain does not need a manual search-and-replace pass.
Features
Backup
- Full site backup: database + wp-content files.
- Split into volumes: a site is limited by free disk space rather than by how large a single file the server allows.
- Constant memory use: the database is exported and restored as a stream, so database size is not limited by PHP’s memory limit. Backups taken by much older versions used a single-document format that has to be read whole; those are still restorable, but their size is limited by memory, and RestorePilot refuses one it cannot decode before touching the site rather than failing part way.
- Resumes automatically: if a background backup is interrupted by a host timeout, file collection continues from where it left off. The database export is the exception — it runs as one consistent snapshot and restarts if interrupted, which is the price of every table being read as of the same moment. A scheduled daily backup runs as a single process and does not resume at all.
- One-click full backup download for restore or migration.
- Advanced file selection: choose which top-level wp-content folders to include.
- Friendly backup filenames with site name and date/time.
- Background backup jobs — navigating away does not cancel the backup.
- Progress bar with percent complete and estimated time remaining.
- Cancel button for running backups.
- Health check before restore to verify backup integrity.
- Free version keeps the newest 2 backups total across manual and daily backups.
Restore & Migrate
- Restore from an uploaded backup zip.
- Large uploads are sent in smaller chunks to bypass PHP upload limits.
- Restore from a zip already inside the site’s uploads directory (useful for very large sites).
- Auto-detect source and target URLs from the backup manifest.
- Manual source/target URL mode for advanced migrations.
- Serialized-safe URL replacement (handles WordPress options, widgets, post meta).
- Table prefix mapping between source and target sites.
- Pre-restore database rollback point for safety.
- Resumes automatically: if a background restore is interrupted by a host timeout, it continues from where it left off — including partway through a large table — on the next attempt instead of starting over. Each resumption re-reads the rows it has already written in order to find its place, so a table of several hundred thousand rows restores more slowly the more times it is interrupted.
- Atomic table swap: new tables are staged before replacing live ones.
- Maintenance mode during restore, automatically removed on completion or failure.
- Post-restore success dialog after login.
- The database is fully replaced by the backup. wp-content files are overlaid: files present in the backup overwrite matching files on the target, but a file that exists on the target and is not in the backup is left in place, not removed.
Downloads
- Full backup zip is the primary download for restore and migration.
- Advanced downloads for database, plugins, themes, uploads, must-use plugins, and other wp-content files.
- Large backups are handed off to the web server where possible.
- Resumable PHP streaming with HTTP Range support as a fallback.
Scheduled backups & notifications
- Optional daily automatic backups via WP-Cron from the Daily Backup tab.
- Optional email notification after backup success or failure.
Logs & diagnostics
- Logs tab with refresh, download, clear, and quick filters.
- Dark-themed log viewer for easy reading.
- Database-backed fallback log if file logging fails.
- System Readiness panel: PHP version, ZIP support, disk space, backup folder, WP-Cron.
- Diagnostics & Maintenance panel for backup storage status, temp cleanup, stuck runtime reset, and log tools.
- Runtime PHP warning and fatal error logging during RestorePilot actions.
WP-CLI
wp restorepilot backup— create a full backup.wp restorepilot backup --db-only— database-only backup.wp restorepilot health— check the newest backup.
Security & compatibility
- Admin-only access with nonce verification on every action.
- Backup storage protected by
.htaccessandindex.php. - Randomised backup filenames to reduce direct-access risk.
- Installed backup plugins (UpdraftPlus, Duplicator, WP Staging, etc.) are
backed up normally; only their stored backup archives are excluded from
RestorePilot backups to avoid backup-of-backups bloat. - Missing active plugin references are cleaned after restore to avoid WordPress
deactivating unavailable plugins with a scary admin notice. - Full cleanup on uninstall: backups, logs, temp files, options, scheduled events.
- Multisite compatible uninstall. Note: creating backups and running restores is not supported on multisite networks.
Important note
This is an early release. Always test restores on a staging site before using RestorePilot on a production site.
Privacy & data
RestorePilot creates backup files that may contain personal data from your WordPress database, media library, themes, plugins, and uploaded files. Backups are stored locally on your own server, in a restorepilot-private-storage directory beside the WordPress installation so that no URL reaches them; if that location cannot be written, they stay in a protected folder inside the uploads directory instead. They remain there unless you download or move them yourself. RestorePilot does not send backup data to the plugin author or to any third-party service.
Deleting the plugin removes the stored backups along with it, from either location. A storage directory you configured yourself with RESTOREPILOT_STORAGE_DIR is left untouched, since it is yours rather than the plugin’s.
Screenshots

Backup tab — create a full or custom backup, and download, check, restore, or delete the backups you already have.

Daily Backup tab — schedule one automatic backup a day and get an email when it succeeds or fails.

Restore tab — restore from an uploaded zip or from one already on the server, with automatic URL detection for migrations.

Every restore is confirmed first — what will change, how to recover if it fails, and a required acknowledgement.

Status tab — system readiness, storage and rollback diagnostics, and safe maintenance tools.

Destructive actions ask twice — Master Reset requires both a backup acknowledgement and typing RESET.