WordPress backups on the Storage Server: a guide with WPvivid

Published on 7 min read

A backup on the same server is not a backup. This guide shows, in fifteen minutes, how WordPress backs itself up over SFTP to a separate Storage Server with a free plugin.

A backup that sits on the same server as the website is not a backup. If the disk gets wiped, the access taken over or the installation encrypted, the backup is gone with it. Only a copy on separate storage is real insurance.

This guide shows the fastest way to get there: a free plugin that backs up WordPress over SFTP to a Storage Server, with a schedule and a retention rule. Setting it up takes fifteen minutes.

Why WPvivid

The field is surprisingly small in one respect. The point that counts is an encrypted transfer in the free edition:

PluginIn the free editionSuitable?
WPvivid Backup & MigrationFTP and SFTPyes
UpdraftPlusFTP only, SFTP and WebDAV are paidonly with a purchase
BackWPupFTP onlyonly with a purchase

Plain FTP transfers credentials and contents unencrypted. For a backup that contains the complete database including the user table, that is not a good idea. WPvivid is therefore the obvious choice: it has more than 900,000 active installations and was last updated in September 2026.

Step 1: create a subaccount on the storage

In the customer panel, under your Storage Server, create a subaccount of its own for the backups, with the home directory /backup/wordpress. That matters more than it sounds: the credentials are about to land in the WordPress database, and anybody who finds them there should be able to reach nothing but this one directory.

In the same step, check two toggles under "Access Settings":

  • SSH / SFTP / SCP / rsync has to be enabled.
  • External Reachability has to be switched on, otherwise your web server cannot reach the storage over the internet.

On newly ordered servers, both are active. Make a note of the hostname and the username. The examples here use:

ItemExample value
Hostnameu123456.storage.kernelhost.net
Subaccountu123456-sub3
Directory/backup/wordpress
Port23

Step 2: check reachability before you set anything up

This saves a lot of hunting later on. If you have shell access on the web server:

timeout 5 bash -c '</dev/tcp/u123456.storage.kernelhost.net/23' && echo "Port 23 reachable"

Without shell access, put a file pruefen.php into the web directory, call it once and delete it afterward:

<?php
$f = @fsockopen('u123456.storage.kernelhost.net', 23, $e, $t, 5);
echo $f ? 'Port 23 reachable' : 'no connection: ' . $t;

If no connection comes up, your host blocks outgoing connections on this port. On shared hosting that is not unusual. What is left is either a question to the host or the route over WebDAV, which runs on port 443.

Step 3: install the plugin and add the destination

In the WordPress admin area, under Plugins, Add New, search for WPvivid Backup & Migration, install it and activate it. The menu item WPvivid Backup then appears on the left.

There, open the Remote Storage tab and pick SFTP. Fill in the fields like this:

FieldValue
Storage Aliasa name of your choice, for example KernelHost Storage
Hostu123456.storage.kernelhost.net
Port23, not the suggested 22
Usernameu123456-sub3
Passwordthe password of the subaccount
Path/, because the subaccount already starts in the right directory

With Test and Add, the plugin checks the connection before it saves it. If that fails, in nine out of ten cases either the port is wrong or external reachability is switched off.

Step 4: the first backup by hand

On the Backup & Restore tab you choose Database + Files (WordPress Files) and, as the destination, Send backup to remote storage with the entry you just created. Then Backup Now.

The first run takes a few minutes depending on the size. Leave the browser window open while it runs, because the plugin drives the progress through repeated requests.

Step 5: schedule and retention

On the Schedule tab you switch the schedule on. What has proven itself:

WhatRhythmRetention
Databasedaily10 copies
Database and filesweekly4 copies

Put the time into the night hours of your main audience. You set the retention under Settings, where you also find the toggle for whether old backups on the remote storage are deleted as well. Switch it on, otherwise the storage fills up over time.

Keep in mind: the snapshots of the Storage Server are an additional layer and work independently of this. Depending on the plan, 10, 20, 30 or 40 manual snapshots are available, plus the same number of automatic ones.

Step 6: check whether the backup is any good

This step gets skipped most often and it is the most important one. Take a look at what is actually on the storage:

sftp -P 23 u123456-sub3@u123456.storage.kernelhost.net
sftp> ls -l
sftp> bye

Watch for two things: the file size has to be plausible, and both a database archive and a file archive have to be there. An archive of a few kilobytes is a failure, not a success.

And then the real test: restore the backup once onto a test installation. A backup that has never been tested is a guess.

Restoring, and the catch

