Written by 12:49 pm Beginner’s Guide, Getting Started with WordPress Views: 1

How to Restore Your WordPress Site From a Backup in 15 Minutes (Even If the Site Is Down)

Your WordPress site is down — a hack, bad update, or accidental deletion. If you have a backup, you can get back online in 15 minutes. This guide covers 5 restore scenarios: plugin restore with UpdraftPlus or Duplicator, manual FTP + phpMyAdmin restore when locked out, host one-click restore via cPanel or managed hosts, database-only restore for DB corruption, and fresh install with content merge. Includes troubleshooting for URL issues, broken permalinks, serialized data corruption, and a post-restore verification checklist.

Keyboard keys spelling BACKUP on a coral surface, representing WordPress backup and restore
Keyboard keys spelling BACKUP on a coral surface, representing WordPress backup and restore

Your WordPress site is down. Maybe you got hacked, or a bad plugin update wiped out your theme, or you accidentally deleted something important. The good news: if you have a backup, you can get back online in 15 minutes. I’m going to walk you through exactly how to do it, step by step, no matter which situation you’re in.

This guide covers five different restore scenarios, from the easiest (using a backup plugin’s built-in restore button) to the more hands-on approaches you need when your dashboard is completely locked. Pick the scenario that matches your situation and follow along. At the end, I also cover the most common post-restore problems and how to verify everything actually came back correctly.

When Do You Actually Need to Restore a Backup?

Before we get into the how, let’s confirm you actually need a full restore. Most people reach for the restore button in one of these situations:

  • Site got hacked — you see spam pages, redirects to sketchy URLs, or your host flagged suspicious files
  • Bad plugin or theme update — the update broke something and deactivating the plugin didn’t fix it
  • Accidental deletion — a page, post, or the entire uploads folder is gone
  • Server migration gone wrong — the site looks broken on the new host. If you’re dealing with a full migration rather than just a restore, see our guide on how to migrate your WordPress site without downtime.
  • Database corruption — WordPress shows a database connection error or tables are showing errors
  • Server hardware failure — your host had a hardware failure or data center issue and your files are gone

If any of those match what you’re dealing with, you’re in the right place. Let’s get your site back.

One thing to check first: do you actually need to restore everything, or just specific files? If you accidentally deleted a single post or page, your database is fine — you just need to restore that one item from a database backup. If a specific image is missing, you only need the uploads folder. Understanding the scope of the problem can save you time because you don’t have to restore what isn’t broken.


Before You Restore: A Quick Checklist

Before you start any restore process, run through this quick checklist. It will save you from making a bad situation worse.

  • Find your most recent good backup. “Most recent” and “good” are both important. The most recent backup might have been taken after the problem started, in which case it contains the corrupted or hacked files. Find the last backup that predates the problem.
  • Know where your backups are stored. Are they on your server, in Google Drive, Dropbox, S3, or on your local computer? You need to know where to find them before you can use them.
  • Write down your database credentials. Open your wp-config.php file and note the DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST values. You might need these during a manual restore.
  • Put your site in maintenance mode if possible. If your dashboard is still accessible, activate maintenance mode so visitors don’t see broken pages while you restore. If the dashboard is down, don’t worry about this step.
  • Make a note of your current state. Before restoring, take a quick screenshot of any error messages. This can help if the restore doesn’t fix the issue and you need to troubleshoot further.

Scenario 1: Restore With UpdraftPlus or Duplicator (The Happy Path)

Best for: Sites where the WordPress dashboard is still accessible
Estimated time: 10 to 15 minutes
Difficulty: Beginner

If you used UpdraftPlus or Duplicator to create your backups and your wp-admin is still loading, this is the cleanest path. I recommend UpdraftPlus for most beginners because the restore interface is very clear and it walks you through each component of the restore separately.

Restoring with UpdraftPlus

  1. Log in to your WordPress dashboard and go to Settings > UpdraftPlus Backups.
  2. Click the Existing Backups tab. You’ll see a list of backups sorted by date.
  3. Find the backup you want to restore (usually the one before the problem started) and click Restore.
  4. UpdraftPlus will ask which components to restore: Database, Plugins, Themes, Uploads, and Others (wp-content). Check all of them unless you only want to restore specific parts.
  5. Click Next and wait while UpdraftPlus downloads and unpacks the backup files. This can take a few minutes on shared hosting.
  6. When it says “Restore successful”, visit your site in a new tab to confirm everything is back.

