Title: RSN Site Backup Pro
Author: Moydul Haque
Published: <strong>November 7, 2026</strong>
Last modified: November 9, 2026

---

Search plugins

![](https://ps.w.org/rsn-site-backup-pro/assets/banner-772x250.png?rev=3789742)

![](https://ps.w.org/rsn-site-backup-pro/assets/icon-256x256.png?rev=3789742)

# RSN Site Backup Pro

 By [Moydul Haque](https://profiles.wordpress.org/moydulhaque/)

[Download](https://downloads.wordpress.org/plugin/rsn-site-backup-pro.1.1.3.zip)

 * [Details](https://wordpress.org/plugins/rsn-site-backup-pro/#description)
 * [Reviews](https://wordpress.org/plugins/rsn-site-backup-pro/#reviews)
 *  [Installation](https://wordpress.org/plugins/rsn-site-backup-pro/#installation)
 * [Development](https://wordpress.org/plugins/rsn-site-backup-pro/#developers)

 [Support](https://wordpress.org/support/plugin/rsn-site-backup-pro/)

## Description

RSN Site Backup Pro creates compressed backups of your entire WordPress site – the

database and every file – and stores them wherever you want. Restoring is a single
click and works even when moving the site to a new domain or host.

#### Destinations

 * **Local computer / server** – keeps packages on your web server so you can
    download
   them to your computer at any time.
 * **Remote server (FTP / FTPS)** – uploads to any FTP host, with optional TLS.
 * **Google Drive** – stores backups in your own Drive account using Google’s
    OAuth2
   flow, including resumable uploads for large files.

All three are available, and a scheduled backup can be mirrored to as many of
 them
as you like. A backup you start yourself from the **Backup Now** screen always goes
to the one destination you pick there.

#### How a backup works

Following the standard WordPress backup/restore principle, a package contains:

 * `database.sql` – a full dump of every table, with a manifest of the source site.
 * `files.zip` – the site files (see _Backup scope_ below).
 * `wp-config.php` – included for reference so you can see the source site’s
    configuration.
   The plugin never writes it to the site root; on a new host, run the WordPress
   installer first so it creates its own wp-config.php.
 * `rsn-backup-manifest.json` – site URL, paths, table prefix and format version.

#### Backup scope

Under _Settings -> Backup contents_ you choose what the file archive covers:

 * **Off (default)** – only `wp-content` is backed up: uploads, plugins and themes.
   
   Smaller and much faster, which is all most recoveries need.
 * **On** – “Include all files in the root folder of the site” archives the whole
   
   install: `wp-admin`, `wp-includes`, `wp-content`, `wp-config.php` and every other
   file sitting at the top level. Use this for a complete, self-contained copy that
   can rebuild the site from scratch on a new host.

The backup storage folder, cache folders and `node_modules` are always skipped,

so a backup can never include itself. The setting screen shows the current scope
and the file count/size it will produce.

#### Stop, resume and cancel

While a backup or restore is running, the progress card offers three controls:

 * **Stop** – pauses the job and keeps its state exactly where it is.
 * **Resume** – continues from that point; the database dump restarts at the
    table
   it stopped on rather than from the beginning.
 * **Cancel** – discards the job and its partial files. A cancelled backup is
    listed
   with a _cancelled_ status and can be deleted from the Backups screen.

A stopped job keeps its slot, so a new backup cannot start until it is resumed
 
or cancelled. If a job is stopped and then abandoned for 24 hours, it is cancelled
automatically so it can never block future backups.

Because the work happens on the server, a stopped job stays stopped even if the

browser is closed – WP-Cron leaves it alone until you press Resume.

#### Connection checks before backing up

Every selected destination is verified _before_ the backup starts. If FTP is
 missing
its host, username or password, or Google Drive has not been connected, the backup
is refused straight away with a message naming the problem, rather than building
a large package and failing at upload time. All problems are listed at once so they
can be fixed in a single pass.

#### Choosing a destination

On the **Backup Now** screen you pick exactly one destination – the three
 choices
are radio buttons, so only one can ever be selected and one is always chosen for
you. If you pick a destination that is not set up yet, the backup stops before it
starts and tells you what is missing.

Scheduled backups work differently: under _Settings_ you can tick several
 destinations,
and every scheduled run is mirrored to all of them.

#### Seamless restore

The restore screen follows the correct order so a moved site just works:

 1. The package is fetched (from FTP or Drive if there is no local copy).
 2. The database is imported.
 3. URLs are replaced across every table, including serialised values, so the site
    
    functions at its new address.
 4. Files are unpacked over the WordPress root.
 5. Caches and rewrite rules are flushed.

You can restore the database, the files, or both, and choose a different site
 address
in the same step.

#### Features

 * Scheduled backups (hourly to monthly) with a configurable start time.
 * Retention by count and/or age – old backups are removed automatically.
 * Optional AES-256 encryption for packages at rest.
 * One-click site migration / domain change.
 * Partial restores (database only, files only).
 * Time-sliced processing, so large sites never hit a PHP timeout.
 * Works on shared hosting: jobs continue via WP-Cron even if the browser closes.
 * WP-CLI commands for scripted backups and restores.
 * Detailed activity log per backup.

### Connecting Google Drive

Google Drive needs your own OAuth client, because only then are the backups
 yours
alone. Creating one is a one-off, and takes a few minutes:

 1. Open the Google Cloud Console, create a project, and enable the **Google
     Drive
    API
    .
 2. Under _APIs & Services -> Credentials_, create an **OAuth client ID** of
     type **
    Web application**.
 3. Add the redirect URI shown on the plugin’s settings screen, with the
     **Copy** 
    button next to it. The plugin warns you if the file you paste was created for a
    different site, which is the usual reason this step fails.
 4. Download the JSON file Google offers, and paste the whole thing into the
     _Credentials
    file_ box on the settings screen. The client ID and secret are read out of it for
    you, so there is nothing else to copy by hand.
 5. Save, then press **Connect Google Drive** and choose your account.

If you would rather type the values yourself, use the _Enter them by hand
 instead

link.

#### “Google no longer accepts this connection”

Google ends a connection for a few reasons, and the plugin names which one
 applies:

 * **Access was revoked**, either by you or from the Google account’s security
    
   settings.
 * **The consent screen is still in _Testing_.** This is the one that catches
    people
   out: while an OAuth app is in Testing, Google expires these connections after
   7 days, so a working setup stops working on day 8. Move the consent screen to
   _In production_ in the Google Cloud Console, then press **Connect Google Drive**
   again.
 * **The OAuth client was deleted** in the Google Cloud Console. Create a new
    one,
   paste its file, and connect again.

Temporary problems – the site being offline, Google being briefly unavailable –

are never treated as a dead connection, so a network blip will not cost you a working
setup.

Replacing your credentials also disconnects the account, because a stored
 connection
only ever works with the client that issued it. The plugin does this for you and
tells you to reconnect, rather than leaving a connection that looks fine and then
fails during an overnight backup.

### Third-party services and privacy

RSN Site Backup Pro does not send backups, analytics, or other site data to RSN.

It only contacts external services that an administrator explicitly configures:

 * **Google Drive (optional):** after an administrator connects a Google account,
   
   the plugin sends backup archives to that account through the Google Drive API.
   A backup can contain the site’s database, files, and therefore personal data 
   held by the site. Google Drive use is governed by [Google’s Terms of Service](https://policies.google.com/terms)
   and [Google’s Privacy Policy](https://policies.google.com/privacy).
 * **FTP / FTPS (optional):** after an administrator configures a server, the
    plugin
   sends backup archives and uses the connection credentials only to communicate
   with that administrator-selected server. The server operator’s own terms and 
   privacy policy apply.

The plugin stores the destination settings and Google OAuth credentials in this

WordPress installation. Site owners should update their site’s privacy policy to
explain their chosen backup destination and the data contained in backups.

## Screenshots

[[

[[

[[

[[

[[

## Installation

 1. Upload the `rsn-site-backup-pro` folder to `/wp-content/plugins/`.
 2. Activate the plugin through the _Plugins_ menu.
 3. Open _RSN Backup -> Settings_ and choose your destination.

For Google Drive, see _Connecting Google Drive_ below.

## FAQ

### Do I need FTP or SSH access?

No. The plugin runs entirely inside WordPress. The local destination works on
 any
host, including shared hosting.

### Will a large site time out?

No. Backups and restores are broken into short slices, each saved to the
 database
and resumed by the next request or by WP-Cron.

### Can I move my site to a new domain?

Yes. Create a backup, then restore it on the destination with the new address
 filled
in. Every stored URL, including serialised data, is updated for you.

### Where are backups stored locally?

Inside `wp-content/rsn-backups` by default. The folder is protected with an
 index.
php guard and an `.htaccess` deny rule.

### Is my data safe during extraction?

Yes. Archive entries are validated before extraction, and any path containing
 ../
or an absolute path is rejected.

### Will a stopped backup be lost if I close the browser?

No. Stopping and resuming are handled entirely on the server, so a job stays
 stopped
between browser sessions and continues from the same point when you press Resume.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“RSN Site Backup Pro” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Moydul Haque ](https://profiles.wordpress.org/moydulhaque/)

[Translate “RSN Site Backup Pro” into your language.](https://translate.wordpress.org/projects/wp-plugins/rsn-site-backup-pro)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/rsn-site-backup-pro/),
check out the [SVN repository](https://plugins.svn.wordpress.org/rsn-site-backup-pro/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/rsn-site-backup-pro/)
by [RSS](https://plugins.trac.wordpress.org/log/rsn-site-backup-pro/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.3

 * Fixed backups failing with “The backup could not be uploaded after several attempts.
   The backup file to save is missing.” Overlapping requests (browser polling, WP-
   Cron and the loopback tick) could run the same backup step at once and delete
   the freshly stored backup. Backup and restore jobs now process one step at a 
   time.
 * A failed file move can no longer delete a backup that is already stored.
 * The upload step no longer re-scans the whole site before each attempt, so large
   sites no longer run out of time during the upload.
 * Backups sent to the local folder and to FTP or Google Drive together now upload
   to every destination; the remote uploads previously could not find the package
   after it was moved locally.
 * A failed upload is now retried the full number of times, and a backup that was
   saved locally before a later upload failed is still listed and downloadable.
 * Fixed the FTP check always reporting “Connected successfully, but files could
   not be written to the remote directory.” even when the folder was writable.
 * Passive FTP now works with servers behind NAT that report a private address for
   data connections.

#### 1.1.2

 * Compliance with WordPress.org review guidelines: the local backup path is now
   validated so backups are only ever stored inside wp-content, never in the plugin
   or core directories.
 * Uploaded backup packages are now handled through WordPress’ wp_handle_upload()
   instead of move_uploaded_file().
 * The restore no longer writes wp-config.php to the site root; on a new host, run
   the WordPress installer first so it creates its own wp-config.php.
 * Decryption now reports a failure when the decrypted file cannot be written.

#### 1.1.1

 * Added a protected backup-package upload flow to the Restore screen.
 * Added a step-by-step Google Drive connection guide in Settings.
 * Added third-party service and privacy disclosures, including suggested privacy-
   policy text.
 * Backup records and locally stored packages are now retained on uninstall unless
   an administrator explicitly opts in to deletion.
 * Raised the supported PHP baseline to 7.4.

#### 1.1.0

 * Google Drive credentials are now pasted as the single JSON file Google
    issues,
   instead of copying a client ID and secret across by hand.
 * Warns immediately if those credentials were created for a different site,
    which
   is the usual cause of a redirect URI mismatch.
 * Google connection failures now name their cause (revoked, client deleted,
    bad
   credentials) instead of showing a bare `invalid_grant`.
 * A connection Google has ended is cleaned up and the reason is shown on the
    settings
   screen. Temporary network and Google outages no longer discard a working connection.
 * Reconnecting or disconnecting now revokes the superseded token with Google.
 * Added a Disconnect button to the Google Drive settings, with confirmation.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.1.3**
 *  Last updated **16 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [backup](https://wordpress.org/plugins/tags/backup/)[database](https://wordpress.org/plugins/tags/database/)
   [ftp](https://wordpress.org/plugins/tags/ftp/)[google drive](https://wordpress.org/plugins/tags/google-drive/)
   [restore](https://wordpress.org/plugins/tags/restore/)
 *  [Advanced View](https://wordpress.org/plugins/rsn-site-backup-pro/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/rsn-site-backup-pro/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/rsn-site-backup-pro/reviews/)

## Contributors

 *   [ Moydul Haque ](https://profiles.wordpress.org/moydulhaque/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/rsn-site-backup-pro/)