In the free edition, a backup that sits on the remote storage cannot be restored directly, because restoring remote backups is part of the paid version. The free route still works and takes only a few minutes longer:

  1. Download the archive from the storage over SFTP.
  2. In the plugin, open the Upload area under Backup & Restore and upload the archive.
  3. The uploaded backup appears in the list and can be restored from there.

Factor this detour into your emergency plan. Noticing for the first time in a real incident that a download stands in the way costs time you do not need to lose.

Where this route ends

Every backup plugin works inside PHP and therefore runs into time and memory limits. Past a total size of a few gigabytes it gets sluggish, and with very large media libraries the run breaks off at some point.

The better route is then rsync or BorgBackup, both straight from a schedule on the server and both available natively on the storage:

rsync -az --delete -e "ssh -p 23" \
      /var/www/example.com/ \
      u123456-sub3@u123456.storage.kernelhost.net:/dateien/

This transfers only the changes and knows no PHP limits. It does require your own server with shell access. More about this route is in Using a Storage Server for your own website.

Which other parts of WordPress can be moved onto the storage, meaning the media library and downloads, and where the limits are, is covered in Using a Storage Server with WordPress.

The four most common mistakes

  • Port 22 instead of 23. The plugin suggests 22, our storage listens on 23.
  • External reachability switched off. The test from the customer panel then works, but not the one from the web server.
  • The main account instead of a subaccount. The credentials end up in the database of the website afterward. With the main account, everything hangs on them.
  • Old backups are never deleted. Without the retention rule enabled for the remote storage, the space fills up, and at some point the backup fails silently.

Which plan fits

For the backups of a single WordPress site, Storage-1 with 1 TB for 9.99 EUR lasts a very long time. For scale: a mid-sized site with a total size of 5 GB takes up around 50 GB with ten backups kept, which is five percent of the plan.

PlanSpaceSnapshotsPrice
Storage-11 TB10 plus 10 automatic9.99 EUR
Storage-25 TB20 plus 20 automatic29.99 EUR
Storage-310 TB30 plus 30 automatic39.99 EUR
Storage-420 TB40 plus 40 automatic69.99 EUR

All Storage Servers are located in Germany, allow up to 100 subaccounts, speak SMB, WebDAV, rsync and BorgBackup alongside SFTP and come with no setup fee. Billing is PrePaid with no minimum term, so you can start small and grow when more sites come along.

Frequently asked questions

Why WPvivid and not UpdraftPlus?
Because SFTP is included in the free edition of WPvivid. With UpdraftPlus, SFTP and WebDAV are part of the paid version, and the free edition leaves you with plain FTP without encryption. BackWPup also carries nothing but FTP in its free edition.
Which port do I have to enter?
Port 23. The plugin suggests 22 because that is the usual SSH port. Our Storage Server listens on 23, and that is by far the most common cause when the connection test fails.
Do I need a subaccount of my own?
Not strictly, but it is strongly recommended. The credentials end up in the WordPress database afterward. With a subaccount that only sees the backup directory, anybody who gets hold of those credentials can reach nothing else. Every Storage Server allows up to 100 subaccounts.
How often should the backup run?
For a site that changes daily, the database daily and everything weekly. For a site that rarely changes, weekly is enough. What matters is less the rhythm than the question of how much work you are willing to redo when it goes wrong.
How many backups should I keep?
At least enough that a problem gets noticed before the last intact version rotates out. With a daily backup, seven to ten is a good number. On top of that come the snapshots of the Storage Server as a second layer, 10 to 40 of them depending on the plan.
Can I restore straight from the storage?
Not directly in the free edition, because restoring remote backups is part of the paid version there. The free route is to download the archive over SFTP, upload it in the plugin and restore it from there. That works, it just takes a few minutes longer.
What do I do with a very large website?
Past a few gigabytes, every PHP plugin runs into time and memory limits. The better route is then rsync or BorgBackup from a schedule on the server itself, and both are available natively on the storage. That does require your own server with shell access.
How do I know that the backup is actually usable?
Only by having restored it once. At the very least, check the file size and the contents of the archive, and restore it once onto a test installation. A backup that has never been tested is a guess, not a backup.
Does the backup slow down my website?
A little while it runs, because files are read and compressed. Put the schedule into the night hours of your main audience for that reason. The transfer itself mostly loads the uplink, not the website.
What does the storage cost?
Storage-1 with 1 TB costs 9.99 EUR a month and lasts a very long time for the backups of one website. Above that there is Storage-2 with 5 TB for 29.99, Storage-3 with 10 TB for 39.99 and Storage-4 with 20 TB for 69.99. Located in Germany, no setup fee, PrePaid and no minimum term.

WordPress Backup WPvivid SFTP Storage Server Plugin Wiederherstellung