★ Free plugin

Sitecarry — backups you can actually restore.

Packages your whole site — every file plus a full database export — into one archive, with a standalone installer that rebuilds it on any server. The build runs in short, resumable slices, so it finishes on shared hosting that kills a request after thirty seconds.

3cloud destinations
ZIP64no 4GB ceiling
WP 7.1tested up to
  1. Build a package
  2. Download archive + installer
  3. Upload both to the new server
  4. Open installer.php
The installer never loads WordPress, so it can replace the files WordPress runs from.

Overview

What this WordPress backup plugin does.

A backup is only worth what it restores. Every Sitecarry package carries the files, a complete database export and a standalone installer — one program that rebuilds the site on a server with no WordPress on it at all, rewriting URLs and paths as it goes.

The hard part of moving a WordPress site is that a lot of its settings are PHP serialized data, where every string carries its own byte length. A plain search and replace breaks those lengths, and that is how a migration quietly wipes widget settings and page builder layouts. Sitecarry rewrites the serialized form directly and repairs the lengths, including the JSON-escaped URLs Elementor stores its content in.

Features

What's inside.

Download free ↗︎

Restores on any server

Every package ships with an installer.php that needs no WordPress on the target. Same file for moving hosts, cloning live to staging, or rolling a site back.

Survives shared hosting

Both the build and the restore run in short slices and resume exactly where the last request stopped, so a 30-second execution limit is not the ceiling on your site size.

Off-site storage

Amazon S3 or anything that speaks it — Backblaze B2, Wasabi, DigitalOcean Spaces, MinIO — plus FTP and Google Drive. A restore can pull the archive back down when the old server is gone.

Scheduled and incremental

Hourly to weekly, with retention that counts complete sets. Incremental packages carry only changed files, and a full backup is taken automatically often enough to cap the replay.

Page-builder-safe URLs

Serialization-aware search and replace that repairs string lengths and handles the JSON-escaped form Elementor and other builders store. Layouts survive the move.

Verify and WP-CLI

Check a package against its recorded size and checksum before you need it. wp sitecarry backup has no execution limit and no tab to keep open, and verify exits non-zero so it can run from a monitor.

Screenshots

What it looks like.

Sitecarry Backups screen listing packages with restore passphrases
Sitecarry Settings screen showing schedule, retention and exclusions
Sitecarry Storage screen configured for Amazon S3
Sitecarry Notifications screen with failure alerts configured

Pricing

Free. All of it.

A migration, done for you

Quoted

Sitecarry is the tool we use to move sites. If you would rather the move simply happened, that is a service we offer.

  • Host-to-host migrations
  • Staging and go-live
  • DNS, SSL and email carried across
  • No downtime window to sit through

Sitecarry is not on the WordPress.org plugin directory yet — the download here is the current build, and updates will move to the normal WordPress updates screen once it is listed.

Changelog

Release history.

  • v1.15.0

    Deleting the plugin now clears its settings and scheduled events, and deliberately leaves your packages alone — deleting a plugin should not destroy the only copy of a site.

  • v1.14.0

    Ten fixes, most of them cases where an interrupted backup could resume into a corrupt archive. The database export now pages by primary key, which is both correct and far faster on large tables.

  • v1.12.0

    Sitecarry writes the ZIP itself, appending and never rewriting, so build time grows with the size of the site instead of with its square. ZIP64 throughout, and PHP's zip extension is no longer needed.

  • v1.11.0

    Two more destinations, both chunked and resumable. Drive uses an OAuth client of your own, so authorisation never routes through anyone else's servers.

  • v1.10.0

    When the archive is no longer on the server — pruned, or because the server itself is gone — the installer downloads it from S3. That is the situation a backup exists for.

Questions

Questions about this WordPress backup plugin.

If you would rather not do the migration yourself, the website migration page covers that.

How large a site can it handle?

Comfortably into the tens of gigabytes. Sitecarry writes its own archive format rather than using PHP's zip extension, appending each file to the end and never rewriting what is already there — so the work grows with the size of the site instead of with the square of it. ZIP64 is used automatically, so neither the archive nor any file in it stops at 4GB.

You still need free disk space for the package, and enough for the database export while it is being written.

Why does the restore not run inside WordPress?

Because it replaces the very files WordPress is running from. Anything doing that from inside WordPress would be pulling the floor out from under itself partway through.

The installer is a standalone program that never loads WordPress, which is also why it works on a server that has nothing installed on it yet.

The same reasoning is why WordPress itself documents a manual restore as a file-level operation rather than something done from the dashboard — see the WordPress backup documentation.

Will my Elementor layouts survive a move to a new domain?

Yes, and this is the part most migrations get wrong. WordPress stores a lot of settings as PHP serialized data, where every string records its own byte length; replacing a domain with a longer one using a plain search and replace breaks those lengths and WordPress can then no longer read the value.

Sitecarry rewrites the serialized form directly and repairs the lengths, and it also handles the JSON-escaped form (https:\/\/) that Elementor and other page builders store their content in.

Does verifying a package prove it will restore?

No, and nothing short of restoring it does. Verifying proves the archive is the one that was written, still opens, and holds the files a restore starts from — which catches truncated uploads, disks that filled mid-write, and silent corruption. It cannot tell you the database inside will import cleanly on a different server.

Where are the packages kept, and can anyone else reach them?

In wp-content/uploads/sitecarry/, with an unguessable filename, direct web access blocked by .htaccess and web.config, and downloads served only through an authenticated admin request — never a public URL.

Every package also has its own restore passphrase, shown in the admin and deliberately kept out of the archive, so an installer left behind on a server cannot be used by anyone else to overwrite the site.

When packages are sent off-site, use a key scoped to one bucket rather than an account-wide one — Amazon S3 and every service that speaks its protocol support this, and it limits what a leaked key can reach.

What happens to my backups if I delete the plugin?

Nothing. Sitecarry removes its own settings and scheduled events and leaves the packages in wp-content/uploads/sitecarry/ exactly where they are — deleting a plugin should never be the thing that destroys your last copy of the site. Delete that folder yourself once you are sure.