Quick answer: Back up both the files and the database, on a schedule, and keep at least one copy off the VPS. The two proven paths: the UpdraftPlus plugin sending archives to remote storage, or a small WP-CLI + cron script that dumps the DB and rsyncs everything to a Cloud2Y Storage VPS or other offsite target.
Overview
On an unmanaged VPS, backups are your job — and a backup that lives only on the same server is not a backup once the disk or the site itself fails. A solid setup is: daily database dump, daily or weekly file sync, 7–30 days retention, stored offsite, restore-tested occasionally.
Before you start
- An offsite destination: a Storage VPS, S3-compatible bucket, or at minimum another server.
- WP-CLI for the script path, or wp-admin access for the plugin path.
- An idea of your site size — uploads folders grow; check with
du -sh /var/www/example.com.
Step-by-step guide
- Plugin path: install UpdraftPlus → Settings: schedule files weekly + database daily, choose remote storage (S3, FTP/SFTP, Dropbox…), set retention, run the first backup and download it once as a test.
- Script path: create
/usr/local/bin/wp-backup.sh:#!/bin/bash set -e SITE=/var/www/example.com DEST=backup@storage-vps:/backups/example.com STAMP=$(date +%F) cd "$SITE" sudo -u www-data wp db export /tmp/db-$STAMP.sql gzip -f /tmp/db-$STAMP.sql rsync -az /tmp/db-$STAMP.sql.gz "$DEST/db/" rsync -az --delete "$SITE/wp-content/" "$DEST/files/wp-content/" rm /tmp/db-$STAMP.sql.gz find /tmp -name 'db-*.sql.gz' -mtime +1 -delete - Schedule it:
sudo crontab -e→30 3 * * * /usr/local/bin/wp-backup.sh >> /var/log/wp-backup.log 2>&1. - Apply retention on the destination (e.g. keep 14 daily DB dumps), and test a restore: import a dump into a scratch DB and unpack wp-content somewhere.
Common issues
- Backups silently stopped: nobody reads the log — add a fail alert (even a Slack/email ping on non-zero exit).
- Disk filled by local archives: plugin keeping copies in wp-content/updraft — lower local retention, keep history offsite.
- Restore fails on huge sites: archives split or time out — prefer the rsync path for sites over a few GB.
When to contact support
Interested in a Storage VPS as a backup target, or unsure how much backup space you need? Open a ticket — and note that platform snapshots, where available, complement but don’t replace your own offsite backups.
Frequently asked questions
How often should I back up a WordPress site?
Database daily (it changes with every comment and order), files weekly or on change; an active WooCommerce store should dump the database several times a day to limit lost orders.
Are plugin backups like UpdraftPlus reliable enough?
Yes for most sites, provided archives go to remote storage and you download and test one occasionally; very large sites restore more reliably from rsync/database-dump backups.
Why must backups be stored off the VPS?
A copy on the same server dies with the server: disk failure, ransomware or an rm mistake destroys both site and backup. Offsite storage is what makes it an actual backup.
Related articles
- How to configure backups to a Storage VPS
- How to use staging for WordPress updates
- How to secure WordPress on a VPS
- How to troubleshoot the WordPress 500 error
Ready to get started? Order a WordPress VPS at Cloud2Y →
