SBR Simple Backup & Restore

Description

SBR Simple Backup & Restore is built for site owners who want a direct backup workflow without extra services, scheduling screens, or unnecessary settings.

Create a backup, upload a backup file, keep backups in one list, and restore only when you choose.

Main features:

  • Create a full backup ZIP containing WordPress files and the database.
  • Upload a backup ZIP without restoring it immediately.
  • Keep uploaded and created backups in a saved backups list.
  • Restore any saved backup manually using its Restore button.
  • Download or delete saved backups from the same screen.
  • Follow long-running jobs with percentage progress.
  • Use chunked admin jobs to reduce timeout risk on shared hosting.
  • Use low-memory streaming for backups, uploads, downloads, and restore operations.
  • Write backup archives with an append-only writer, so each chunk only costs the bytes it adds.
  • Resume a backup safely after a timeout: an interrupted chunk is discarded instead of corrupting the archive.
  • Migrate between installations with different table prefixes and different website addresses.
  • Rewrite addresses inside serialized and nested serialized data without breaking it.
  • Verify a finished archive before it appears in the backups list.

The plugin is focused on local backup and restore. It does not include cloud storage, scheduling, tracking scripts, remote services, or third-party libraries.

Developed by The Road Agency.

Screenshots

Installation

  1. Upload the plugin ZIP from Plugins > Add New > Upload Plugin.
  2. Activate SBR Simple Backup & Restore.
  3. Open SBR Simple Backup & Restore from the bottom of the WordPress admin menu.
  4. Click Create Backup, or upload a backup ZIP and restore it later from the saved backups list.

FAQ

Does this plugin include all files and the database?

Yes. A backup created by the plugin contains the WordPress files and a database export inside one ZIP file.

Does upload automatically restore the backup?

No. Upload is save-only. Uploaded backups appear in the saved backups list, where you can restore them manually.

Does the plugin require ZipArchive?

Creating and downloading a backup does not require it, because the plugin writes
the archive itself. Uploading and restoring a backup do require the PHP zip
extension, because those steps read an existing ZIP file.

Is wp-config.php included in the backup?

No, on purpose. A restore never writes wp-config.php back, so including it would
only place the database credentials inside a file you may download or move
around. Keep a separate copy of wp-config.php for a bare-metal rebuild.

Can a restore damage other applications sharing the database?

No. A restore only runs recognised statements, and only against tables whose
names start with this installation’s table prefix. Anything else is skipped and
reported as a warning.

What happens if a backup or restore is interrupted?

A backup records a checkpoint after every chunk and resumes from it, discarding
any partly written data. A restore reports progress per step; if the browser is
closed during the database import, reopen the plugin screen and start the restore
again from the same backup.

Is the plugin connected to an external service?

No. The plugin does not call external APIs, does not include tracking, and does not send backup data to a remote service.

Are the included assets GPL compatible?

Yes. The plugin code and included assets are licensed under GPLv2 or later unless another GPL-compatible license is explicitly stated.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“SBR Simple Backup & Restore” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

4.1.0

Correctness and safety release. Verified end to end against WordPress 6.8 and
MariaDB 10.11, including a cross-prefix, cross-address migration.

Data integrity:
* Fixed values being written to the database export through an escaping helper that also applies WordPress’s internal placeholder escaping. Backslashes could be dropped and binary data could change length.
* Binary and non-UTF-8 values are now exported as hex literals, so blob columns are reproduced byte for byte.
* Fixed address replacement inside nested serialized data. A serialized string stored inside a serialized array kept its old length prefix and could no longer be unserialized.
* Fixed a table whose first primary key is 0 having its DROP and CREATE written twice, which discarded rows already exported.
* Fixed the database export using the per-site table prefix, which left the shared users and site tables out of a multisite backup.
* The database export now uses a quote-aware statement reader, so a semicolon inside a value cannot split a statement.

