BackupBuddy Deployment is a new feature in BackupBuddy 6.0 that allows you to easily push or pull changes between two WordPress sites. In this post, we’ll cover how to set up a WordPress staging site with the WordPress backup plugin, BackupBuddy.
With Deployment in BackupBuddy, you can push or pull a WordPress site’s database, media files, plugins and active theme back and forth between a Staging Site (or Test/Development Site) and a Live Site, allowing you to develop on one site and then push changes to another, so you never have to develop on a live site again.
Using a WordPress Staging Site in Your WordPress Development Workflow
WordPress Staging is a method of developing WordPress websites at a different location than your live WordPress site. WordPress staging may consist of two or three separate sites at separate URLs.
For instance, you may have a Staging (Test) Site and Live (Production) Site.
- Example: You could develop your site locally on your computer for convenience, then deploy it to the Staging (Test) site on the same server (but at a different URL) as the Live Site to demo to clients or ensure server compatibility, etc. Once satisfied, you can then push changes to the Live Production site.
- Example: If you want to try out a major plugin update, but want to confirm it doesn’t break the Live Site, you could go to your Staging Site and then pull the Live Site down. After verifying everything works as expected, you could then either push the changes back to the Live Site or go directly to the Production Site and update the plugin there.
Deploy Changes from a Staging Site to Live Site with a Few Clicks with BackupBuddy Deployment
BackupBuddy uses a new “BackupBuddy Deployment” Remote Destination to connect your WordPress staging site and live site. When you initiate the Deployment process, contents of the destination site (the site you are pushing to) will be overwritten as needed.
During Deployment, you will be displayed a continuous status of the process and be given the opportunity to test the changes and undo the database changes before making them permanent.
- See differences in site server settings, active plugins, theme, versions and media prior to deploying.
- Options to transfer the database (all tables, some, or none), plugins, theme and/or media.
- Automatic migration of URLs, paths, and other settings just like manual migrations.
- Watch the deployment progress just like a normal backup, displaying a continuous status including a detailed advanced status log of the entire process, all in one place.
- Ability to undo the database changes with one click if something goes wrong prior to confirming the deployment once you’re satisfied.
- Automatic chunking of data transferred between servers to support large files or slow servers.
- Swaps databases only after the entire database and all files have been transferred to attempt to minimize site downtime to mere seconds (or less!).
- Perfect for developing your site in a different location from the live site. Use staging best practices.
How to Set Up a WordPress Staging Site with BackupBuddy Deployment
The super-speedy version of this tutorial goes something like this:
- Make a backup of your Live Site.
- Create a Staging (Test) Site by restoring your backup on a new domain (dev.yourdomain.com for example).
- Add define( ‘BACKUPBUDDY_API_ENABLE’, true ); to the wp-config.php file of your Live Site.
- On the Live Site, go to BackupBuddy > Remote Destinations and select Show Deployment Key at the top of the page
- Copy the given key.
- On your Staging Site, go to BackupBuddy > Remote Destinations and click the Add New option and then select BackupBuddy Deployment.
- Paste the API key you copied from the Live Site into your Staging Site.
The longer, more in-depth version of this tutorial:
1. On your Live Site, visit BackupBuddy > Remote Destinations and then select the “Show Deployment Key” button at the top of the page.
If it is your first time to set up Deployment on this site, you will be prompted to add the following line to the wp-config.php file of your Live Site.
After adding this line to your wp-config.php file of your Live Site, refresh the page and select “Show Deployment Key” again to view the key). You will see a Deployment API Key that looks something like the following:
OWRmNzA5YzFkY2NkYzNlMzY2Iiwia2V5X3NlY3JldCI6IjM5ZWM1NWE3YjJi
ZmY3OWIwYTAyOTNlZmYxMxODczIiwia2V5X2NyZWF0ZWQiOjE0MjExMTAwOT
UsInNpdGV1cmwiOiJodHRwsdml84sC9iYWNrdXBidWRkeTIiLCJob21ldXJs
IjoiaHR0cDpsdjc98wjDXXYaVwYnVkZHkyIn0=
2. Copy this key. You will enter this key into your Staging Site.
3. On your Staging Site, go to the BackupBuddy > Remote Destinations page and click the tab “+ Add New.” Select the “BackupBuddy Deployment” destination.
4. Enter the API key you copied from your Live Site. You may test and add the destination now. Setup is now complete!
Pushing & Pulling Changes From Staging Site to Live Site
1. Go to the site you wish to Push from or Pull to.
2. Go to the BackupBuddy > Remote Destinations page and select the “My Deployment Site” tab you added during Setup.
3. Select “Push to” or “Pull from” depending on what you want to do.
4. You will be shown information about both sites and their server configuration including WordPress & plugin versions, media information, database tables, runtime details and more.
5. Select what data you wish to transfer including Database tables, Media files, Plugins and Theme files.
6. Click “Begin Push/Pull” to start the process. You will be shown a status display giving an overview of the current progress including files transferred including a detailed Status Log.
7. Test the destination site to verify everything looks okay and then click “Confirm Changes” to finalize these changes. If you do not confirm the changes within 12 hours they will be considered finalized.
If you are not satisfied with the changes select “Undo Database Changes” to rollback to the database in place prior to the Deployment process.
To view a summary of the files transferred, visit the BackupBuddy > Remote Destinations page again. From here, you’ll be able to view transfer and status information.
Staging Best Practices
When Pushing and Pulling between sites, it is important that you only send the contents you wish to overwrite on the destination site. For instance, you probably would want to omit sending the WordPress comments on your Development site to your Production site so comments would not be overwritten.
BackupBuddy does not “merge” database contents. Entire tables are either sent or not sent. You may do something similar to a merge by excluding one or more tables from being deployed. Tables not sent will result in the existing database table being left as-is.
More Important BackupBuddy Deployment Things to Note
- At least one site must be able to access the other URL. For example, to push, that destination URL must be accessible from the source computer.
- Only active theme files will be updated & both sites must have the same active theme at this time.
- Sites must have enough resources to be able to backup, restore, and make connections for sending files (eg via curl). BackupBuddy should be fully operational for normal functionality before attempting Deployments.
- When transferring files, files that have been deleted on the other server may not be deleted remotely.
- When transferring files, empty directories will not be transferred.
- Windows support is currently experimental and not currently supported. Windows Deployment support is in progress.
- The remote server is suggested to have an admin user with the same username as the local server. If it does not, a logout may occur on pulling server post-restore. We attempt to work around this but some setups may still result in a logout.
Get BackupBuddy with Deployment Now
Speed up your WordPress development workflow with Deployment in BackupBuddy, the 3-in-1 WordPress backup plugin. In addition to Deployment, BackupBuddy offers a ton of other dev-focused features, like WordPress migration, the ability to clone WordPress and more.

