Want to get notified about new releases? Subscribe to our changelog or follow @backupridge on X.

v1.28.8Licensing

Correct license status in the Pro header

  • On a Pro install, the “Go Pro” upgrade link kept showing even after successfully activating a license, and the header never showed a badge for the active plan. Pro now shows an “Activate License” prompt only while unlicensed, and the plan’s badge once a license is active.
v1.28.7Restore

Restore locking and archive-part hardening

  • Closed a race where a concurrent status check could see a backup’s job as still “running” during restore and start it again, overwriting the archive being restored from. Restore now holds the source job’s lock for its full duration.
  • A restore built from a mysqldump-based export could resurrect and re-run its own source backup job, overwriting the original archive; database exports now exclude the plugin’s own in-progress job data.
  • Two internal triggers racing to start the same job no longer duplicate a database dump in the archive; large-file backups no longer produce oversized archive parts; restores no longer appear frozen for 20+ seconds on modern hosts.
v1.28.6Reliability

Fixed a slow-host false-success data-loss bug

  • On slow hosts, a large backup could log “completed successfully” while actually storing nothing — a background watchdog could restart the job during the final archive step and lose the finished archive. That step is now resumable and reliable, and as a safety net the backup now fails with a clear error instead of reporting success when no archive was produced.
  • If you run large backups on a slow host, please run a fresh backup and confirm it completes with archives present.
v1.28.5Archive

Correct part sizing for large-file backups

  • Backups containing a few very large files now split into properly-sized parts instead of one oversized part that could exceed the configured maximum and be rejected by storage providers with a per-file size limit.
v1.28.4Storage

Smoother local-storage transfers on slow hosts

  • Moving many large archive parts into local storage now pauses and resumes cleanly between parts instead of risking a mid-transfer timeout.
  • Clarified the “Resumption attempts” setting as a soft limit — it never fails a backup on its own; a genuinely stuck backup is stopped automatically by stall detection.
v1.28.3Reliability

Fewer resumptions, better stall detection

  • Hosts that allow longer PHP execution now run backups in fewer, longer segments instead of restarting roughly every 90 seconds, cutting resumption overhead on large sites.
  • A backup that stops making progress is now detected and stopped with a clear error after several idle resumptions, closing a gap where a stuck phase could loop forever.
  • Split archive parts no longer exceed the configured maximum size; the backup log now warns when the slower pure-PHP archive method is used and lists the largest subdirectories by file count.
v1.28.2WordPress.org

Downloads now route through WordPress, not a standalone script

  • Backup downloads now run through WordPress’s standard request handling instead of a separate download script, improving compatibility with hosts that block direct PHP execution under the uploads directory. Existing download links keep working.
  • Removed all directly-accessible standalone PHP files from the plugin; nothing is written into the uploads directory anymore.
v1.28.1Cloud Storage

Cloud provider upload fixes

  • Dropbox uploads no longer fail with a “not_found” error or write to a doubled path; OneDrive and Google Drive uploads send the correct total file size so chunks are no longer rejected.
  • Backblaze B2 uploads now stream large archives instead of loading the whole file into memory, eliminating out-of-memory failures.
  • Each remote destination keeps its own resumable-upload checkpoint, an exhausted destination is skipped on later resumptions instead of looping the backup indefinitely, and resuming between destinations advances correctly.
v1.28.0Cloud Storage

Orphaned multipart-upload cleanup, streamed cloud uploads

  • S3 and Cloudflare R2 destinations now include a cleanup tool to list and abort orphaned incomplete multipart uploads left behind by interrupted backups — AWS and R2 charge for stored parts until they’re explicitly aborted.
  • Google Drive, Dropbox, and OneDrive uploads now stream archive data in chunks instead of loading the entire file into memory, eliminating out-of-memory failures on large archives.
  • Eleven upload-pipeline stability fixes: multipart abort on failure, per-provider retry budgets, resumption slice guards, progress stall detection, and more.
v1.27.1Storage

Fixed an infinite resumption loop during upload

  • Resolved an infinite resumption loop during the upload phase when a resumption slice is configured and a provider fails before an S3/R2 destination; already-completed provider uploads are now preserved across resumption segments.
v1.27.0Storage

