Direct answer: a WordPress backup is dependable only when it includes the data needed to rebuild the site, is stored outside the production failure domain, is protected from unauthorised access and has passed a timed restore test. For a typical site, that means preserving both the database and site files as one identifiable backup set, retaining the encryption key and runbook needed to use it, and proving that important customer journeys work after restoration.
Backups are often treated as storage jobs. Recovery is the real business outcome. A dashboard can report “successful” even when an archive is incomplete, encrypted with a lost key, stored on the failed server or too slow to meet the organisation’s recovery needs.
Understand what must be backed up
The WordPress database normally holds posts, pages, comments, users, settings and much plugin-generated data. Site files include uploads, themes, plugins, configuration and custom code. WordPress’s backup guidance distinguishes these components and explains that copying the WordPress directory alone normally does not capture the separate MySQL or MariaDB database.
Inventory anything outside the standard installation: environment configuration, web-server rules, object-storage media, CDN settings, DNS records, scheduled jobs, search indexes, email templates, licence information and secrets stored in a secure manager. Not every item belongs inside a single archive, but the recovery runbook must say where it comes from.
Set recovery objectives before choosing a schedule
Define two business decisions in plain language:
- Recovery point: how much recent data can the business afford to lose? A frequently updated shop may need more frequent database protection than a brochure site.
- Recovery time: how long can the service remain unavailable while the team restores it?
These are commonly called the recovery point objective (RPO) and recovery time objective (RTO). NIST contingency-planning guidance uses them to connect business impact with recovery priorities. They determine backup frequency, retention, automation and whether database and media changes need more frequent protection. Avoid copying another company’s schedule without comparing order volume, editorial activity and legal or contractual obligations.
| Decision | Question to answer | Evidence to retain |
|---|---|---|
| RPO | How much recent data can be lost? | Approved loss tolerance and backup frequency |
| RTO | How long can the service be unavailable? | Approved recovery window and timed test result |
| Retention | How far back might recovery need to go? | Retention tiers, expiry and protected restore points |
| Test cadence | How often must the runbook be proved? | Risk-based schedule, triggers and last test date |
Name a primary recovery owner and an alternate. Record who can declare an incident, access the backup service, retrieve encryption keys, provision an environment and approve return to production. Test that the alternate can complete the runbook without relying on undocumented knowledge held by the primary owner.
Design independent, protected storage
Keep multiple recovery points and do not rely solely on snapshots managed inside the same hosting account. A compromised administrator, failed account or destructive automation can affect production and nearby backups together. Separation should cover the failure domain and, where practical, the credentials or deletion authority. Use at least one logically separate location, restrict who can delete recovery points and encrypt sensitive backups in transit and at rest.
Replication or synchronisation can reduce data loss, but it is not a substitute for retained restore points: an accidental deletion, corruption or malicious change may be copied to the replica. NIST storage-security guidance covers isolation, restoration assurance and encryption as distinct storage controls. Retain the decryption keys and recovery instructions separately enough that losing the production account does not make the archive unusable.
Document retention by purpose. Recent backups support operational mistakes; older protected points can help when a compromise is discovered late. WordPress hardening guidance notes that several timed snapshots may provide both a pre-compromise recovery point and evidence useful for investigation.
Create a consistent backup set
- Give the backup a unique identifier and timestamp in a consistent timezone.
- Reduce writes or place a transaction-heavy site in an appropriate maintenance state if the backup method cannot capture a consistent snapshot.
- Export the database and archive the required files close together.
- Record WordPress, PHP, theme and plugin versions plus the environment identifier.
- Generate and retain an integrity checksum where the tooling supports it, without treating that checksum as proof that WordPress can run.
- Copy the set to its independent destination and verify that it can be read.
Automation should alert on absence, unusual file size, transfer failure and retention failure. “No alert” is not enough; run a periodic inventory that proves the expected restore points exist. NIST control CP-9 in SP 800-53 Rev. 5 supports protecting backup confidentiality, integrity and availability and testing reliability with sample restoration.
Run a restore test safely
Restore into an isolated environment, never over the working production site for a routine test. Record the start time and follow only the written runbook. A typical sequence is to provision a compatible environment, restore files, import the database, update environment-specific configuration, disable outbound messages and live payments, then correct URLs only with serialization-aware WordPress tooling. WordPress warns in its migration guidance that naive database replacement can damage serialized data and that GUID values should not be changed.
Protect restored production data as carefully as the live database. Restrict access, prevent public indexing, keep test payment methods active, suppress customer emails and dispose of the environment under the organisation’s retention rules. WordPress can explicitly identify the copy as staging through WP_ENVIRONMENT_TYPE; that label helps code choose safer behaviour but does not replace access controls.
After the files load, verify more than the homepage:
- Log in with an approved test administrator and open the editor.
- View a sample of images, downloads and custom post types.
- Test search, navigation, forms and scheduled tasks.
- For ecommerce, inspect orders and products, then exercise checkout using sandbox credentials. WooCommerce recommends staging checks for product, cart, checkout, payment, shipping, tax and email flows.
- Check integration secrets and endpoints without sending real customer communications.
- Review error logs and confirm that permissions do not expose configuration files.
- Check scheduled events; WordPress Site Health notes that they drive scheduled posts, updates and many plugin tasks.
Before a recovered site returns to production, verify that links and assets use the production host, self-canonicals are correct, robots directives permit the intended index state, the XML sitemap resolves, required redirects work, analytics still records the correct property and caches are rebuilt. PAKWM’s canonical, redirect and noindex guide explains how to avoid conflicting URL signals during this handoff.
Record proof, not a vague pass
| Evidence | Why it matters |
|---|---|
| Backup-set ID and source environment | Prevents restoring the wrong site or time. |
| Restore start and finish time | Tests the recovery-time expectation. |
| Database and file checksums or tool validation | Detects incomplete or altered material. |
| Journey test results | Shows that the application works, not merely that files exist. |
| Failures and runbook changes | Makes the next recovery faster and safer. |
A checksum can show that a stored file changed, but it does not prove database consistency, correct configuration or a working application. Only a restore followed by functional checks provides recovery evidence. Record the test data used, every exception and the person who accepted any unmet objective.
Know when a backup is not enough
A backup does not replace incident response. If compromise is suspected, preserve logs, identify the entry point, rotate credentials and remove the cause before returning the site to service. Restoring a clean-looking archive without fixing the vulnerable account, plugin or integration can recreate the incident. NIST CSF 2.0 recovery outcomes include checking backup integrity before restoration, verifying restored assets, confirming normal operation and documenting completion.
Backups also do not prove that external services can be recreated. Test access to the DNS provider, registrar, email service, payment gateway and object storage. Keep access appropriately limited while ensuring the named primary or alternate owner can start recovery.
Choose a restore-test cadence
Test after a material architecture change and on a schedule that reflects business impact. A high-activity store or membership platform needs more frequent proof than a rarely changed brochure site. Rotate scenarios: complete site loss, accidental content deletion, corrupted plugin data and credential compromise do not use exactly the same response.
Track whether the test met recovery objectives and whether current staff could follow the runbook without undocumented knowledge. If a vendor must participate, include its response time and access path in the exercise. Update the runbook immediately after the test, then assign each remediation a deadline and owner.
Connect recovery evidence to routine governance without blurring the intents of the documents. The WordPress plugin governance policy covers extension ownership and retirement, while the WordPress launch checklist covers search and measurement checks after a release. This guide remains the canonical owner for proving recoverability.
PAKWM’s WordPress development service is the relevant service route for a rebuild or recovery-ready architecture. For a scoped backup audit or migration rehearsal, request a quote with the site type, update frequency and required recovery window.
Primary sources
- WordPress Advanced Administration Handbook: Backups
- WordPress Advanced Administration Handbook: Hardening WordPress
- WordPress Advanced Administration Handbook: Migrating WordPress
- WordPress Code Reference:
wp_get_environment_type() - WordPress Code Reference: Site Health scheduled-events test
- WooCommerce: How to update WooCommerce
- WooCommerce: Testing orders
- NIST SP 800-34 Rev. 1: Contingency Planning Guide
- NIST SP 800-53 Rev. 5: Security and Privacy Controls
- NIST SP 800-209: Security Guidelines for Storage Infrastructure
- NIST Cybersecurity Framework 2.0