{"slug":"wordpress-backup-strategies","title":"WordPress Backup Strategies","tags":["backup","updraftplus","wpvivid","database","disaster-recovery"],"agent_summary":"WordPress backup stack (UpdraftPlus, BackWPup, WPvivid), WP-CLI backup commands, offsite storage configuration, retention policies, and backup verification procedures.","trigger_phrases":["wordpress backup","updraftplus setup","backup wordpress site","wp db export backup","wordpress disaster recovery","backup plugin wordpress","offsite backup wordpress"],"runnable":true,"markdown":"\nNever skip backups. A complete strategy covers files + database + offsite storage.\n\n## Backup Plugin Stack\n\n| Plugin | Use Case |\n|--------|----------|\n| UpdraftPlus | Automated schedules, 9 remote destinations — preferred |\n| BackWPup | Free alternative, multisite support |\n| WPvivid | Full migration + backup, staging copy |\n| BlogVault | Managed service, real-time backups |\n\n## UpdraftPlus Configuration\n\n1. Install UpdraftPlus > Settings > UpdraftPlus Backups\n2. Schedule: Files = Daily, Database = Daily\n3. Retain: 7 copies minimum\n4. Remote storage: Google Drive or Amazon S3\n5. Include: `plugins`, `themes`, `uploads`, `others`\n\n## WP-CLI Backup\n\n```bash\n# Database export with date stamp\nwp db export /backups/db-$(date +%Y-%m-%d-%H%M).sql\n\n# Full files archive (exclude cache and node_modules)\ntar -czf /backups/files-$(date +%Y-%m-%d-%H%M).tar.gz \\\n  /var/www/html/ \\\n  --exclude=/var/www/html/wp-content/cache \\\n  --exclude=/var/www/html/node_modules\n\n# Add to server crontab for automated daily backup at 2 AM\n# 0 2 * * * /usr/local/bin/wp db export /backups/db-$(date +\\%Y-\\%m-\\%d).sql --path=/var/www/html\n```\n\n## Backup Checklist\n\n- [ ] Files backup: daily minimum\n- [ ] Database backup: daily (consider hourly for WooCommerce)\n- [ ] Backups stored offsite — never on same server as production\n- [ ] Retention: minimum 7 days\n- [ ] Test restore quarterly — untested backups are not backups\n- [ ] Exclude from file backup: `cache/`, `node_modules/`, `.git/`\n\n## Backup Verification\n\n```bash\n# Verify SQL dump is valid\nmysql -u root -p -e \"source /backups/db-2026-05-12.sql\" test_restore\necho \"Exit code: $?\"\n\n# Check file archive integrity\ntar -tzf /backups/files-2026-05-12.tar.gz | head -20\n```\n\n## WPX Hosting Backups\n\nWPX takes daily server-side backups retained 28 days:\n- Restore via WPX dashboard: Services > Backups > Restore to date\n- For critical sites: run UpdraftPlus IN ADDITION to WPX server backups\n","html":"<p>Never skip backups. A complete strategy covers files + database + offsite storage.</p>\n<h2>Backup Plugin Stack</h2>\n<p>| Plugin | Use Case |\n|--------|----------|\n| UpdraftPlus | Automated schedules, 9 remote destinations — preferred |\n| BackWPup | Free alternative, multisite support |\n| WPvivid | Full migration + backup, staging copy |\n| BlogVault | Managed service, real-time backups |</p>\n<h2>UpdraftPlus Configuration</h2>\n<ol>\n<li>Install UpdraftPlus > Settings > UpdraftPlus Backups</li>\n<li>Schedule: Files = Daily, Database = Daily</li>\n<li>Retain: 7 copies minimum</li>\n<li>Remote storage: Google Drive or Amazon S3</li>\n<li>Include: <code>plugins</code>, <code>themes</code>, <code>uploads</code>, <code>others</code></li>\n</ol>\n<h2>WP-CLI Backup</h2>\n<pre><code class=\"language-bash\"># Database export with date stamp\nwp db export /backups/db-$(date +%Y-%m-%d-%H%M).sql\n\n# Full files archive (exclude cache and node_modules)\ntar -czf /backups/files-$(date +%Y-%m-%d-%H%M).tar.gz \\\n  /var/www/html/ \\\n  --exclude=/var/www/html/wp-content/cache \\\n  --exclude=/var/www/html/node_modules\n\n# Add to server crontab for automated daily backup at 2 AM\n# 0 2 * * * /usr/local/bin/wp db export /backups/db-$(date +\\%Y-\\%m-\\%d).sql --path=/var/www/html\n</code></pre>\n<h2>Backup Checklist</h2>\n<ul>\n<li>[ ] Files backup: daily minimum</li>\n<li>[ ] Database backup: daily (consider hourly for WooCommerce)</li>\n<li>[ ] Backups stored offsite — never on same server as production</li>\n<li>[ ] Retention: minimum 7 days</li>\n<li>[ ] Test restore quarterly — untested backups are not backups</li>\n<li>[ ] Exclude from file backup: <code>cache/</code>, <code>node_modules/</code>, <code>.git/</code></li>\n</ul>\n<h2>Backup Verification</h2>\n<pre><code class=\"language-bash\"># Verify SQL dump is valid\nmysql -u root -p -e \"source /backups/db-2026-05-12.sql\" test_restore\necho \"Exit code: $?\"\n\n# Check file archive integrity\ntar -tzf /backups/files-2026-05-12.tar.gz | head -20\n</code></pre>\n<h2>WPX Hosting Backups</h2>\n<p>WPX takes daily server-side backups retained 28 days:</p>\n<ul>\n<li>Restore via WPX dashboard: Services > Backups > Restore to date</li>\n<li>For critical sites: run UpdraftPlus IN ADDITION to WPX server backups</li>\n</ul>\n"}