WP STAGING – Backup Duplicator & Migration


WP STAGING for WordPress Migration & Cloning

This duplicator, staging and backup plugin can create an exact copy of your entire website in seconds.* Great for staging, backup or development purposes.
(Cloning and Backup time depends on the size of your website)

This clone plugin creates a clone of your website into a subfolder or subdomain (Pro) of your main WordPress installation. The clone includes an entire copy of your database.

Note: For pushing & migrating plugins and theme files to production site, check out the pro edition https://wp-staging.com/

All the time-consumptive database and file cloning operations are done in the background. The plugin even automatically does an entire search & replace of all serialized links and paths.

This staging and backup plugin can clone your website even if it runs on a weak shared hosting server.

WP STAGING can help you to prevent your website from being broken or unavailable because of installing untested plugin updates!

Main Features

  • WPSTAGING clones the whole production site into a subfolder like example.com/staging-site.
  • Easy to use! Create a clone of your site by clicking one button “CREATE NEW STAGING SITE”.
  • No Software as a Service – No account needed! All data belong to you only and stay on your server.
  • No server timeouts on huge websites or/and small hosting servers
  • Very fast – Migration and clone process takes only a few seconds or minutes, depending on the website’s size and server I/O power.
  • Use the clone as part of your backup strategy
  • Only administrators can access the clone website. (Login with the same credentials you use on your production site)
  • SEO friendly: The clone website is unavailable to search engines due to a custom login prompt and gets the meta entry no-index.
  • The admin bar on the staging website is orange colored and shows clearly when you work on the staging site.
  • Extensive logging features
  • Supports all popular web servers: Apache, Nginx, and Microsoft IIS
  • [Premium]: Choose a separate database and select a custom directory for cloning
  • [Premium]: Make the clone website available from a subdomain like dev.example.com
  • [Premium]: Push & migrate entire clone site inc. all plugins, themes, and media files to production website.
  • [Premium]: Define user roles that get access to the clone site only. For instance, clients or external developers.
  • [Premium]: Migration and cloning of WordPress multisites

Note: Some features are Premium. Which means you need WP STAGING Pro to use those features. You can get WP STAGING Premium here!

  • New: Compatible with WordFence & All In One WP Security & Firewall

Additional Features WP STAGING PRO Edition

  • Cloning and migration of WordPress multisites
  • Define a separate database and a custom directory for cloning
  • Clone your website into a subdomain
  • Specify certain user roles for accessing the staging site
  • Copy all modifications from staging site to the production website

Change your workflow of updating themes and plugins data:

  1. Use WP STAGING to clone a production website for staging, testing or backup purposes
  2. Create a backup of your website
  3. Customize theme, configuration, update or install new plugins
  4. Test everything on your staging site and keep a backup of the original site
  5. If everything works on the staging site start the migration and copy all modifications to your production site!

Why should I Use a Staging Website?

Plugin updates and theme customizations should be tested on a staging platform first before they are done on your production website.
It’s recommended having the staging platform on the same server where the production website is located to use the same hardware and software environment for your test website and to catch all possible errors during testing.

Before you update a plugin or going to install a new one, it is highly recommended to check out the modifications on a clone of your production website.
This makes sure that any modifications work on your production website without throwing unexpected errors or preventing your site from loading. Better known as the “WordPress blank page error”.

Testing a plugin update before installing it in a production environment isn´t done very often by most users because existing staging solutions are too complex and need a lot of time to create a
an up-to-date copy of your website.

Some of you might be afraid of installing plugins updates because Your follow the rule “never touch a running system” with having in mind that untested updates are increasing the risk of breaking Your site.
This is one of the main reasons why WordPress installations are often outdated, not updated at all and insecure because of this non-update behavior.

It’s time to change this, so use “WP STAGING” for cloning, backup and migration of WordPress websites

Can´t I just use my local wordpress development system like xampp / lampp for testing and backup purposes?

