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

  1. 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.
  2. 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
  3. Schedule it: sudo crontab -e30 3 * * * /usr/local/bin/wp-backup.sh >> /var/log/wp-backup.log 2>&1.
  4. 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

Ready to get started? Order a WordPress VPS at Cloud2Y →

Was this answer helpful? 0 Users Found This Useful (0 Votes)