Royal MCP GuardPress ForgeCache SiteVault Royal Links SEObolt FormForge Support Case Studies AI Credits My Account Cart
Support / SiteVault / Disaster Recovery

Disaster Recovery GuidePRO

When your WordPress site is completely broken and you can't access the admin panel, this guide will help you recover. Bookmark this page - you'll want access to it even when your site is down.

Emergency? Skip Ahead

If your site is down right now and you have a recovery key, jump to Recovery Key Method. If you don't have a key, see Manual Recovery.

Before Disaster Strikes

The best disaster recovery starts before anything goes wrong. Set up these safeguards now while your site is working.

Generate a Recovery Key Do This Now

A recovery key lets you restore your site without accessing WordPress admin.

Go to SiteVault > Settings

Access the plugin settings from your WordPress admin.

Find Disaster Recovery section

Scroll down to the Disaster Recovery settings.

Click Generate Recovery Key

A 32-character secure key will be created.

Save the key securely

Store it in a password manager, print it, or email it to yourself. Do NOT save it only on your WordPress site!

Recovery Keys Expire

Keys expire after 24 hours for security. Generate a new one periodically or when you need to recover.

Your Recovery Information Checklist

Store this information somewhere outside your WordPress site:

Method 1: Recovery Key (Easiest)

If you generated a recovery key before the disaster, this is the fastest way to recover.

Using Your Recovery Key PRO

Access the Recovery URL

Visit: https://yourdomain.com/?rb_recovery=YOUR_32_CHAR_KEY

Replace YOUR_32_CHAR_KEY with your actual recovery key.

Recovery Interface Loads

You'll see a standalone recovery interface (works even if WordPress is broken).

Select a Backup

Choose from available backups stored on your server.

Click Restore

The recovery process runs independently of WordPress.

Wait for Completion

Do not close the browser. When done, your site should be restored.

Recovery Key Not Working?

If the key is expired (older than 24 hours), invalid, or the recovery endpoint isn't responding, you'll need to use manual recovery methods below.

Method 2: Manual Recovery (FTP + Database)

If you don't have a recovery key or it's not working, you can manually restore from a backup. This method works even if WordPress is completely broken.

What You'll Need Advanced

  • FTP/SFTP credentials - Host, username, password, port (usually 21 for FTP, 22 for SFTP)
  • Database access - phpMyAdmin through your hosting panel
  • Your backup files - Either on the server, downloaded locally, or in cloud storage
  • An FTP client - FileZilla (free), Cyberduck, or WinSCP
Where to Find Your Credentials

FTP credentials: Check your hosting welcome email, or find them in your hosting panel (cPanel > FTP Accounts, Plesk > FTP Access).

Database credentials: Look in your current wp-config.php file, or check cPanel > MySQL Databases.

Step 1: Connect to Your Server via FTP

Open FileZilla (or your preferred FTP client) and enter your credentials:

  • Host: Your domain (e.g., ftp.yourdomain.com) or server IP
  • Username: Your FTP username (often your cPanel username)
  • Password: Your FTP password
  • Port: 21 for FTP, 22 for SFTP (more secure)

Click Quickconnect. Once connected, navigate to your WordPress directory (usually /public_html/ or /www/).

Step 2: Locate Your Backup Files

SiteVault stores backups in: wp-content/sitevault/

Inside you'll find folders named by date. Each backup contains:

  • backup-files-YYYY-MM-DD.zip - All your WordPress files
  • backup-database-YYYY-MM-DD.sql - Your database export
Can't Find Backups on Server?

Check these alternative locations:

  • Your local computer (if you downloaded backups previously)
  • Cloud storage (Google Drive, Dropbox, S3) if you set up remote storage
  • Email attachments if you configured email notifications with backup links

Step 3: Download and Extract the Backup

Option A: Extract locally (recommended for shared hosting)

  1. Download the backup ZIP file to your computer via FTP
  2. Right-click the ZIP and choose "Extract All" (Windows) or double-click (Mac)
  3. You should see a complete WordPress folder structure (wp-admin, wp-content, wp-includes, etc.)

Option B: Extract on server (if your host supports it)

  1. Log into cPanel > File Manager
  2. Navigate to wp-content/sitevault/
  3. Right-click the ZIP file and select "Extract"
  4. Choose to extract to your WordPress root directory

Step 4: Prepare Your WordPress Directory

Before uploading, decide your approach:

