A backup plugin has the hardest job on a WordPress site: read everything, compress it, and ship it elsewhere, all inside a request that was only ever meant to render a page.
Every other plugin does a little work per request. This one tries to do all of it at once.
UpdraftPlus splits a backup into resumable chunks and relies on being called back. On WP-Cron that callback waits for a visitor, so a nightly backup on a quiet site never gets past the first chunk.
An archive is written beside the site before it is uploaded. A 6 GB site briefly needs 6 GB more, and the failure mode is a full disk that takes the site down with it.
Zipping a media library is the most memory-hungry thing your site will ever do. A limit tuned for rendering a post is what produces a half-written archive and no error.
Sending to Drive, S3 or Dropbox is a long transfer inside a PHP process. Execution limits meant for page requests kill it partway and leave a partial file at the far end.
We already take daily off-site backups. Running both without deciding which is authoritative is how a restore reaches for the copy nobody was maintaining.
An untested backup is a rumour. The failure here is silent by design: the job stops, the log says it started, and nobody looks until the day it is needed.
Compression is CPU-bound and reading the media library is disk-bound, and both are happening on the machine that is meant to be answering requests.
These differ from a standard WordPress site on the same plan, and each follows from a plugin that has to read the whole site inside a web request.
| Setting | What we do | Why |
|---|---|---|
| Backup job scheduling | Driven by the platform scheduler so resume callbacks always fire | UpdraftPlus works in resumable chunks and needs to be called back to continue; on visitor-triggered cron a quiet night means the job stalls after its first chunk and reports nothing. |
| Temporary archive space | Staged outside the site's storage quota and swept after a failed job | The archive is written next to the site before upload, so a large library momentarily needs its own size again in free space — and a failed job leaves that copy behind until something removes it. |
| Job memory limit | Raised for the backup process only | Compressing a media library is the peak memory event in a site's life, and a limit sized for rendering a page truncates the archive without raising an error anyone sees. |
| Remote upload timeouts | Extended for storage transfers rather than globally | Shipping several gigabytes to object storage takes far longer than any page request should, and the shared timeout aborts it mid-transfer leaving a partial file at the destination. |
| Backup ownership | Decided explicitly between the plugin and the platform | Two backup systems running unaware of each other doubles the disk and CPU cost, and makes it ambiguous which copy a restore should trust. |
Every plan includes free migration, daily backups, SSL and 24/7 support.
Free migration, jobs that resume on schedule, and temp files that never fill your disk.