Common pitfall: If UpdraftPlus says it can’t find the backup files, they may be stored off-site (Google Drive, Dropbox, S3). Click Rescan remote storage to pull them back first. If the restore fails partway through and your site becomes more broken, don’t panic — use Scenario 2 to do a manual restore instead.

Restoring with Duplicator

  1. Go to Duplicator > Packages in your dashboard.
  2. Find the package (backup) you want and click Restore on the right side.
  3. Duplicator Pro handles the restore in-place. Follow the wizard prompts — it will walk you through each step with clear instructions.
  4. For Duplicator free, you typically download the archive and installer.php, then run the installer by visiting installer.php in your browser. See Scenario 5 for that process since it’s similar to a fresh install.

Common pitfall: Duplicator free does not have an in-place restore. If you’re on the free version and locked out, use Scenario 2 instead. Also, both UpdraftPlus and Duplicator sometimes struggle with very large sites (over 2 GB) on shared hosting due to PHP memory and execution time limits. If you hit timeouts, ask your host to temporarily increase these or use Scenario 3 (host-panel restore) if available.


Scenario 2: Manual File + Database Restore via FTP and phpMyAdmin

Best for: Locked out of wp-admin, white screen of death, or hacked sites
Estimated time: 20 to 30 minutes
Difficulty: Intermediate

This is the approach you use when WordPress itself is broken and you can’t access the dashboard. You’ll need FTP credentials and access to your hosting control panel. Most hosts provide both in your hosting account area — look for a section called “FTP Accounts” for the credentials and “phpMyAdmin” under Databases.

Step 1: Restore your files via FTP

  1. Open FileZilla (or any FTP client) and connect to your server using your FTP credentials.
  2. Navigate to your site’s root directory (usually public_html or www).
  3. Extract your backup ZIP/tar.gz on your local computer first. Make sure you have enough disk space — a 500 MB backup often extracts to 2+ GB.
  4. Upload the extracted files to your server, overwriting the existing files. This replaces any corrupted or hacked files with your clean backup versions.
  5. Pay special attention to wp-content/uploads — this folder holds all your images and media. Make sure it uploads completely.

Common pitfall: FTP transfers can time out on large upload folders. If your uploads directory is big (over 500 MB), consider using your host’s File Manager in cPanel instead, where you can upload a ZIP and extract it server-side. That approach is much faster because the files move within the server instead of traveling over the internet.

Step 2: Restore the database via phpMyAdmin

  1. Log in to your hosting control panel (cPanel, Plesk, etc.) and open phpMyAdmin.
  2. Select your WordPress database from the left sidebar. The database name is in your wp-config.php file on the line that says DB_NAME.
  3. Click the Import tab at the top.
  4. Click Choose File and select your .sql backup file.
  5. Scroll down and click Import. phpMyAdmin will import the database and show a success message.

Important: Before importing, you may need to drop (delete) the existing tables. Go to the Structure tab, select all tables, and choose Drop from the dropdown. Only do this if you’re sure you have a good backup ready to import.

Common pitfall: phpMyAdmin has a default file upload limit (often 50 MB or 128 MB). If your SQL file is larger, you’ll need to use a tool like BigDump or ask your host to import it via the command line. Many hosts will do this for free if you ask support. Alternatively, you can split the SQL file using a tool like SQLDumpSplitter and import each part separately.


Scenario 3: Host-Panel One-Click Restore (cPanel and Managed Hosts)

Best for: Sites on hosts that include automated backups (SiteGround, WP Engine, Kinsta, Cloudways)
Estimated time: 5 to 10 minutes
Difficulty: Beginner

Many hosting providers take automatic backups and let you restore with a few clicks from your hosting dashboard. This is often the fastest option, and it doesn’t require touching FTP or phpMyAdmin at all. Even if your WordPress dashboard is completely broken, you can still access your hosting panel to run a restore.

