Initial assessment without passwords Quote before intervention One accountable specialist from start to finish

Migrations And Backups

A WordPress Backup Completes but Cannot Be Restored

Diagnose a WordPress backup that reports success but cannot restore, including archive, database, space and environment checks.

“Backup complete” may mean only that a job reached its final screen. A usable recovery set needs readable files, a complete database, enough metadata to rebuild the environment and a restore path that has actually been exercised. Protect the only copy before experimenting.

Preserve the recovery set

Duplicate the archive and database dump to separate storage. Record filenames, sizes, timestamps, backup-tool version and any multipart sequence. Work from copies and calculate checksums so failed transfers or edits are detectable.

Do not upload the sole backup into the broken site’s public directory. A large archive can expose private data and consume remaining disk.

Read the restore error and logs

Identify the failing phase: download, extraction, database import, URL replacement, file placement or final activation. Save the first meaningful error, not only the last timeout page.

If the browser loses connection, check whether the server-side process continued. Starting it again immediately can create overlapping extractions or duplicate imports.

Verify archive structure and integrity

List the archive contents without extracting over a live installation. Confirm it includes WordPress content, configuration where expected, hidden files and all numbered volumes.

sha256sum site-backup.zip
unzip -t site-backup.zip

A valid ZIP can still be an incomplete WordPress backup, so inspect content as well as container integrity.

Inspect the database dump

Confirm the SQL file is non-empty, ends cleanly and contains expected WordPress tables and recent records. Note charset, collation and source database version. Some tools store the database in a separate archive that is easy to omit.

Search cautiously for HTML error pages saved with an .sql extension. Do not treat file size alone as proof.

Check destination capacity

A restore may require space for the archive, extracted files, database and temporary working copies simultaneously. Check disk, inodes, database quota and file-size limits.

Clear only known disposable files. Deleting the current site or older backups before confirming an off-server copy removes rollback options.

Match the restore method and version

Use a backup plugin/version compatible with the archive format. Multipart sets must be complete and consistently named. Encryption passwords and remote-storage credentials are separate requirements.

If the automated importer cannot handle the environment, extract and import through a controlled manual process supported by the host. Do not edit proprietary archive internals blindly.

Rebuild into an isolated location

Restore to staging or an empty document root and database, not directly over production. Configure the target PHP version and required extensions. Capture each step so it can be repeated.

When import fails on a specific SQL statement, diagnose privileges, collation, packet size, definer or version compatibility. Recreate the empty database before retrying if the previous attempt was partial.

Correct environment-dependent values

After a successful restore, update database credentials and use serialization-aware URL replacement if the hostname changed. Review absolute paths, cache configuration, mail settings and security rules tied to the old server.

Regenerate disposable caches; do not indiscriminately delete uploads or plugin data.

Prove application recovery

Test public pages, login, editor, media, forms, email, scheduled events and any business-critical workflow. Compare table/row counts and recent content with the source. Scan logs for errors caused by the restored code.

Only then plan a DNS or production switch, retaining the original set and a rollback window.

Turn backups into verified recovery

Recurring maintenance should monitor job completion, off-server copy presence, integrity, retention and storage capacity. Schedule isolated restore tests and record recovery time. A backup is operational evidence only after it has rebuilt a working WordPress site; until then, it is an untested promise.

BEFORE YOU SEND THE REQUEST

Frequently asked questions.

Do you ask for passwords in the form?+

No. The public form never requests access. Secure credentials are requested only after the scope and quote are approved.

Who reviews the incident?+

The request goes to Jordi Ensenyat, founder of Code Barcelona and a WordPress specialist with more than 15 years of experience.

Is anything changed before the quote?+

No. Visible symptoms and scope are reviewed first. Intervention begins after approval and with a rollback path prepared.

Do you work internationally?+

Yes. WP Repair handles WordPress and WooCommerce incidents in English and Spanish through a remote service.

Assess my incident