Per-provider retry, failure visibility, and key-mismatch detection

  • Upload failures are now logged per provider; a job that succeeds to at least one destination but fails others completes with a “Complete with Warnings” status instead of hiding the partial failure.
  • Storage providers that fail a connection test are marked “Unavailable” and disabled as destinations until re-tested; providers affected by an encryption key change are flagged “Key mismatch” and disabled until credentials are re-entered.
  • OAuth providers (Google Drive, OneDrive, Dropbox) now run a connection test immediately after authorization; configurable per-provider upload retry added under Settings → Upload.
v1.26.2WordPress.org

Plugin Check 1.9.0 compatibility

  • Handled Plugin Check 1.9.0’s new per-file output format so findings are no longer silently missed, and satisfied its new database parameter check on the migration preflight table name.
v1.26.1WordPress.org

Coding-standards cleanup

  • Removed an unnecessary memory-limit fallback, replaced strip_tags() with wp_strip_all_tags(), and applied input sanitization at the point of read for AJAX array parameters.
v1.26.0Security

Security release — system cron users must update their command

  • The system-cron trigger now authenticates with an HTTP header (X-BackupRidge-Cron-Key) instead of a key in the URL, so the secret no longer leaks into server access logs or Referer headers. If you run BackupRidge from a system cron job, update it to the new command shown on the Settings page — the old ?key= URL now returns 403.
  • Backup archives and logs are now protected against direct web access with an unguessable token in each filename; blocked PHP object injection during restore search-and-replace; the standalone download endpoint is confined to the backup directory.
  • On multisite, backup, restore, storage, and migration actions now require a network super-admin.
v1.25.7WordPress.org

Plugin Check global-variable fix

  • Prefixed template-scope variables in the migration push wizard so they no longer trigger Plugin Check global-variable warnings.
v1.25.6WordPress.org

Leaner free build

  • Premium-only cloud storage provider classes (Backblaze B2, Google Drive, Dropbox, OneDrive) are no longer bundled in the WordPress.org download — they remain available in BackupRidge Pro.
  • Fixed a rare packaging parse error and ensured storage provider settings are fully sanitized before being persisted.
v1.25.5WordPress.org

Direct-file-access guard

  • Added a missing direct-file-access protection guard to the migration push-wizard template, resolving a WP Plugin Check error.
v1.25.4Storage

Test Connection uses current form values

  • Clicking Test Connection while editing a provider now tests the credentials currently in the form, not the previously saved ones — previously Test Connection could fail while Save succeeded on the same new credentials.
v1.25.3Storage

No more silent upload failures

  • A multipart upload that produces zero parts, has no source file, or fails to complete is now aborted with an error instead of silently succeeding, so the backup job is correctly marked failed.
  • Reconnecting an OAuth provider (Google Drive, Dropbox, OneDrive) no longer leaves it stuck showing “Unavailable” until a manual Test Connection.
v1.25.2Storage

Correct resumption during remote uploads

  • Resumption exceptions thrown during remote uploads now propagate correctly instead of being swallowed as provider errors, preventing a dangling S3/R2 multipart upload with no completion.
  • On resumption, archive parts already fully uploaded to a destination are now skipped instead of re-uploaded from byte 0.
v1.25.1Reliability

Free-build download fix and credential encryption

  • Fixed a free-build fatal PHP error on backup download.
  • The encryption key for stored credentials is now generated on activation and on first admin load for existing installs — previously it was never initialized, leaving credentials protected only by a null-byte key.
v1.24.2Compatibility

WordPress 7.0 support

  • Tested up to WordPress 7.0; minimum WordPress remains 6.7.
v1.24.1Storage

Full-color storage provider icons

  • The Add Storage Provider modal now uses full-color icons for FTP, SFTP, and OneDrive; fixed the OneDrive icon rendering as a monochrome cloud.
v1.24.0Cloud Storage

Setup guides for every storage provider

  • Added step-by-step setup docs for Google Drive, Dropbox, OneDrive, Amazon S3, Backblaze B2, and Cloudflare R2, linked directly from each provider’s form in the storage settings UI.
  • Cloudflare R2’s signing region is now set automatically (no more Region field); FTP and SFTP provider cards are disabled with setup guidance when the host lacks the required PHP extension.
v1.23.4Scheduling