Scenario A: WordPress is broken but files exist
  • Download and save your current wp-config.php (you'll need the database credentials)
  • You can upload backup files directly, overwriting existing files
Scenario B: Fresh server / empty directory
  • You'll need to create a database first (see Step 5a below)
  • Upload all backup files including wp-config.php
  • Edit wp-config.php with your new database credentials
Important: Preserve wp-config.php

If you're restoring to the same server, your existing wp-config.php has the correct database credentials. Don't overwrite it with the backup's wp-config.php unless you're on a new server.

Step 5: Upload Files via FTP

  1. In FileZilla, navigate to your extracted backup folder on the left (Local site)
  2. Navigate to your WordPress directory on the right (Remote site)
  3. Select all files and folders from your backup
  4. Right-click and choose "Upload"
  5. When prompted about existing files, choose "Overwrite" and check "Apply to all"
Large Sites: Be Patient

Uploading thousands of files can take 30-60+ minutes on slow connections. Don't interrupt the transfer. Consider using "Transfer > Process Queue" to resume if disconnected.

Step 5a: Create Database (Fresh Server Only)

If you're restoring to a new hosting account, you need to create a database first:

  1. Log into cPanel and find MySQL Databases
  2. Create a new database (e.g., yourdomain_wp)
  3. Create a new database user with a strong password
  4. Add the user to the database with All Privileges
  5. Note down: database name, username, and password

Step 6: Import Your Database

This is the most critical step - your database contains all your content, settings, and users.

Via phpMyAdmin:
  1. Log into cPanel and open phpMyAdmin
  2. Select your WordPress database from the left sidebar
  3. If restoring over existing data: Click the Operations tab, scroll to "Remove database", and delete all tables first (or select all tables and choose "Drop")
  4. Click the Import tab at the top
  5. Click "Choose File" and select your .sql backup file
  6. Leave settings as default (Format: SQL, Charset: utf8mb4)
  7. Click Go to start the import
Import Size Limits

phpMyAdmin typically limits imports to 50-100MB. If your database is larger:

  • Use cPanel's MySQL Database Wizard import feature
  • Contact your host to import the file server-side
  • Use a tool like Adminer or BigDump

Step 7: Update wp-config.php

If you're on a new server or created a new database, update wp-config.php with your credentials:

  1. Download wp-config.php from your server via FTP
  2. Open it in a text editor (Notepad++, VS Code, or even regular Notepad)
  3. Find and update these lines:
// Database name - the one you created in cPanel define('DB_NAME', 'your_database_name'); // Database username define('DB_USER', 'your_database_user'); // Database password define('DB_PASSWORD', 'your_database_password'); // Database host - usually localhost, but some hosts differ define('DB_HOST', 'localhost');
  1. Save the file and upload it back to your server, overwriting the existing one
Table Prefix

Also check that $table_prefix matches your database tables. It's usually wp_ but might be different if you customized it. Look at your tables in phpMyAdmin to confirm (e.g., wp_posts, wp_options).

Step 8: Test Your Site

Visit your website. If everything worked, you should see your restored site!

If you see errors:
  • "Error establishing database connection" - Double-check wp-config.php credentials
  • White screen - Enable debug mode (add define('WP_DEBUG', true); to wp-config.php)
  • 500 Internal Server Error - Check file permissions (755 for folders, 644 for files)
  • Redirects to old domain - Update site URL in database (see URL Replacement Issues)
Post-restore checklist:
  • Log into WordPress admin
  • Visit Settings > Permalinks and click "Save" (refreshes rewrite rules)
  • Check that images load correctly
  • Test a few pages and posts
  • Verify plugins are working

Method 3: Restore from Cloud Storage

If your server was completely wiped but you have backups in cloud storage, you can recover.

Recovering from Cloud PRO

Access Your Cloud Storage

Log into Google Cloud, Amazon S3, Dropbox, or OneDrive where your backups are stored.

Download the Latest Backup

Find the most recent backup (date in filename) and download both the ZIP file and SQL file.

Set Up Fresh WordPress (if needed)

If your server is wiped, install fresh WordPress from wordpress.org first.

Upload and Import

Upload extracted backup files via FTP and import database via phpMyAdmin (see manual method above).

Reactivate SiteVault

Once restored, SiteVault should be in your plugins. Activate and reconnect cloud storage.

Common Disaster Scenarios

Site Hacked / Malware Infection

  1. Download a backup from BEFORE the infection (check file dates)
  2. Delete all WordPress files (keep wp-config.php temporarily)
  3. Restore from clean backup
  4. Change ALL passwords (WordPress admin, FTP, database, hosting)
  5. Update ALL plugins, themes, and WordPress core
  6. Install a security plugin (like GuardPress)
Don't Restore a Hacked Backup!

Make sure your backup is from before the hack occurred. Check backup dates against when you first noticed the issue.

Plugin/Theme Update Broke Site

  1. Connect via FTP
  2. Navigate to wp-content/plugins/ or wp-content/themes/
  3. Rename the problematic plugin/theme folder (e.g., plugin-name to plugin-name-disabled)
  4. Site should load now - go to Plugins or Themes in admin
  5. Delete the broken plugin/theme and reinstall a working version

Database Corrupted

  1. Try repairing via phpMyAdmin: select database, click "Repair table" for each table
  2. If repair fails, restore from your most recent database backup
  3. If no database backup, check if your host has automatic backups

Or via wp-config.php (temporary):

define('WP_ALLOW_REPAIR', true);

Then visit: yourdomain.com/wp-admin/maint/repair.php

Remove the line after repair!

White Screen of Death (WSOD)

  1. Enable debug mode in wp-config.php to see actual error
  2. Check wp-content/debug.log for errors
  3. Usually a plugin or theme issue - rename suspect folders via FTP
  4. If nothing works, restore from backup
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);

