By Greg Nowak. Last updated 2026-06-21.
A WordPress backup solution is not just a plugin you install and forget. For a business site, agency-managed portfolio, or WooCommerce store, the real question is simpler: if the site breaks today, how quickly can you restore the right version without losing orders, leads, media, or editorial work?
The best setup depends on the site's risk. A brochure site with monthly edits does not need the same routine as a store taking orders every hour. But every useful WordPress backup plan has the same basic shape: it backs up both files and database, stores copies away from the web server, runs automatically, sends failure notices, and gets tested before anyone needs it under pressure.
Start with what WordPress actually needs
A complete WordPress restore usually needs two parts. The database contains posts, pages, users, settings, orders, form entries, and many plugin records. The files contain uploads, themes, plugins, mu-plugins, configuration files, and sometimes custom code. Downloading the WordPress folder alone is not enough if the database is missing; exporting the database alone is not enough if uploads or custom theme files are gone.
Treat each backup as a matched set: database export plus file archive from roughly the same moment. That makes restores cleaner and avoids odd states where the database points to media files or plugin versions that are not present.
| Site type | Reasonable backup approach | What to check |
|---|---|---|
| Small brochure site | Daily or weekly plugin backup to remote storage | Restore test, retention, and alerts |
| Busy editorial site | Daily files plus more frequent database backups | Media storage, author workflow, and pre-update backups |
| WooCommerce or lead-heavy site | Real-time or very frequent database-aware backups | Orders, forms, customer records, and rollback behavior |
| Agency-maintained fleet | Centralized monitoring plus per-site restore runbooks | Ownership, credentials, reporting, and failed job handling |
| Custom VPS or Linux hosting | Server-side scheduled backups with off-server sync | Permissions, encryption, pruning, and restore drills |
Plugin backups are often the right first step
For many teams, a mature backup plugin is the most practical answer. UpdraftPlus, Jetpack VaultPress Backup, and BackWPup are all common choices, and each can be a good fit when configured carefully.
UpdraftPlus is often used for scheduled backups to storage such as Dropbox, Google Drive, S3-compatible storage, FTP, or other paid destinations. It is approachable for site owners and can restore selected components, such as plugins, themes, uploads, or the database. For basic single-site projects, that may be enough.
Jetpack VaultPress Backup is more of a managed backup service. It can suit sites where fast rollback and change-aware backups matter, especially when content, media, settings, or commerce data changes throughout the day. It is worth checking plan details and platform constraints before assuming it fits every WordPress install.
BackWPup remains useful for scheduled jobs, external storage destinations, and straightforward admin-managed restores. It can be a good option for teams that want explicit backup jobs and storage choices rather than a fully managed service.
The plugin is only half the decision. The operating process matters more: who receives failure emails, who can access the remote storage, how many copies are retained, and whether a restore has been tested on staging.
Server-side backups still have a place
If you control the server, a cron-based routine can be reliable, transparent, and easy to monitor. It is especially useful when a plugin struggles with large sites, limited PHP execution time, or shared hosting resource limits. WP-CLI is a good tool for the database part because it reads the WordPress database credentials from wp-config.php and runs the export through the server environment.
mkdir -p /secure-backups/example-site
cd /var/www/example-site
wp db export /secure-backups/example-site/db-$(date +%F).sql --add-drop-table
tar -czf /secure-backups/example-site/files-$(date +%F).tar.gz wp-content wp-config.php .htaccessFor cron, remember that percent signs in date commands need escaping:
15 2 * * * cd /var/www/example-site && wp db export /secure-backups/example-site/db-$(date +\%F).sql --add-drop-table
30 2 * * * tar -czf /secure-backups/example-site/files-$(date +\%F).tar.gz /var/www/example-site/wp-content /var/www/example-site/wp-config.phpDo not leave those archives inside a public web directory. Push them to separate storage, restrict permissions, and prune old copies deliberately. Keeping at least a few recent restore points in different locations is sensible; keeping every backup forever usually creates cost, privacy, and security problems.
What makes a backup setup business-ready
A business-ready backup routine answers practical questions before a bad day arrives. Can you restore without the original WordPress dashboard? Are backups encrypted or otherwise protected when they contain customer data? Does someone receive a clear alert when a job fails? Are backups taken before WordPress, plugin, theme, or PHP upgrades? Is there a written restore checklist for the person on call?
For agencies, the ownership question is just as important. Client sites often fail at the handover point: the plugin is installed, but the remote storage belongs to a former developer, alerts go to an inbox nobody reads, or the restore process depends on one person's memory. That is not a backup system; it is a hope.
Test the restore
The only backup that really counts is one you can restore. At minimum, test a restore after setup, after major hosting changes, and periodically for important sites. Use a staging domain or local environment, restore the files and database, log in, check key pages, submit a test form, verify media, and confirm that ecommerce or membership data behaves as expected.
If you want a practical second pair of eyes, Greg can review the current setup, remove brittle assumptions, and turn backups into a small operating routine your team can actually trust.
Related on GrN.dk
- Check if a Constant Is Defined in PHP: Practical Code Snippet
- Fixing Website Email Deliverability in 2026: What Business Websites Need to Get Right
- JavaScript-Heavy Service Pages Still Lose Leads in 2026: A Practical Rendering Audit
Need help with this kind of work?
Ask Greg to review your WordPress backup setup Get in touch with Greg.