How to Update WordPress Plugins and Themes Safely
WordPress updates are essential for security, but a careless update can break a live site. Follow this routine — backup, staging, update order, verification — every time.
Home / Blog / WordPress and Performance / How to Back Up and Restore WordPress
A WordPress site can be lost in minutes — a bad update, a hacked plugin, a server failure, a mistaken deletion — and rebuilt only if a good backup exists. Yet most site owners discover their backup was incomplete, outdated or stored on the same server that failed, exactly when they need it most.
This guide covers what a complete WordPress backup contains, how to create one, where to store it, and — most importantly — how to restore it and verify the restore works before disaster strikes.
A WordPress site is two things, and a backup must include both:
wp-content/uploads folder with all your media. The configuration file wp-config.php is also part of this, since it holds the database credentials.A backup that contains only one of the two is not a backup. This is the most common mistake, and it is usually made by people who relied on a file-only backup tool or a database-only export and never checked.
Frequency should match how often the site changes:
| Site type | Suggested frequency |
|---|---|
| Brochure site, rarely updated | Weekly |
| Blog with regular posts | Daily, or after each publishing session |
| WooCommerce or membership site | Daily at minimum; hourly for high-volume shops |
| Any site | Before every update, migration or major change |
Automated, scheduled backups are the only reliable approach. A manual backup routine depends on someone remembering, and people forget — usually in the same week something breaks. Schedule backups to run automatically and store them off-site, and set up a notification if a scheduled backup fails.
Option A: A backup plugin. Plugins such as UpdraftPlus create full backups (files plus database) on a schedule and send them to remote storage such as Google Drive, Dropbox or Amazon S3. This is the right choice for most site owners: no command-line work, scheduled runs, and a one-click restore from the WordPress admin. Use a well-maintained plugin from the official WordPress.org directory, keep it updated, and check that its restore feature is included in the version you use — some plugins reserve one-click restore for paid versions.
Option B: Your host’s backup system. Many hosts take automatic backups of the whole account. These are a useful safety net, but do not rely on them alone: check the retention period (how many days back you can restore), whether you can download the backup yourself, and whether restoring is self-service or requires a support ticket. [TO BE CONFIRMED: Offshore Hosting’s backup frequency, retention period and restore process for WordPress plans.]
Option C: Manual backup with WP-CLI or the command line. For those with server access, this is fast and scriptable:
# Export the database
wp db export backup-2026-10-25.sql
# Archive the files (from the site root)
tar -czf site-files-2026-10-25.tar.gz --exclude='wp-content/cache' .
Always exclude cache directories and other transient data from file archives — they inflate the backup size and are regenerated automatically.
A note on phpMyAdmin: WordPress’s own documentation also describes exporting the database through phpMyAdmin. It works, but for large databases it is slow and can time out. Use it for small sites, and prefer a plugin or WP-CLI for anything substantial.
A backup stored on the same server as the site protects you against accidental deletion and bad updates — but not against server failure, a hacked account or a billing problem. Follow the 3-2-1 rule as a minimum:
Practical setup for most WordPress owners: the backup plugin sends each scheduled backup to a cloud storage account, and you keep a recent copy downloaded locally as well. Encrypt backups that contain customer data, and make sure the storage account itself is protected with a strong password and two-factor authentication — a backup containing your database is a copy of your entire site, including hashed user passwords.
Also check retention: keeping every backup forever wastes storage and money. A sensible rotation is daily backups for the last 7 days, weekly backups for the last month, and monthly backups for the last few months. Make sure at least one backup predates any recent change, so you can restore to a point before a problem appeared.
Restoring is the part almost nobody practices — and the part that matters. There are two scenarios.
This is the common case: a bad plugin update, a corrupted theme, or content that was deleted by mistake. If you can still reach the WordPress admin, restore through your backup plugin: select the backup, choose a full restore (files plus database), and let the plugin do the work. Warning: restoring the database overwrites the current database. Anything published or ordered since the backup was taken will be lost. If the problem is only in the files (a broken theme, for example), restore the files only and leave the database alone.
If the WordPress admin is inaccessible, restore manually:
bash
mysql -u username -p database_name < backup-2026-10-25.sqlwp-config.php. Confirm the database name, user, password and host match the new database. If you moved to a different domain, you will also need to update the site URL — the wp search-replace command in WP-CLI handles this safely on the restored copy.After either scenario, verify the restore: load the homepage, a post, and the admin area; log in; check that recent content is present; and test any forms or checkout flow. A restore that “completed” but left the site half-working is not a successful restore.
This is the single most valuable habit in this guide. At least once a quarter — and after any change to your backup setup — perform a test restore to a staging site (see how to build a safe WordPress staging workflow). The test answers the only question that matters: does this backup actually bring the site back?
A test restore catches the failures that silent backup jobs hide: a plugin that stopped including the uploads folder after an update, a backup that is too large for the restore tool to handle, a database export that silently truncated, or credentials that changed. Finding any of these during a calm afternoon is a minor fix. Finding them during an outage is a crisis.
Keep a short log: date of the test restore, which backup was used, whether it succeeded, and how long it took. That log is also useful evidence if you ever need to demonstrate due diligence to a client or insurer.
Backups and updates are linked. Every core, plugin or theme update should be preceded by a fresh backup — even if a scheduled backup ran an hour ago. The reason is simple: the backup you need is the one taken immediately before the change that broke things. This is part of a safe update routine; see how to update WordPress plugins and themes safely.
WordPress updates are essential for security, but a careless update can break a live site. Follow this routine — backup, staging, update order, verification — every time.
A staging site is a private copy of your website where updates and changes can break safely. Learn how to set one up, keep it in sync, and push changes to live without surprises.
Core Web Vitals are three numbers Google uses to judge how your WordPress site feels to real visitors. This guide explains each metric, the thresholds that matter, and how to fix them.