SiteRelay
SiteRelay

SiteRelay

0/5 (0 ratings) — active installs Updated Nov 9, 2026
Home: back up, export, find & replace, import, pull or push. Every job can be undone.

Home: back up, export, find & replace, import, pull or push. Every job can be undone.

SiteRelay copies a WordPress site (its database, its files, or both) to another WordPress site, and keeps a way back.

What makes SiteRelay different

  • Everything is free: pull, push, backups, multisite subsites and WP-CLI. No paid version, no size caps, no account.
  • Your two sites talk to each other directly. Nothing passes through a third-party service or the author’s servers.
  • A way back from everything: a restore point before every change, and one click to undo it (even a push, undone on the site it went to).
  • You see what will happen first: every pull and push shows a summary before it starts, and Find & Replace previews every change.
  • Built for big sites: work moves in small steps that hosting time limits don’t stop, and a job can be paused, resumed or cancelled.
  • Multisite both ways: bring a site into a network as a new or existing subsite, or take a subsite out, with users merged by email.

Pull and push

  • Pull another site into this one, or push this site to another. SiteRelay runs on both sites; they talk to each other directly.
  • Copy the whole site, just the database, or the parts you choose: themes, plugins, must-use plugins, uploads and the rest of wp-content.
  • Addresses and file paths change to the receiving site’s automatically, including inside serialized data and JSON.
  • Mirror mode moves aside what the receiving site has and the other doesn’t, so it matches exactly.
  • Access keys decide who may pull from or push to a site, and the site mode (locked, pull-only, push-only or open) sets what it accepts at all. A site can lock itself after a push arrives.

Backups, export and import

  • Full backups of the database and files, to keep on the server, download, or import on another site and restore there (the by-file way to put a site live).
  • Choose what a backup holds: the database, themes, plugins, must-use plugins, uploads, the rest of wp-content and the files in the site’s root such as .htaccess and robots.txt (never WordPress itself or wp-config.php), compressed or not. Restoring replaces only what the backup holds.
  • Export the database as .sql or .sql.gz, and import .sql, .sql.gz (from SiteRelay, mysqldump or phpMyAdmin) or a SiteRelay backup .zip.
  • Find & replace across the database with a preview first; serialized and JSON data stay intact.

A way back

  • Every pull, push, import, restore and find & replace saves a restore point first. Undo it from History; a push is undone on the site it went to.
  • When the users came with what was copied, SiteRelay takes you to the login page and back to the job.

Multisite

  • SiteRelay works on one subsite at a time: export, import, back up, find & replace, pull and push it.
  • A site that comes into a network becomes one of its subsites, existing or new, and its users join the network, merged by email and shown before anything runs.

And

  • Saved profiles and “Run again”, email and webhook notifications when a job ends, and a History of every job with a downloadable report.
  • WP-CLI: wp relay pull, push, export, import, find-replace, backups, keys, mode, jobs and subsites.
  • Large sites move in small steps, so ordinary hosting time limits don’t stop them; a job can be paused, resumed or cancelled.

Security

Every request between two sites is signed with the access key’s secret (HMAC-SHA256) and can be used only once; the answers are signed too. Secrets are stored encrypted. Nothing passes through a third party: the two sites talk to each other.

SiteRelay is free: no paid version, no account, no locked features.

External services

SiteRelay uses no service of its own, and never sends data about your site to its author. It connects only to:

  • The WordPress sites you connect it to. A pull or push carries what you chose to copy (database tables and files) between your site and the other site, which runs SiteRelay too, at the address in the connection string from that site’s Access keys screen. Every request is signed with that access key, and nothing passes through anyone else.
  • The email addresses or webhook URL you enter under Settings Notifications, and only once you switch them on. They receive a short summary of a finished or failed job (its type and status, the other site’s address and a link to the job). A webhook can be any service that accepts a JSON POST, such as Slack’s incoming webhooks; that service’s own terms and privacy policy apply (for Slack: https://slack.com/terms-of-service and https://slack.com/trust/privacy/privacy-policy).
  • This site itself: after a pull, push or restore, SiteRelay loads the site’s home page once to check that it still works, and puts the site back if it doesn’t.

Source code and building

The screens are built from the TypeScript source in ui/: run cd ui && npm ci && npm run build to write build/. The PHP source is in src/.