You can test your website locally but if your local hardware and software environment is not a 100% exact clone of your production server there is NO guarantee that every aspect of your local copy is working on your production website exactly as you expect it.
There are some obvious things like differences in the config of PHP and the server you are running but even such non-obvious settings like the amount of RAM or the CPU performance can lead to unexpected results on your production website.
There are dozens of other possible cause of failure which can not be handled well when you are testing your changes on a local platform only without creating a backup staging site.

This is were WP STAGING jumps in… Site cloning, backup and staging site creation simplified!

I just want to migrate the database from one installation to another

If you want to migrate your local database to an already existing production site you can use a tool like WP Migrate DB.
WP STAGING is intended for creating a staging site with latest data from your production site or creating a backup of it. So it goes the opposite way of WP Migrate DB.
Both tools are excellent cooperating each other.

What are the benefits compared to a plugin like Duplicator?

I really like the Duplicator plugin. It is a great tool for migrating from a development site to production one or from production site to development one and a good tool to create a backup of your WordPress website.
The downside is that before you can even create an export or backup file with Duplicator a lot of adjustments, manually interventions and requirements are needed before you can start the backup process.
Duplicator also needs some skills to be able to create a backup and development/staging site, where WP STAGING does not need more than a click from you.
Duplicator is best placed to be a tool for first-time creation of your production site. This is something where it is very handy and powerful.

If you have created a local or web-hosted development site and you need to migrate this site the first time to your production domain than you are doing nothing wrong with using
the Duplicator plugin! If you need all your latest production data like posts, updated plugins, theme data and styles in a testing environment or want to create a quick backup before testing out omething than I recommend to use WP STAGING instead!

Can I give You some Feedback?

This plugin has been created in thousands of hours and works even with the smallest shared web hosting package.
We also use enterprise level approved testing coding structures to make sure that the plugin runs rock solid on your system.
If you are a developer you will probably like to hear that we use Codeception and PHPUnit for our software.

As there are infinite numbers of possible server constellations it still might happen that something does not work for you 100%. In that case,
please open a support request and describe your issue.


Permalinks are disabled on the staging / backup site after first time cloning / backup creation
Read here how to activate permalinks on the staging site.

How to install and setup?

Install it via the admin dashboard and to ‘Plugins’, click ‘Add New’ and search the plugins for ‘WP STAGING’. Install the plugin with ‘Install Now’.
After installation, go to the settings page ‘Staging’ and do your adjustments there.

Official Site



  • Step 1. Create a new WordPress staging / backup site
  • Step 2. Scanning your website for files and database tables
  • Step 3. WordPress staging site creation in progress
  • Finish - Access your backup / staging site


  1. Download the file “wp-staging.zip”:
  2. Upload and install it via the WordPress plugin backend wp-admin > plugins > add new > uploads
  3. Activate the plugin through the ‘Plugins’ menu in WordPress.


  • What is the Difference between WP STAGING and a Regular Backup Plugin?
    You may have heard about other popular backup plugins like BackWPUp, BackupWordPress, Simple Backup, WordPress Backup to Dropbox or similar WordPress backup plugins and now wonder about the difference between WP STAGING and those backup tools.
    Other backup plugins usually create a backup of your WordPress filesystem and a database backup which you can use to restore your website in case it became corrupted or you want to go back in time to a previous state.
    The backup files are compressed and can not be executed directly. WP STAGING on the other hand creates a full backup of the whole file system and the database in a working state that you can open like your original production website.

Even though WP STAGING comes with some backup capabilities it’s main purpose is to create a clone of your website which you can work on. It harmonies very well with all the mentioned backup plugins above and we recommend that you use it in conjunction with these backup plugins.

Note, that some free backup plugins are not able to support custom tables. (For instance the free version of Updraft plus backup plugin). In that case, your backup plugin is not able to create a backup of your staging site when it is executed on the production site.
The reason is that the tables created by WP STAGING are kind of custom tables beginning with another table prefix.
To bypass this limitation and to be able to create a backup of your staging site, you can setup your backup plugin on the staging site and create the backup from that location. This works well with every available WordPress backup plugin.

  • I can not log in to the staging / backup site
    If you are using a security plugin like All In One WP Security & Firewall you need to install the latest version of WP STAGING to access your cloned backup site.
    Go to WP STAGING > Settings and add the slug to the custom login page which you set up in All In One WP Security & Firewall plugin.


