This page covers backups, pulls and pushes. Exports and imports carry the database only.
The database
SiteRelay copies the site's WordPress tables: every table that starts with the site's table prefix (such as wp_). On a network, that means one subsite's tables. SiteRelay's own tables are never copied.
On the way, SiteRelay changes the other site's address and file path to the receiving site's, everywhere, including inside serialized data and JSON. Extra find & replace pairs run as well. Post GUIDs are left alone unless you switch on Replace GUIDs.
Tables go live in one step at the end. Until then the receiving site keeps running on its old tables.
The files
Files come from wp-content, in five groups:
| Group | What it is | Choices (Custom) |
|---|---|---|
| Themes | wp-content/themes |
All, active only, only the ones you choose, all except the ones you choose, or none |
| Plugins | wp-content/plugins |
All, active only, only the ones you choose, all except the ones you choose, or none |
| Must-use plugins | wp-content/mu-plugins |
All, only the ones you choose, all except the ones you choose, or none |
| Uploads | wp-content/uploads, the media library |
All, only new or changed, changed since a date, or none |
| Other wp-content | Anything else in wp-content, such as a languages or fonts folder |
All, only the ones you choose, all except the ones you choose, or none |
WordPress itself (the core files and wp-config.php) is never copied.
Only new or changed compares uploads the way rsync does. A file with the same size and the same date is the same file. One with the same size but another date is compared by its contents (SHA-1). Everything else is copied.
Symbolic links are skipped: SiteRelay copies real files and folders only.
The built-in skip list
What a copy of the site doesn't need is left out without asking.
Everywhere (any file group), matched against every folder and file name:
| Left out | Why |
|---|---|
.git, .svn, .hg |
Version control |
node_modules |
Developer packages |
.DS_Store, Thumbs.db |
Operating-system clutter |
*.log |
Log files |
ai1wm-backups, updraft, backups-dup-*, backwpup-*, wpvividbackups |
Other backup plugins' archives (All-in-One WP Migration, UpdraftPlus, Duplicator, BackWPup, WPvivid) |
In uploads and other wp-content only. In themes and plugins these names are often real code, so they're kept there.
| Left out | Why |
|---|---|
cache, *-cache, litespeed |
Caches, rebuilt by the plugin |
logs, *-logs, wflogs |
Logs (Wordfence's included) |
wp-staging |
WP Staging's backups |
upgrade, upgrade-temp-backup |
WordPress' scratch folders for updates |
iawp-geo-db.mmdb |
Independent Analytics' location database. The plugin downloads it again |
Never copied (SiteRelay's own and the site's private machinery):
- SiteRelay's own plugin folder,
mu-plugins/relay-compat.php, anduploads/relay(exports and backups). - In
wp-content: therelay-stagingandrelay-backupsworking folders,upgrade,upgrade-temp-backupandcache. - The drop-ins
advanced-cache.php,object-cache.php,db.php,db-error.php,sunrise.php,maintenance.phpandfatal-error-handler.php. They belong to the server they were set up on.
Names are matched without regard to case, and * stands for anything.
Leave out rules
With Custom (under More options → Leave out) or --exclude on the command line, you can add your own rules, one per line:
| Rule | Leaves out |
|---|---|
*.zip |
Every .zip file, in any folder |
uploads/2019 |
The 2019 uploads |
uploads/2019/* |
Everything inside the 2019 uploads folder |
big-video.mp4 |
Any file or folder with that name |
- A rule without a
/matches any folder or file name, anywhere. - A rule with a
/matches the path as seen fromwp-content, such asuploads/2019orplugins/hello.php, and everything inside it.
Bring something back with !. A ! rule wins over the built-in list and your other rules:
| Rule | Brings back |
|---|---|
!*.log |
Log files |
!uploads/iawp-geo-db.mmdb |
Independent Analytics' location database |
!uploads/cache |
A folder named cache in uploads that turns out to hold real content |
SiteRelay's own folders can't be brought back.
Mirror
Without Mirror, a copy adds and replaces: files the receiving site has and the other doesn't are left alone.
With Mirror, the receiving site is made to match. Themes, plugins and uploads it has and the other site doesn't are moved into the job's restore point, so undoing the job brings them back. For themes and plugins this happens only when all of them are copied, so choosing a few plugins never removes the rest.
Whole site turns Mirror on. Mirror and Low-disk mode can't be used together.
Low-disk mode
Normally, files arrive in a staging folder and switch over at the end, and the files they replace are kept in the restore point. That needs room for both. Low-disk mode for uploads writes uploads straight into place instead, so little extra space is needed. The catch: the uploads it replaces aren't kept, so undoing the job can't bring them back.
Into a multisite network
A network shares some things between all its subsites, so a site coming into one is handled differently:
- Themes and plugins the network doesn't have are added. Ones it already has stay as they are.
- Must-use plugins and other wp-content are never copied into a network.
- Uploads go into the subsite's own uploads folder.
- Users join the network's users: same email means same person. See Multisite.
What always stays the receiving site's own
Whatever is copied, these stay as they were on the receiving site:
- SiteRelay's settings: site mode, access keys, saved connections, History, profiles and notifications.
- WordPress' secret keys and salts. When they're stored in the database rather than
wp-config.php, SiteRelay carries the receiving site's own into the copied tables. wp-config.phpand WordPress' core files.