Manually Restore Your Site from a Jetpack Backup File on WordPress.com
In most cases, you can restore your site with a single click using Jetpack VaultPress Backup. But if needed, you can also restore your site manually using a backup file you’ve previously downloaded.
If you manage a WordPress.com site whose Business or Commerce plan recently expired, first try following these steps, as your site’s backups may still be available for one-click restoration.
If you’re moving your site to a new domain (for example, if the backup files were originally used on a different domain), make sure to follow the instructions below for updating the domain in your database. If you’re restoring to the same domain, you can skip that step.
Transfer plugins, themes, uploads, and database files
If you are using Studio by WordPress.com, we recommend taking a look at the Studio Sync feature before proceeding with the manual steps.
You can manually restore your WordPress.com site using either a Jetpack .tar.gz
backup file or a Studio .zip
backup. Just follow the steps below, or watch the video for a detailed walkthrough.
- To proceed, you must have an active WordPress.com Business or Commerce plan.
- Start by retrieving your Jetpack backup or Studio export file.
- Enable SFTP credentials on your site. You will need to connect to SFTP using an SFTP client, such as FileZilla.
- Unzip your Jetpack backup
.tar.gz
or Studio.zip
file. The unzipped folder, regardless of Jetpack or Studio, will contain your site data in thesql
andwp-content
subfolders.
In the next few steps, we will be removing wp_users
and wp_usermeta
tables from the SQL export file. This will ensure that the Jetpack connection on your WordPress.com site does not break when you run the database import. The steps are slightly different for Jetpack and Studio backups.
- Navigate to
sql
folder. - Jetpack: You’ll see several
.sql
files. Delete thewp_users.sql
andwp_usermeta.sql
files. - Studio: You’ll see a single
.sql
file. Open it in your code editor, then search for thewp_users
table and delete that entire section. The screenshot below highlights exactly what needs to be removed.
- Studio: Search for the
wp_usermeta
table and also and delete that entire section. The screenshot below highlights exactly what needs to be removed.
- Studio: Save the
.sql
file after editing it. - Once FileZilla is connected to your site, go to the
/srv/htdocs
folder. Within that folder, openwp-content
. - Open the
plugins
folder, and you’ll see a list of plugins currently installed on your site.
On a WordPress.com website, we symbolically link (symlink) WordPress Core files as well as WordPress.com’s own themes and plugins. By using symlinks, we can ensure that the files on your website are always up-to-date and secure.
To identify a symlinked folder or file, some FTP clients may show a tiny arrow on the bottom-left part of the folder icon. On others, it might have a question mark over it.
You won’t be able to access or edit the symlinked files, as they are managed on the platform level. Learn more about symlinked folders and files here.
- Check the
plugins
folder from your backup and compare it to theplugins
folder you have in FileZilla. Any plugin can be restored by dragging the entire plugin folder from your backup to FileZilla, provided the plugin is not symlinked. Skip any symlinked plugins, and transfer any others you wish to restore on your site. - Repeat this process with your
themes
anduploads
folders. - Next, you’ll need to restore your database files. Drag the
sql
folder from your backup into thehtdocs
folder on FileZilla. - Open our preferred terminal application and connect to your site using SSH.
- Once connected, run the command
cd htdocs/sql
. - Run
ls | xargs -I % wp db import %
. This lists every file in the folder, wraps the files, and then runswp db import
all with one command. - Run
wp cache flush
. You must flush the cache every time you make changes to your database. - Run
wp plugin activate jetpack
. This is necessary to make sure that the connection to Jetpack on your WordPress.com site works as expected after you do the database import. - Run
wp plugin install one-time-login --activate && wp user one-time-login <user>
. Replace<user>
with the email address associated with your WordPress.com account. - Open the link that appears in the terminal. Once logged into your site, navigate to Jetpack in the right sidebar. If Jetpack is not already set up, click “Set up Jetpack” and follow the prompts.
- Run
wp plugin delete one-time-login
. - If you run into any further issues on your site after import, contact support from your WordPress.com site for further help.
Any plugin or theme settings you had enabled at the time of your backup should now be enabled on your site, but double check on the live site to confirm. If not, activate as you would normally.
Update your domain in the database
When restoring your site to a different domain, you’ll need to update all mentions of your old domain in the database. If you’re restoring your site files to a site with the same domain, you should skip this section.
You can edit your newly-imported database using phpMyAdmin or WP-CLI.
Update siteurl
and home
values with phpMyAdmin
To update your siteurl
and home
database values in the wp_options
table using phpMyAdmin:
- Visit your site’s wp-admin dashboard and navigate to Hosting → Overview (or Settings → Hosting Configuration if using the default interface style) if you haven’t already done so.
- Click the Settings tab.
- Click on the Database tab in the sidebar.
- Click the “Open phpMyAdmin” button.
- To view your
siteurl
andhome
values, click the SQL button in the top toolbar, and run the following queries:
/* Run these queries to get your current site URL */
SELECT * FROM `wp_options` WHERE `option_name` = 'siteurl';
SELECT * FROM `wp_options` WHERE `option_name` = 'home';
- To update your
siteurl
andhome
values, click the SQL button in the top toolbar and run the following queries, replacing NEW-DOMAIN with your new domain:
/* Run these queries to update your site URL to your new domain */
UPDATE wp_options SET option_value = 'NEW-DOMAIN' WHERE wp_options.option_name = 'siteurl';
UPDATE wp_options SET option_value = 'NEW-DOMAIN' WHERE wp_options.option_name = 'home';
Search and replace with phpMyAdmin
To ensure that images load as expected, you should also run search-replace queries to update any references to your old URL:
- Visit your site’s wp-admin dashboard and navigate to Hosting → Overview (or Settings → Hosting Configuration if using the default interface style) if you haven’t already done so.
- Click the Settings tab.
- Click on the Database tab in the sidebar.
- Click the Open phpMyAdmin button.
- Click the SQL button in the top toolbar, and run the following queries, replacing OLD-DOMAIN with your old domain name and NEW-DOMAIN with your new domain name:
/* Run these queries to update the old domain to your new domain */
UPDATE wp_posts SET post_content = replace(post_content, 'OLD-DOMAIN', 'NEW-DOMAIN');
UPDATE wp_posts SET guid = replace(guid, 'OLD-DOMAIN','NEW-DOMAIN');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'OLD-DOMAIN','NEW-DOMAIN');
UPDATE wp_links SET link_image = replace(link_image, 'OLD-DOMAIN','NEW-DOMAIN');
Update siteurl
and home
values with WP-CLI
To update your siteurl
and home
database values in the wp_options
table using WP-CLI:
- Open the Terminal on your computer and connect to your site via SSH.
- Once connected, type
cd htdocs/sql
, then press return/enter on your keyboard. - To view your
siteurl
andhome
values, run the following commands one at a time:wp option get siteurl
wp option get home
- To update your
siteurl
andhome
values, run the following commands one at a time, replacing NEW-DOMAIN with your new domain:wp option update siteurl NEW-DOMAIN
wp option update home NEW-DOMAIN
- Run
wp cache flush
, then press return/enter on your keyboard.
Search and replace with WP-CLI
To ensure that images load as expected, you should also run a search-replace command to update any references to your old URL:
- Open the Terminal on your computer and connect to your site via SSH.
- Run the following command, replacing OLD-DOMAIN with your old domain name and NEW-DOMAIN with your new domain name:
wp search-replace OLD-DOMAIN NEW-DOMAIN --skip-columns=guid
- Run
wp cache flush
, then press return/enter on your keyboard.
What if something goes wrong?
If something unwanted happens to your site as a result of actions in SFTP, in phpMyAdmin, or with WP-CLI, you can restore a recent backup of your site. If you’re still having trouble, connect with our Happiness Engineers here.
Last updated: June 05, 2025