Restoring in cPanel (JetBackup or Softaculous)

  1. Log in to cPanel and find JetBackup (most common) or look for a Backups section.
  2. Click Full Backup Restore or look for your domain in the list.
  3. Select the restore point (date) you want. Most cPanel hosts keep 7 to 30 days of backups.
  4. Click Restore and confirm. The restore runs on the server side, so it’s fast.
  5. Once done, visit your site. Your host usually sends a confirmation email too.

Restoring on managed hosts (WP Engine, Kinsta, Cloudways)

  1. Log in to your hosting dashboard (MyKinsta, WP Engine portal, Cloudways panel).
  2. Find your site and look for Backups or Activity Log.
  3. Click the restore point you want. Managed hosts often label backups by date and time, and some label them automatically before any update.
  4. Click Restore to this point (exact wording varies by host).
  5. Wait a few minutes. Managed host restores happen at the server level and are very fast.

Common pitfall: Some managed hosts restore to a staging environment first rather than overwriting your live site. Check your host’s documentation. With WP Engine, for example, you restore to a staging site and then push to production. With Kinsta, you can restore directly to live or to staging. With Cloudways, the restore overwrites the current application directly, so make sure you have the right restore point selected before you confirm.


Scenario 4: Database-Only Restore (When Your Files Are Fine)

Best for: Database connection errors, corrupted tables, or content you accidentally deleted
Estimated time: 10 to 15 minutes
Difficulty: Intermediate

Sometimes your WordPress files are perfectly fine but your database has a problem. This happens after failed updates that interrupted a database migration, after certain hacks that inject spam into the database without touching files, or simply after accidentally deleting content that only lives in the database (posts, pages, user accounts).

In this case, you only need to restore the database, not the entire site. This is faster and safer because it leaves your current theme files, plugins, and uploads untouched. For more context on what lives where in a WordPress installation, our WordPress migration guide has a clear breakdown of site structure.

How to do a database-only restore

  1. If you’re using UpdraftPlus, go to Settings > UpdraftPlus Backups > Existing Backups, click Restore on the right backup, and this time check only Database.
  2. If you’re doing it manually, open phpMyAdmin, select your database, drop the existing tables (Structure tab, select all, drop), then import your SQL backup file using the Import tab.
  3. After the import, visit your site. If your theme and plugins were fine before, everything should come back correctly.
  4. If you just want to recover a deleted post rather than restoring the entire database, some hosts offer a phpMyAdmin-based row recovery. You can find the post in the wp_posts table from a backup SQL file and insert just that row. This is advanced, but it avoids overwriting the entire database.

Common pitfall: If your backup SQL file and your current WordPress files are from different times, you might run into plugin version mismatches. For example, if a plugin updated its database schema and you restore an old database version, that plugin may throw errors. The fix is usually to deactivate and reactivate the plugin, which triggers the database upgrade again. You can also run wp core update-db via WP-CLI to update all database tables to the current schema.


Scenario 5: Fresh Install Plus Merging Back Your Content

Best for: Severe hacks, completely corrupted installations, or moving to a new host
Estimated time: 30 to 60 minutes
Difficulty: Intermediate

Sometimes the cleanest path forward is to start fresh and bring your content in from the backup rather than restoring the whole thing. This is especially true if your site was hacked and you’re worried that the backup itself contains malware. A fresh install gives you a clean slate.

Steps for a fresh install and content merge

  1. Install a fresh copy of WordPress. Use your host’s one-click WordPress installer or download WordPress from wordpress.org and upload it via FTP. Use a new database for the fresh install.
  2. Install your theme and plugins fresh. Don’t copy them from the backup. Download them fresh from the WordPress repository or from where you purchased them. This ensures you’re starting with clean, uncompromised code.
  3. Import the uploads folder from your backup. Your media files (images, PDFs, videos) are almost never infected. Connect via FTP, navigate to wp-content/uploads, and replace the fresh install’s uploads folder with your backup version.
  4. Import your content via the database. In phpMyAdmin, import your backup database. Then update your wp-config.php to point to the new database.
  5. Alternatively, use the WordPress XML export. If your backup includes a WordPress export file (.xml), go to Tools > Import and use the WordPress Importer. This is slower but very safe since it imports only content, not any code.