Timezone-aware scheduling and support URL

  • Dashboard “Next scheduled run” and Test WP-Cron hook times use WordPress site timezone and wp_date, matching General → Timezone and the Schedule UI.
  • Scheduler next-run and preset wall times use wp_timezone() and consistent local timestamps (fixes skew for GMT-offset-only sites and DST).
  • Settings save syncs schedule start time from the time widgets and preserves it when the hidden field is omitted from POST.
  • Default Support URL falls back to backupridge.com/contact when no custom URL is configured.
v1.23.2WordPress.org

Directory polish and neutral upsell copy

  • Plugin Check / coding standards alignment for admin templates and backup path checks.
  • Refined Go Pro / Premium comparison copy for WordPress.org neutrality; optional pricing line on feature-offer cards.
  • Removed paid-plan pricing hint from default feature-offer cards (override still possible via filter).
v1.23.0Dashboard UX

Webhooks, command palette, and onboarding

  • Webhook format setting: Generic JSON, Slack incoming webhook, or Discord webhook; separate toggles for success and failure notifications.
  • Command palette (Ctrl+K / ⌘K), keyboard shortcuts dialog, setup checklist strip, and multi-step onboarding wizard.
  • Schedule start time with 12h/24h controls; log viewer virtual scrolling for large files; shared tab navigation across admin pages.
v1.22.0Restore UX

Safer, clearer restores

  • Added optional pre-restore database export and clearer restore progress messaging.
  • Improved restore modal states, warnings, and SQL import progress visibility.
  • Hardened restore logs and post-restore guidance for smoother recovery.
v1.21.0Stability

Reliability and packaging hardening

  • Improved backup resume behavior, retention safety, and archive handling edge cases.
  • Refined free/pro packaging safeguards and verification checks.
  • Addressed compatibility and code quality issues from release validation.
v1.20.0Downloads

Download and restore workflow upgrades

  • Introduced faster direct downloads and better multi-part archive handling.
  • Improved import backup flows, chunk upload controls, and restore safeguards.
  • Enhanced settings and scheduling UX with cleaner controls and feedback.
v1.19.0WordPress.org

Distribution and storage improvements

  • Strengthened WordPress.org build compatibility and free/pro feature boundaries.
  • Improved storage templates and remote destination UX.
  • Added follow-up reliability fixes for release and packaging workflows.
v1.18.0Performance

Performance presets and host compatibility

  • Added host-aware optimization and stronger fallback behavior for varied environments.
  • Expanded quality checks around free/pro packaging and E2E validation.
  • Improved security and runtime compatibility for admin and CLI flows.
v1.17.0Scheduling

Smarter scheduling and recoverability

  • Added scheduled backup start-time controls and stronger stalled-job recovery.
  • Improved behavior on hosts with unreliable loopback or disabled WP-Cron.
  • Refined restore status and import robustness in follow-up releases.
v1.16.0Restore

Import and restore polish

  • Improved scan/import behavior for multipart backups and larger archive sets.
  • Refined restore detection and archive grouping for better consistency.
v1.15.0WP-CLI

CLI and internationalization milestone

  • Added WP-CLI backup/list command support for streamlined automation.
  • Shipped internationalization foundations and updated contributor docs.
  • Expanded testing and release assets for more reliable distribution.
v1.14.0Naming

Core naming and compatibility update

  • Introduced custom backup filename controls and template support.
  • Completed the `bur_` to `backupridge_` migration across plugin internals.
  • Updated WordPress compatibility baseline and release compliance checks.
v1.13.0Reliability

Slow-host and file handling improvements

  • Changed default backup directory to `wp-content/backupridge` for safer defaults.
  • Improved lock handling, checkpoint reliability, and resume correctness.
  • Stabilized uploads, archive operations, and dashboard status behavior.
v1.12.0Queueing

Queue manager and retention advances

  • Added job queue orchestration with improved concurrency controls.
  • Improved retention and update-screen safety backup behavior.
  • Enhanced dashboard loading and schedule override capabilities.
v1.11.0Resumption

Archive and cron trigger enhancements

  • Improved split archive handling and download reliability.
  • Added system cron trigger URL support and stronger key handling.
  • Refined session and status handling for long-running backups.
