Backup & Restore
A complete WordPress backup requires TWO components: website files and the MySQL database. Unlike static HTML sites, WordPress pages are generated dynamically from both. This guide covers manual backup methods (FTP, cPanel, phpMyAdmin), automated solutions (WP-DBManager, UpdraftPlus), and complete restoration procedures.
Prerequisites
- FTP/SFTP credentials or cPanel access
- phpMyAdmin access for database operations
- Sufficient local storage for backup files
Step-by-Step Guide
Understand What Must Be Backed Up
A WordPress site has two critical components:
WEBSITE FILES: Located on server, accessed via FTP or cPanel File Manager
MYSQL DATABASE: Accessed via phpMyAdmin, stores all content and settings
BOTH are required for a complete, restorable backup
Files without database = empty site structure
Database without files = no themes, plugins, or media
Identify Essential Files for Backup
/wp-content/ folder (HIGHEST PRIORITY): Contains uploads, plugins, themes
wp-config.php (CRITICAL): Database credentials, security keys, cannot be regenerated
.htaccess (ESSENTIAL): Permalink rules, redirects, security rules
WordPress core files (/wp-admin/, /wp-includes/) can be re-downloaded and are optional
The wp-content folder contains everything unique to YOUR site
Manual File Backup via FTP (FileZilla)
Connect to your web host using FTP client (FileZilla)
Create a local folder: Website Backups > [site-name] > [date]
Navigate to WordPress root directory (usually public_html)
Download: .htaccess, wp-config.php, and entire wp-content folder
Verify all files exist locally before proceeding
Manual File Backup via cPanel
Log in to cPanel > File Manager
Navigate to WordPress installation directory
Right-click wp-content > Compress > Create zip archive
Select and download: .htaccess, wp-config.php, wp-content.zip
Important: Downloaded .htaccess may be renamed to "htaccess" - fix during restore
Database Backup via phpMyAdmin
Log in to cPanel > phpMyAdmin
Identify correct database (check DB_NAME in wp-config.php)
Click the database name in the left panel
Click Export tab > Quick export method > Format: SQL
Click Go to download the .sql file
Store in your backup folder alongside the files
// To find your database name, check wp-config.php for:
define( 'DB_NAME', 'your_database_name' );Set Up Automated Database Backups (WP-DBManager)
Install plugin: WP-DBManager by Lester Chan
Go to Database > DB Options
Configure backup schedule (weekly recommended)
Enable email delivery of backups
Database backups are small (2-10MB) and easy to store
This is your safety net even if nothing else is backed up
Set Up Full Automated Backups (UpdraftPlus)
Install plugin: UpdraftPlus (free version)
Go to Settings > UpdraftPlus Backups
Click "Backup Now" for immediate backup
Configure remote storage: Dropbox, Google Drive, etc.
Set schedule matching your update frequency
Note: wp-config.php is NOT included - backup manually once
Restore Files via FTP
Connect to server via FTP
Navigate to WordPress root directory
Upload backup files: wp-content, .htaccess, wp-config.php
Choose Overwrite when prompted
After restore: plugins may appear but be inactive (normal)
Media Library will be empty until database is restored
Restore Database via phpMyAdmin
Log in to cPanel > phpMyAdmin
Select the correct database
Click "Check all" to select all tables
From dropdown, choose "Empty" to clear existing data
Click Import tab > Choose File > select your .sql backup
Click Go and wait for success message
Site should now be fully restored to backup state
Verification Checklist
- Backup includes: wp-content, wp-config.php, .htaccess, and .sql database
- Backup files are stored in multiple locations (local + cloud)
- Automated backups are scheduled and running
- Test restore on staging site to verify backup integrity
- Media Library and plugins fully functional after restore
Pro Tips
- Follow the 3-2-1 rule: 3 copies, 2 different media, 1 offsite
- Match backup frequency to update frequency: daily updates = daily backups
- Keep backups for at least 3 months
- Use WP-DBManager for emailed database backups + UpdraftPlus for full cloud backups
- Test your restore process before you actually need it
- WordPress reinstall + restore is the nuclear option for infected sites