How to Transfer a Website Backup to Another Site?
Overview
The Backups > Transfer page lets you export a backup from this site so another website can import it — without FTP, cPanel, or any manual file transfer. You can either generate a shareable download link or upload a backup file from your computer to restore on this site.
This page is the export counterpart to Backups > Migration, which handles imports.
Get a Shareable Link
Generate a time-limited download URL for any completed backup stored on this server. The link is valid for 72 hours and works from any Integration for Google Drive site, or any tool that can fetch a direct .zip download.
- Navigate to Backups > Transfer.
- Under Get a shareable link, locate the backup you want to share.
- Click Copy Link.
- The link is copied to your clipboard. Paste it into the destination site’s Migration > Restore from URL field.
You can also click Download to save the .zip archive directly to your computer.
Link Details
| Property | Value |
|---|---|
| Validity | 72 hours from creation |
| Format | Signed URL with HMAC token and expiry timestamp |
| File type | .zip (ZipArchive) or .igda (streaming archive) |
Note: The shareable link only works for backups stored locally on this server. Backups that exist only in Google Drive must be downloaded from Google Drive directly or restored from the Migration page on a site that shares the same Google account.
Upload a Backup File
Upload a backup archive from your computer to restore this website from it. This is useful when migrating from a site that does not share a Google account and you have the .zip or .igda file saved locally.
- Under Upload a backup file, click Choose Backup File.
- Select an archive in one of these formats:
- .zip — standard ZipArchive format (requires PHP
zipextension on the source site). - .igda — the plugin’s pure-PHP streaming archive format (produced automatically when
zipis unavailable).
- .zip — standard ZipArchive format (requires PHP
- Click Restore Now in the confirmation dialog.
- The upload proceeds in 1 MB chunks with a live progress bar.
- Once the upload completes, the restore begins automatically.
Upload Behavior
- The upload is chunked at 1 MB per chunk and base64-encoded in transit.
- Each chunk is appended to a temporary file (
imports/import_{key}.zip). - You can cancel the upload at any time — the partial file is removed from the server.
- After the final chunk, the server validates the archive (ZipArchive CHECKCONS or streaming archive header check) before starting the restore.
- The maximum chunk size is 12 MB before base64 encoding (approximately 8 MB of raw data).
Choose the Import Speed
Before uploading, select an import speed profile in the Import speed dropdown:
| Profile | Pass Duration | Chunk Size | Recommended For |
|---|---|---|---|
| Safe | 8 seconds | 4 MB | Shared hosting, low memory limits, or when restores stall. |
| Balanced | 15 seconds | 8 MB | Most hosting environments — the default. |
| Fast | 25 seconds | 16 MB | Dedicated servers with high memory limits. |
Larger chunks complete the restore in fewer worker passes but consume more memory per pass. If you see timeouts or memory errors during restore, switch to Safe.
How the Migration Works
Source Site (Export)
- Create a backup on the source site via Backups > All Backups > Create Backup.
- Wait for the backup to reach Complete status.
- On the source site, go to Backups > Transfer.
- Either Copy Link to get a shareable URL, or Download the .zip file.
- Paste the link on the destination site’s Migration page, or upload the .zip on the destination site’s Transfer page.
Destination Site (Import)
- On the destination site, go to Backups > Migration.
- Choose a restore source:
- Restore from Google Drive — pick a backup from the connected Google account.
- Restore from URL — paste a shareable link from another site.
- Restore a local backup — pick a backup already stored on this server.
- Or go to Backups > Transfer and upload the .zip file directly.
- Confirm the restore. The destination site’s database and files will be overwritten.
Requirements and Limits
- Manage options — you must have the
manage_optionscapability to create, transfer, or restore backups. - Disk space — ensure the destination server has enough free space for the archive plus the extracted staging directory (roughly 2x the archive size during restore).
- PHP memory — restore workers are time-budgeted, but the import speed profile affects per-pass memory usage. Use the Safe profile on memory-constrained hosts.
- WP-Cron — the restore uses WP-Cron as a fallback driver. If
DISABLE_WP_CRONis true and loopback requests are blocked, keep the admin tab open during the restore. - Supported formats — .zip (ZipArchive) and .igda (streaming archive) are accepted as restore sources.
Troubleshooting
“Please choose an Integration for Google Drive backup archive (.zip or .igda)”
The selected file does not have a .zip or .igda extension. Ensure you are uploading a backup archive created by the Integration for Google Drive plugin.
“The uploaded file is not a valid backup archive”
The file passed the extension check but failed validation. It may be corrupt, truncated, or not a backup archive at all. Try re-creating the backup on the source site.
“Could not start the restore”
The restore could not be initialized. Common causes:
- Another backup or restore is already running — wait for it to finish.
- The selected backup is not available for restore (incomplete or missing archive).
- A Google account is required but not connected (for Google Drive restores).
“Upload chunk out of order. Please retry the upload.”
The upload was interrupted or the browser sent chunks out of sequence. Retry the upload from the beginning. The partial file is cleaned up automatically.
“The URL did not return a valid backup archive”
The pasted URL returned a web page instead of a file. Ensure the link is a direct, public download URL — not a Google Drive preview page or Dropbox preview link. The plugin automatically normalizes known share-link formats, but the source must be publicly accessible.
“The download URL returned HTTP 401 / 403 / 404”
- 401 — the source site is protected by HTTP Basic Auth. Disable it temporarily or use a different transfer method.
- 403 — access is blocked by a firewall or security plugin. Ensure the link is publicly accessible.
- 404 — the backup archive no longer exists on the source server.