v1.10.0Advanced Schedules

Pro scheduling capabilities expanded

  • Introduced advanced schedule management and custom cron expression support.
  • Added schedule-focused WP-CLI commands and due-run execution flows.
  • Improved retry and watchdog behavior for schedule-driven backups.
v1.9.0Core

Persistence and finalization hardening

  • Added robust option persistence retry behavior for mission-critical state.
  • Improved finalization and checksum handling under heavy workloads.
  • Resolved follow-up CI and edge-case reliability issues.
v1.8.0Cron Trigger

Loopback fallback and segment execution

  • Added cron-trigger URL support to run one backup segment per request.
  • Improved resumptions when hosts block loopback connectivity.
  • Expanded diagnostics for more predictable background progress.
v1.7.0Reliability

Resumption without the dashboard

  • Trigger on any request — BackupRidge now runs a lightweight check on every page load (front-end, admin, or REST). If a backup is running and its next resumption was due but never ran (e.g. self-call and WP-Cron both failed), the plugin triggers one resumption attempt (throttled once per minute per job). So any site traffic can keep long backups moving—no need to keep the dashboard open.
  • System-cron resumption URL — When DISABLE_WP_CRON is set or the site has no traffic, you can call a key-protected REST URL from system cron (e.g. every minute). Settings → Schedule shows System cron (resumption trigger) with the full URL and an example crontab so backup resumptions continue even when WordPress cron never runs.
v1.6.0Reliability

Bulletproof resumption

  • Status-poll fallback — When the dashboard is open and a resumption was due but didn’t run, the backend triggers one attempt so the next segment can start without relying only on WP-Cron or loopback.
  • Self-call fallback (127.0.0.1) — If the primary loopback URL fails (e.g. site hostname not reachable from the server), the plugin tries a second request to 127.0.0.1 so backups can resume on hosts that block the main URL.
  • Watchdog — Runs every 1 minute (was 2); retries up to 10 times (was 5) before marking a job failed; reacts after 60s idle (was 90s).
v1.5.4Reliability

Backup watchdog & faster failure detection

  • Backup watchdog — A background task runs every 2 minutes to detect running backups that were due to resume but did not (e.g. when the server cannot reach itself or WP-Cron is disabled). The watchdog either re-schedules one resumption attempt and logs to the backup log, or marks the job as failed so backups no longer sit on “Running” with no progress.
  • Faster “Backup Failed” in the dashboard — When a resumption was due but never ran, the dashboard now shows “Backup Failed” within about 90 seconds (with the backup page open) instead of after several minutes, so you don’t need to reload to see the real status.
v1.4.7Improvements & Fixes

Dashboard & progress

  • Progress bar — Fixed wrong processed/total count during file scan so the bar no longer shows over 100% (e.g. 194k/193k). During scan only the total updates; processed stays 0 until files are actually written.
  • Backup history — New backups appear in the table immediately with the correct status (Running), and the table refreshes when a backup completes, fails, or is aborted so you don’t need to reload the page.
  • ETA — When a backup finishes, the ETA field now shows Completed instead of “Almost done” or “Calculating…”.
  • Failed backups — If a backup fails or resumption throws an error, the job is marked failed and the status panel and history table update automatically (no silent failures).
v1.0.0Initial Release

The first public release of BackupRidge. Everything you need to back up, restore, and migrate your WordPress site.

Core Features

  • Full site backup: database, plugins, themes, uploads, wp-config.php
  • One-click restore with selective component restoration
  • Automated scheduled backups (hourly, twice daily, daily, weekly)
  • Cloud storage integration: Amazon S3, FTP, SFTP (Pro adds Google Drive, Dropbox, and more)
  • Site migration with URL search and replace after restore
  • Email notifications for backup success and failure
  • Chunked backup processing for low memory impact
  • AES-256 credential encryption at rest; protected storage directory
  • Developer hooks and filters for customization

Pro Features (requires license)

  • Archive encryption (AES-256)
  • Incremental backups (delta only — faster, smaller)
  • Premium cloud providers: Google Drive, Dropbox, OneDrive, Backblaze B2
  • Custom cron scheduling expressions
  • Priority email support
  • Multisite / network support (Agency only — coming soon)
  • White-label admin branding (Agency only — coming soon)