Common pitfall: If you import an old database into a fresh WordPress install that uses different table prefixes, nothing will work. Check your old wp-config.php for the $table_prefix value and make sure your new wp-config.php uses the same prefix. Also note that if you installed WordPress in a subdirectory in the fresh install but the backup was in the root (or vice versa), you’ll need to update the siteurl and home values in the wp_options table to match.


Troubleshooting After the Restore

Even after a successful restore, you might run into a few common issues. Here’s how to fix them.

URL problems after restoring to a different domain or server

If you restored from a backup that was on a different domain or subdomain (for example, from a staging site to your live site), WordPress still has the old URLs baked into the database. Pages won’t load correctly, images will be broken, and links will point to the wrong place.

The fix is a database search-and-replace. The safest tool for this is WP-CLI:

wp search-replace 'https://staging.yourdomain.com' 'https://yourdomain.com' --all-tables

If you don’t have WP-CLI access, use the Search Replace & Replace DB plugin (better-search-replace) from the WordPress repository. It handles serialized data correctly, which is critical — a plain SQL search-and-replace can break serialized PHP arrays and objects.

Broken permalinks after a restore

If your pages are returning 404 errors or the URL structure looks wrong, go to Settings > Permalinks in your dashboard and click Save Changes without changing anything. This regenerates the .htaccess file and usually fixes permalink issues immediately.

If permalinks still don’t work after that, check whether your .htaccess file exists in the root directory. If it doesn’t, create it manually with the default WordPress rewrite rules. You can get the correct content by going to Settings > Permalinks, scrolling to the bottom, and copying the code from the “If your .htaccess file were writable” section.

Missing plugins after restore

If you see “Plugin file does not exist” errors in wp-admin, the plugin files weren’t included in your backup or didn’t restore correctly. Go to Plugins > Add New, search for the plugin by name, and reinstall it. Your settings are stored in the database and will come back automatically once the plugin is reinstalled.

If you’re missing premium plugins that aren’t on the WordPress repository, you’ll need to reupload them manually via Plugins > Add New > Upload Plugin or via FTP. Keep your premium plugin ZIP files in a safe location (like Google Drive) specifically for situations like this.

Serialized data corruption

This is one of the trickier issues. WordPress stores many settings as serialized PHP data in the database — things like widget settings, theme options, and plugin configurations. If you do a search-and-replace with a tool that doesn’t understand serialization, it changes the string lengths but doesn’t update the length metadata, which corrupts the data.

Signs of serialized data corruption: your theme options are blank, widgets disappeared, or you see PHP errors about unserialization failing.

The fix: use WP-CLI’s search-replace command (it handles serialized data correctly) or the Better Search Replace plugin. Avoid doing raw SQL REPLACE() queries on WordPress databases. If you’ve already run a plain SQL replace and corrupted data, you’ll need to restore from a backup that predates the bad replace operation.

White screen of death after restore

If you see a blank white page after restoring, it’s usually a PHP error that WordPress is suppressing. Enable WP_DEBUG in wp-config.php by adding or changing this line:

define( 'WP_DEBUG', true );

Reload the page and you’ll see the actual error message. The most common causes after a restore are a plugin that requires a newer PHP version than your server runs, a theme file that has a syntax error in the backup, or a database table that didn’t import correctly. Once you know the specific error, it’s usually straightforward to fix.


How to Verify the Restore Worked Correctly

Don’t declare victory until you’ve done these checks. I’ve seen restores that looked successful but had silent problems that only showed up days later.

  • Test a post and a page. Open a post and a page on the front end and confirm they load correctly with images intact.
  • Check the uploads folder. In your dashboard, go to Media > Library. If images show as broken or missing, the uploads folder didn’t restore completely.
  • Flush your cache. If you use a caching plugin (WP Rocket, W3 Total Cache, LiteSpeed Cache), go to the plugin settings and clear all caches. Some hosts also have server-level caches — clear those too from your hosting panel.
  • Verify your XML sitemap. Go to yourdomain.com/sitemap.xml or yourdomain.com/sitemap_index.xml and confirm it loads and lists your pages and posts. A broken sitemap can affect your search rankings.
  • Test a contact form or checkout. If you have a contact form or WooCommerce store, submit a test entry or place a test order to make sure forms and email are working.
  • Check wp-admin is accessible. Try logging out and logging back in to confirm authentication is working correctly.
  • Verify user accounts. If user data was the reason for the restore, log in as a test user to confirm accounts are intact and permissions are correct.
  • Check your security plugin dashboard. If you run Wordfence, Sucuri, or another security plugin, open its dashboard and run a scan to confirm no threats remain after the restore.

