What this problem looks like
Restore order matters: files first or database first both work if you avoid using the site mid-restore. Many hosts offer one-click snapshot restore that beats manual imports when the whole server is intact.
Partial restores, such as posts only or plugins only, need matching database rows. Importing posts SQL without uploads breaks featured images.
Full restore on the same domain
- Delete or rename current wp-content if it is corrupted.
- Upload backup wp-content via SFTP.
- Drop all tables or use a fresh database, then import the SQL file.
- Log into wp-admin and save Settings → Permalinks.
Import database with phpMyAdmin
Large imports may exceed upload limits. Split the file, use SSH mysql command, or ask the host to import for you.
mysql -u DB_USER -p DB_NAME < ~/backups/mysite-2026-07-08.sql
wp db import ~/backups/mysite-2026-07-08.sql
Restore with a backup plugin
UpdraftPlus and similar tools restore from archives inside wp-admin. Install a fresh WordPress copy if wp-admin is dead, then upload the plugin and restore components in the order the wizard suggests.
Fix broken media and permalinks
If images 404 after restore, uploads folder path or year/month structure is wrong. Confirm wp-content/uploads matches database attachment paths.
Resave permalinks and clear CDN cache after any restore.
When restore fails login
Database URL options may point at the old domain. Update siteurl and home or run wp search-replace. See our password and URL tutorials if admin still loops.
When to stop DIY and hire help
A bad restore can leave mixed old and new data. BugShield restores WordPress sites from backup at a fixed price when DIY imports fail or time matters.