Each week, the team at iThemes team publishes new WordPress tutorials and resources, including the Weekly WordPress Vulnerability Report. Since 2008, iThemes has been dedicated to helping you build, maintain, and secure WordPress sites for yourself or for clients. Our mission? Make People’s Lives Awesome.
Deployment looks like something I’ve been looking for. Question is is it possible to start fresh on your local site (local development server) and push to a full site live and then push further changes to the new Live site from the local site? Your instructions seem to suggest a backup of a ‘live’ site is required first which seems counterintuitive to me….
Hi Glenn, you just need to have two WordPress sites to connect to use Deployment (both sites just need to have BackupBuddy installed). We included the step of backing up the live site and migrating it to a separate domain in case people didn’t already have a staging/development site set up. Hope that helps clarify.
Hi Kristen, can one of the sites be running off a local development server?
Hi Bjarni,
Yes, one of the sites may be running on a local development server. You’ll just want to enable the remote API on the live internet-based site and add that site as a Remote Destination on the local site. You can then log in to your local development server to Push to or Pull from the live site.
Are the file transfers incremental (changes only)? I have some 1 GB sites.
Hi Greg,
Yes, file transfers (including media, theme and plugin files) are incremental. Only new or modified files will be transferred during deployments.
Wow, what a big new feature in Backup Buddy! Downloading my live site backup right now.
My plan was to create a staging site of my current live site, so that I can work on site redesign. However, after reading through all the notes on this page, I see this: “Only active theme files will be updated & both sites must have the same active theme at this time.”
So seems like this kind of ruins my plan for site redesign on staging site and then pushing live.
Is that right ?
Or if I customize X theme on the staging site, could I install X theme on live site when ready to push live and then push live all the design customizations I made on staging site?
Just trying to get clear on what is and isn’t possible before I spend a lot of time on the new staging site.
Thanks. Yael
Hi Yael,
Yes, currently only the active theme files will be transferred. Once you are ready to push the redesign live, you could install X theme on the live site and then push all the final changes/customization from the staging site. Another option would be to rename the live theme to have the same name as the new incoming theme so it will think it’s the same one.
We’ve noted your feature request to be able to deploy additional themes and we’ll be working on getting that implemented. Thanks!
I purchased BackupBuddy a week ago and this was my primary reason; to push data from local to live sites! How ironic a week later you debut a feature that does precisely what I need 🙂 Unfortunately after following the directions in this article closely I keep this error. I have tried with multiple WordPress Installs and gotten the same one each time:
“Error #4543664: Unable to decode json response. Verify remote site API URL, API key, and that the remote site has the API enabled.”
Hi David, for that error, it looks like your site or host is blocking the API from being accessed for some reason (we’ve just seen a few issues caused by web hosting security being over-zealous and blocking connections). Our support team can help in more detail from the forum, so open a thread here — thanks! https://ithemes.com/forum
Will this scenario (pushing changes from a local development site (installed on xamp) to a live site hosted by a hosting provider) works when the live site is in a maintenance mode?
Hi Horatio, unfortunately not at this time. The site will need to be in live mode to push because WordPress won’t let plugins run when maintenance mode is on.
Hi, Kristen,
A pre-sale question: I saw that you confirm that BackupBuddy 6 can push changes from a local development server to a live server. That’s the best selling point for me if it works. My idea is to write the posts with rich multimedia content on a local development installation (XAMPP for Windows) and when I’m ready, just push the changes to the live website.
I asked a friend of my to test whether or not this workflow works with BackupBuddy 6 and reported that he cloned a live site to 1) a local development server and 2) another online location. BackupBuddy 6 is installed and works on the three websites. His findings are that the cloned ONLINE site sees and pushes to/pulls from the original website.
But the local clone (which is installed on XAMPP for Windows) always sees the original site as “Site DOWN” and “Error #9037: Unable to connect to remote server or unexpected response. Details: `Operation timed out after 8250 milliseconds with 0 out of -1 bytes received`”
When the API settings are tested, the test is successful but the local site fails to see the live site.
I understand that this feature is in a BETA version but I hope that it is a possible workflow. Do you have any specific requirements for the local server to use the deployment feature?
I’m super excited about this. Nice addition folks!
Hi,
the plugin looks very nice. How would it be when sice the syncronisation from my live server to the staging server at the live server some new articles will be published.
When I then push my data from the staging server to the live system the new articles which where published at the live server will be lost?
Best Regards,
Andreas
Hey folks, this is a great feature, congratulations. Will this work on a multisite environment?
Holy crap… this is huge. You guys freaking rock!
Excellent feature… my question is on the backup buddy plugin that is installed on both the live and staging site. On the live site I have regular backups (weekly full and monthly db) setup. On the staging site, I don’t really want and schedule backups. When I push to or pull from the live site, do I need to manually enable and disable backup buddy schedules?
Search engines like Google are able to index staging site?
How can I hide the staging site from people?
Thank you.
Settings > Reading > Discourage search engines from indexing this site
Would this be a simple(r) way to move to a different host?