Reliability:
* Fixed two workers advancing the same backup at once. Progress is now guarded by a file lock, and only one place schedules the follow-up run.
* Backup archives are written by an append-only writer instead of reopening and rewriting the whole ZIP on every chunk, which prevented large sites from ever finishing. ZIP64 is supported for archives over 4 GB or with more than 65535 entries.
* Fixed an upload chunk that was retried after a lost response being appended twice and corrupting the uploaded ZIP. Chunks are now written at an explicit byte offset.
* Fixed a restore hanging forever when a value matched the old address case-insensitively but was not changed by a case-sensitive replacement. Replacement now advances by primary key.
* A job that stops making progress is reported as stalled and can be cancelled, instead of showing “running” indefinitely.
* Progress is driven from the status request when neither the originating request nor WP-Cron is able to continue the job.
* Files that change size or disappear while being packed are skipped and reported, instead of failing the whole backup.

Safety:
* A restore only executes recognised statements, and only against tables carrying this installation’s prefix. Anything else is skipped and reported.
* wp-config.php is excluded from backups, so database credentials are not carried inside a downloadable archive.
* Symbolic links are neither archived nor written back during a restore.
* Restoring now asks for a typed confirmation, because it cannot be undone.
* Finished archives are opened and checked before they are published to the backups list.
* Directory protection files now cover both Apache 2.2 and Apache 2.4 syntax.

Interface:
* Progress bars are now driven per animation frame instead of jumping only when a step reports in, so a running job no longer looks frozen between updates.
* The bar carries a moving highlight while a job is active, and turns green on success or red on failure.
* Job status is polled more often at the start and then backs off, so the first feedback arrives quickly without adding load for the rest of the job.
* The bar can drift a few points ahead of the last confirmed value to stay in motion, but it is capped short of the finish line and never displays 100% before the job actually completes.
* Motion is reduced automatically when the operating system asks for it.

Other:
* Creating a backup no longer needs the PHP zip extension.
* Home and site addresses are rewritten separately, which fixes installations living in a subdirectory.
* Scheduled events are cleared on deactivation.

2.2.0

  • Updated internal prefixes to the longer tragency_sbr namespace for WordPress.org review.
  • Reworked dynamic database queries to use WordPress identifier placeholders where supported.

2.1.0

  • Fixed Plugin Check issues from the V2 package.
  • Removed the manual text-domain loader that WordPress.org does not require.
  • Replaced parse_url() with wp_parse_url().
  • Escaped admin notice output and documented the binary ZIP stream exception.
  • Added validated SQL identifier handling around dynamic backup and restore database queries.
  • Added restore SQL statement validation for SBR backup imports.
  • Documented expected backup/restore-only PHPCS exclusions for streaming file I/O and direct database maintenance.

2.0.0

  • Cleaned the plugin for a lean V2 release.
  • Removed unused legacy backup-step AJAX code.
  • Removed inline admin menu CSS and kept a real compact menu icon asset.
  • Kept the core features: background backup, upload-only storage, saved backups list, restore, download, delete, and progress notices.
  • Kept unique V2 class naming to avoid conflicts with older test builds.

1.7.1

  • Replaced the large admin menu image with a compact 20×20 icon inspired by the plugin logo.
  • Kept the full logo inside the plugin admin page.

1.7.0

  • Fixed possible class-name conflicts during installation when older versions are still active.
  • Added background backup continuation so backups can keep running after leaving the plugin page.
  • Added admin notices for running, completed, and failed backup jobs.

1.6.1

  • Removed the Plugin URI header so the plugin and author URI values are not duplicated.
  • Kept the Author URI as The Road Agency website.

1.6.0

  • Updated the plugin name to SBR Simple Backup & Restore for a more distinctive WordPress.org submission name.
  • Kept The Road Agency as the author and publisher.
  • Kept the clean bottom admin menu, branded logo, and fast backup/restore engine.

1.5.0

  • Updated public plugin metadata for The Road Agency.
  • Kept the clean Simple Backup & Restore interface and bottom admin menu placement.
  • Added branded logo and menu icon assets licensed under GPLv2 or later.
  • Cleaned public readme wording and plugin headers.

1.4.0

  • Added GPL license file and asset license notice.
  • Added WordPress.org-style readme sections and FAQ.
  • Moved admin JavaScript and CSS into registered admin assets.
  • Added text domain loading and broader internationalization support.
  • Removed unauthenticated restore access.
  • Added stronger random backup filenames.
  • Added additional directory access protection files.

1.3.0

  • Added Simple Backup & Restore branding and admin menu logo.
  • Moved the plugin to a bottom admin menu item.

1.2.0

  • Added a faster backup and restore engine.
  • Added streamed download handling.
  • Added upload-only backup storage and restore buttons.