Frequently Asked Questions About WordPress Restore

Can I restore WordPress to a different domain?

Yes, but you need to run a search-and-replace on the database afterward to update all the old domain references to the new domain. Use WP-CLI’s wp search-replace command or the Better Search Replace plugin. Also update your wp-config.php if needed, and check that your DNS is pointing to the new server.

Will restoring a backup delete my current posts and content?

Yes, a full database restore replaces all content with whatever was in the backup. Any posts, pages, or settings you created after the backup was taken will be gone. This is why it’s important to identify when the problem started and choose a backup from just before that point — you minimize the amount of content you lose.

How do I restore a WordPress site without access to the admin panel?

Use Scenario 2 (manual FTP + phpMyAdmin restore) or Scenario 3 (host-panel restore). Both work entirely from outside WordPress. You only need your FTP credentials and hosting panel login — you don’t need wp-admin to be working at all.

Can I restore just a single page or post from a backup?

Yes, but it requires a bit of database work. Open your backup SQL file in a text editor and search for the post title to find the relevant rows in wp_posts and wp_postmeta. Copy those rows and insert them into your live database via phpMyAdmin. This is faster than a full restore when you only lost one piece of content.

My restore seems successful but images are still broken. What happened?

The uploads folder probably didn’t restore completely. FTP transfers sometimes skip files silently, and plugins sometimes only restore the database without the media files. Go to Media > Library and check which images are missing, then manually upload or re-restore just the uploads folder from your backup.


How to Avoid Needing an Emergency Restore Next Time

The best restore is one you never need. If today’s experience taught you anything, it should be that having a recent, verified backup is the most important thing you can do for your WordPress site.

For a complete walkthrough of backup strategies — including which plugins to use, how often to back up, and where to store your backups off-site — read our companion guide: How to Back Up Your WordPress Site the Right Way in 2026. It covers everything from UpdraftPlus setup to incremental backups and remote storage options.

A few principles that will save you from future emergencies:

  • Back up before every update. Whether it’s a WordPress core update, a plugin update, or a theme update, run a backup first. Some managed hosts do this automatically, but verify yours does.
  • Store backups off-site. A backup on the same server as your site doesn’t protect you from server failures. Use Google Drive, Dropbox, Amazon S3, or a dedicated backup service like VaultPress.
  • Test your restores. A backup you’ve never tested is a backup you can’t trust. Every few months, do a test restore to a staging environment to confirm the process works and the files are complete.
  • Run a security audit regularly. If your site was hacked, a restore gets you back online but doesn’t fix the underlying vulnerability. After restoring, run a WordPress security audit to find and close the entry point.

Quick Reference: Which Restore Method to Use

Your situationUse this scenarioTime needed
Dashboard works, have UpdraftPlus/DuplicatorScenario 110 to 15 min
Dashboard locked out, have FTP accessScenario 220 to 30 min
Your host has automated backupsScenario 35 to 10 min
Files are fine, only database is corruptScenario 410 to 15 min
Site was hacked, want a clean startScenario 530 to 60 min

Wrapping Up

Restoring a WordPress site from a backup is one of those skills you hope you never need but are very glad to have when something goes wrong. Whether you’re using a plugin restore, doing it manually via FTP and phpMyAdmin, or relying on your host’s one-click restore, the process is manageable if you take it step by step.

The key is having a solid backup before disaster strikes. If you don’t have a backup strategy in place yet, that’s the single most important thing to fix today. A restore only works if the backup exists.

If you run into trouble during any of these steps, the Wbcom Designs team offers WordPress support and maintenance services and can walk you through the process or handle the restore for you.

Have questions about your specific situation? Drop them in the comments and I’ll help you figure out the right path forward.

Visited 1 times, 1 visit(s) today

Last modified: April 18, 2026

Close