Never skip backups. A complete strategy covers files + database + offsite storage.
Backup Plugin Stack
| Plugin | Use Case | |--------|----------| | UpdraftPlus | Automated schedules, 9 remote destinations — preferred | | BackWPup | Free alternative, multisite support | | WPvivid | Full migration + backup, staging copy | | BlogVault | Managed service, real-time backups |
UpdraftPlus Configuration
- Install UpdraftPlus > Settings > UpdraftPlus Backups
- Schedule: Files = Daily, Database = Daily
- Retain: 7 copies minimum
- Remote storage: Google Drive or Amazon S3
- Include:
plugins,themes,uploads,others
WP-CLI Backup
# Database export with date stamp
wp db export /backups/db-$(date +%Y-%m-%d-%H%M).sql
# Full files archive (exclude cache and node_modules)
tar -czf /backups/files-$(date +%Y-%m-%d-%H%M).tar.gz \
/var/www/html/ \
--exclude=/var/www/html/wp-content/cache \
--exclude=/var/www/html/node_modules
# Add to server crontab for automated daily backup at 2 AM
# 0 2 * * * /usr/local/bin/wp db export /backups/db-$(date +\%Y-\%m-\%d).sql --path=/var/www/html
Backup Checklist
- [ ] Files backup: daily minimum
- [ ] Database backup: daily (consider hourly for WooCommerce)
- [ ] Backups stored offsite — never on same server as production
- [ ] Retention: minimum 7 days
- [ ] Test restore quarterly — untested backups are not backups
- [ ] Exclude from file backup:
cache/,node_modules/,.git/
Backup Verification
# Verify SQL dump is valid
mysql -u root -p -e "source /backups/db-2026-05-12.sql" test_restore
echo "Exit code: $?"
# Check file archive integrity
tar -tzf /backups/files-2026-05-12.tar.gz | head -20
WPX Hosting Backups
WPX takes daily server-side backups retained 28 days:
- Restore via WPX dashboard: Services > Backups > Restore to date
- For critical sites: run UpdraftPlus IN ADDITION to WPX server backups