Hunyo 11, 2021
Anytime there is a issue that comes up outside of the FAQs (and that is very rare) They are right on top of it and take care of things immediately! I've been using the plugin for years on many sites, and have never been discouraged. It's saved me hundreds of hours in development and in the testing of updates before updating live sites. It's my #1 must have plugin!
Hunyo 11, 2021
By creating a sandbox environment, this saved me a lot of site outages that used to occur while updating plugins. Great plugin.
Hunyo 10, 2021
Works very well. Managed to redesign site with very little trouble as staging meant I had tested any conflicts with other areas of the site. Would recommend
Hunyo 9, 2021
I really like the ease of use the plugin gives you. I love that I can make all my changes and edits, update my main site with no problem\. This plugin takes the fear out of messing up your live site. An absolute must-have in my opinion. Thank you so much, guys!
Hunyo 8, 2021
Had a quick problem, caused by an other plugin so that the staging was not woking perfect. The support nailed it super fast! Verry easy to use, best in market! 5 Stars!
Read all 1,793 reviews

Contributors & Developers

“WP STAGING – Backup Duplicator & Migration” is open source software. The following people have contributed to this plugin.


“WP STAGING – Backup Duplicator & Migration” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “WP STAGING – Backup Duplicator & Migration” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Feat: Compatible up to WordPress 5.7.2
  • Enh: Preserve directories/tables selection and excludes rules for RESET and UPDATE process #809
  • Enh: If any wpstg process is running allow to stop that process within RESET modal #942
  • Fix: Fix multisite subsite capabilities on the staging site #852
  • Fix: Properly resets the properties between Cloning tasks #896
  • Fix: Avoid PHP warning when building version of missing asset file #929
  • Fix: Make RESET modal show error message within modal on failed response instead of browser logs #942
  • Fix: Replace wpstgGetCloneSettings() in mail-settings.php with CloneOption::get() #956
  • Fix: Little typo changed effect to affect #963
  • Fix: Made node_modules dir to be only excluded from WP Staging’s Plugins #963
  • Fix: Fix UPDATE and RESET for old wpstg clones which are without appended underscore db prefix #958


  • Enh: Add Shutdownable interface to replace usages of __destruct in the code #729
  • Enh: Refactor on how the plugin keeps track of a request running time #766
  • Fix: Replace deprecated jQuery click method #730
  • Fix: Fix overlapping of sweetalert confirmation on push with sidebar #742
  • Fix: Exclude wp staging content folder during staging #741
  • Fix: Add sanitizing for path to fix comparing for Windows paths #751
  • Fix: _cerber_files tables are excluded and could not be copied Fix #770
  • Fix: Replaced jQuery assignment with an IIFE wrapper #761
  • Dev: Update php-scoper and other development dependencies #744
  • Dev: Build javascript when building the distributable version of the plugin #750
  • Dev: Internal helper CLI command to order the changelog notes according to type #749
  • Dev: Refactor Job(s) implementation to use the Resources Trait #765
  • Dev: Add internal documentation to versioning and hotfixes #780


  • Feat: Compatible up to WP 5.7
  • Feat: Check database connection in clone data edit #650
  • Feat: Exclude .wp-staging-cloneable file from cloning and update #718
  • Feat: Show notice if a user is using an outdated version of WP Staging Hooks plugin #716
  • Feat: Add single disabled items notice with better message #717
  • Feat: Add options to enable/disable staging sites cloning from UI #722
  • Enh: Use included directories instead of excluded directories to increase cloning speed #671
  • Enh: Stringify directories array var in $_POST to reduce $_POST size during cloning #671
  • Enh: Replace relative paths exclude to absolute and wildcard paths exclude during cloning #671
  • Enh: Detect snapshot tables using regex #694
  • Enh: Enable disable save button in clone data edit during database connection #700
  • Enh: Improve exclude filters for Push process #720
  • Enh: Move Backend/public/img to assets/img #719
  • Enh: Unify Single and Multisite Classes #713
  • Enh: Keep other staging behavior when the staging site is cloneable #722
  • Enh: Refactor search and replace jobs to use memory and time-consumption aware trait #702
  • Fix: Lost password link generation in staging sites #697
  • Fix: Fix cloning on multisite for PHP 5 #725
  • Fix: Skip symlink scanning during directory scan #736
  • Fix: Replace deprecated jQuery click method #730
  • Fix: Fix overlapping of sweetalert confirmation on push with sidebar #742
  • Fix: Exclude wp staging content folder during staging #741
  • Fix: Add sanitizing for path to fix comparing for Windows paths #751
  • Fix: Uninstall not possible if “delete all settings is activated” #756
  • Dev: Internal refactoring of database backup to avoid long-lived branch #624
  • Dev: Enforced changelog entries in CI #695
  • Dev: Refactored webdriver tests to make them faster #656
  • Dev: Refactor how the automated test workflows are generated. Add new webdriver test before release with default settings #712
  • Dev: Increased default file batch limits for faster development environment and CI #706
  • Dev: Renamed all code and UI references of Snapshot to Backup #715
  • Dev: Add helper to manage clone settings #717
  • Dev: Internal code refactoring, renaming classes for better readability #721
  • Dev: Add infrastructure support for wp-cli and background processing #728
  • Dev: Update php-scoper and other development dependencies #744
  • Dev: Build javascript when building the distributable version of the plugin #750


  • Feat: Show creator user name of staging site
  • Enh: Show notice if sending mails are disabled
  • Enh: Show message and stop execution if php version is lower than 5.5
  • Enh: Abort cloning process if table already exists in external database
  • Fix: Can not update database credentials in staging sites wp-config.php under rare circumstances
  • Fix: During the update process if options table was not selected it didn’t get skipped
  • Fix: Error if WP is lower than 4.6
  • Fix: Can not delete entire staging site on error
  • Fix: Activating pro version does not properly disable free version


  • Fix: Latest supported WP version is not reflected on wordpress.org plugin repo
  • Enh: Show confirmation popup if user tries to send another support request within an hour


  • New: Compatible up to WordPress 5.6
  • Fix: Uninstall function can throw fatal error
  • Fix: Do not write sensitive information into debug.log if debug mode is active
  • Fix: Update notification shown even if there is no more recent version
  • Dev: Memory exhausted during tests
  • Dev: Prefix composer vendor libraries with PHP-Scoper
  • Dev: Add more unit and webdriver tests to improve QA
  • Enh: Change authentication to a combination of nonces and access tokens
  • Enh: Improve tests performance
  • Enh: Add tests for database export and restore


  • New: Add special admin notice if plugin is not tested with latest WordPress version
  • New: Compatible up to WordPress 5.5.2
  • New: Allow deleting of orphaned staging site entries if staging site was deleted manually before

  • Fix: Activation hook is not fired after first time installation and wpstg optimizer and cron tasks are not set up

  • Fix: Staging site does not work if database password contains dollar sign in password
  • Fix: Prevent fatal error when the plugin is activated, but there is no permission to create folder wp-content/uploads/wp-staging or wp-content/uploads/wp-staging/logs.

  • Dev: Add new DI container implementation

  • Dev: Add composer 2


  • Fix: Fatal error on activation in pro version (Syntax error)


  • New: Compatible up to WordPress 5.5.1
  • New: Add WP_ENVIRONMENT_TYPE constant for staging site
  • New: Better and wider test coverage
  • New: Implementing of automated CI tests
  • New: Huge code base refactor for cleaner code
  • New: Updated authentication mechanism for ajax requests
  • New: Show welcome video message
  • New: Show message asking for admin credentials on login form
  • New: Move WP STAGING menu down below the menu Plugins
  • New: Selected tables are highlighted with a blue background color
  • Fix: Show access denied message if a non but existing user tries to access the staging site
  • Fix: Remove wp_logout() in staging site login form to prevent multiple login log entries with plugin WP Activity Log
  • Fix: Wrong german translations
  • Fix: Cloning fails if there is no underscore in table prefix


  • New: Compatible up to WordPress 5.4.2
  • Fix: Remove beta notice
  • Fix: Error if views are cloned
  • Fix: Fatal error if WordPress is older than 4.5
  • Fix: Merge pro/free version
  • Fix: Step switching logic does not work properly
  • Fix: Fix progress bar when certains steps are skipped
  • Fix: Change german translation for REPORT ISSUE




  • New: Compatible up to WordPress 5.4.1
  • New: Allow filtering of staging site title
  • Fix: Since WordPress WP 5.4 cloning fails if WordPress is installed in subfolder
  • Fix: Loading icon not shown when disk space is checked
  • Fix: Can not copy tables if prefix is capitalized & has no underscore


  • New: Compatible up to WordPress 5.4
  • Fix: Fatal error on WordPress 4.6 and older


  • HotFix: Prefix hotfix failed


  • HotFix: Fix fatal error in step 6 after updating to WordPress 5.4


  • Fix: Can not login to staging site under certain circumstances
  • Fix: Use user selected language setting instead global site based one
  • Fix: Fatal Error: curl_version() not defined in SystemInfo.php
  • New: Refactored structure for easier maintenance
  • New: Core support for WP Staging snapshots
  • New: Implementing of UnitTests


  • Fix: If server is windows it will result in missing files after cloning and can lead to fatal errors of the staging site


  • Fix: Update function adds duplicate string to internal urls like https://example.com/staging/staging/wp-content/*
  • New: Support for WP 5.3.2


  • Fix: Fatal error: Cannot redeclare wpstgpro_overwrite_nonce() and wpstg_overwrite_nonce() after activating pro version on top of this free one
  • Fix: wpdb->prepare() warning after initial cloning


  • New: Support for WordPress 5.3.1
  • New: Refactoring code base and remove app folder
  • New: Add french language files
  • New: Add WP Staging logo to login form
  • New: Set 24 hours expiration date to process lock
  • New: Add link URL to staging site title
  • Fix: Fatal error: Invalid serialization data for DateTime object #91
  • Fix: Add missing string language location
  • Fix: Function fnmatch() not available in all systems
  • Fix: Warning in staging site after initial cloning in db row rewrite_rules
  • Fix: Wrong staging site is selected when delete function is executed and there are more then 10 staging sites


  • Fix: Broken image folder with duplicate leading slash after cloning


  • New Support for WordPress 5.2.4
  • New: Allow wildcards for excluding files
  • New: Add hook “wpstg_clone_action_staging” to execute code on staging site after cloning
  • Tweak: Improved support for custom uploads folder if user customized UPLOADS constant or upload_path in DB
  • Fix: Better compatibility with Windows IIS server
  • Fix: External links are broken after cloning if ABSPATH is equal to /www/
  • Fix: use an alternative method for file_put_contents as it is not supported on all systems due to file permission issues
  • Fix: Redundant and duplicated update comments in wp-config.php in staging site


  • Fix: Do not show warning “Preparing Data Step3: Failed to update rewrite_rules in wpstg0_options”
  • Fix: Change error “Table wpstgtmp_options does not exist” to warning
  • New: Add arguments for hook wpstg_cloning_complete
  • New: Setup server environment variables per process and not globally (e.g. set_time_limit)
  • New: Add support for custom uploads folder if user customized UPLOADS constant or upload_path in DB


  • New: Improve styling of login form. Thanks to Andy Kennan (Screaming Frog)
  • New: Add ‘password lost’ button to login form
  • New: Change welcome page CTA
  • New: Add feedback option when plugin is disabled
  • Fix: PDO instances can not be serialized or unserialized
  • Fix: Can not update staging site db table if there are constraints in it

Full changelog: https://wp-staging.com/wp-staging-changelog