Hosting Account Suspended/Deleted

  1. Contact your host to understand the situation
  2. If recoverable, ask them to restore or give you files
  3. If not, use cloud backups to restore on new hosting
  4. Set up on new hosting: install WordPress, import backup
  5. Update DNS to point to new server

Recovery Troubleshooting

Backup File is Encrypted

If you enabled encryption on your backups, you'll need your encryption key to restore. This key was set when you configured encryption in SiteVault settings. Without it, encrypted backups cannot be restored.

Database Import Fails

Shared Hosting: Large Database Imports

If phpMyAdmin times out or rejects your SQL file:

  • Split the SQL file into smaller chunks (under 50MB each)
  • Use your host's "Import Database" tool in cPanel if available
  • Contact your host's support - they can often import large files server-side
  • Some hosts provide Adminer or BigDump tools for large imports

Site Works But Admin Locked Out

Reset your password via phpMyAdmin:

UPDATE wp_users SET user_pass = MD5('newpassword123') WHERE user_login = 'yourusername';

Replace newpassword123 with your new password and yourusername with your admin username.

Recovery Key URL Returns 404

Database Prefix Mismatch After Restore

If your backup was from a site with a different table prefix (e.g., vIP_ vs wp_), you need to update the SQL before importing:

# Replace old prefix with your current prefix sed -i "s/vIP_/wp_/g" database.sql # Then import mysql database_name < database.sql

Also verify $table_prefix in wp-config.php matches your database tables.

Troubleshooting Commands

Useful commands for diagnosing recovery issues (requires SSH access to VPS/dedicated servers).

Server Diagnostics Advanced

# Check PHP errors in real-time tail -f /var/log/nginx/error.log # Nginx tail -f /var/log/apache2/error.log # Apache # Test if site responds curl -I https://yoursite.com/ # List active plugins wp plugin list --status=active # Check database tables exist wp db tables | wc -l # Search-replace URLs (dry run first) wp search-replace 'https://oldsite.com' 'https://newsite.com' --dry-run # Search-replace for real wp search-replace 'https://oldsite.com' 'https://newsite.com' --all-tables # Fix file permissions find /path/to/wordpress -type d -exec chmod 755 {} \; find /path/to/wordpress -type f -exec chmod 644 {} \; # Fix ownership chown -R www-data:www-data /path/to/wordpress
Shared Hosting

If you don't have SSH access, these alternatives work:

  • Error logs: Check cPanel > Error Log or hosting panel equivalent
  • URL replacement: Use the "Better Search Replace" plugin
  • Permissions: Use FTP client (FileZilla) right-click > File Permissions
  • Ownership: Contact your host's support

WooCommerce Recovery

If recovering a WooCommerce site, verify data after restore:

# Check product count wp post list --post_type=product --format=count # Check orders wp post list --post_type=shop_order --format=count # Activate WooCommerce BEFORE theme (if theme depends on it) wp theme activate twentytwentyfive wp plugin activate woocommerce wp theme activate your-woo-theme
Theme Activation Order

If your theme uses WooCommerce functions (like is_checkout()), you must activate WooCommerce BEFORE the theme, or you'll get fatal errors.

After Recovery: Next Steps

Immediate Actions

Security Actions (If Hacked)

Prevent Future Disasters

Bookmark This Page

Add this page to your bookmarks or save it as a PDF. You'll want access to these instructions even when your site is completely down.

Still Need Help?

If you're unable to recover your site using these methods:

Shared Hosting: Check Your Host's Backups

Most shared hosting providers keep automatic backups (even if you didn't configure any):

  • cPanel hosts: Check "JetBackup" or "Backup Wizard" in cPanel
  • SiteGround: Site Tools > Security > Backups
  • Bluehost/HostGator: Contact support to request a restore
  • GoDaddy: My Products > Web Hosting > Manage > Restore

These are often free and can restore your site even without SiteVault!

For SiteVault Pro customers, contact our support team for emergency recovery assistance.