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 WordPress Studio, 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.gzor Studio.zipfile. The unzipped folder, regardless of Jetpack or Studio, will contain your site data in thesqlandwp-contentsubfolders.
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
sqlfolder. - Jetpack: You’ll see several
.sqlfiles. Delete thewp_users.sqlandwp_usermeta.sqlfiles. - Studio: You’ll see a single
.sqlfile. Open it in your code editor, then search for thewp_userstable and delete that entire section. The screenshot below highlights exactly what needs to be removed.

- Studio: Search for the
wp_usermetatable and also and delete that entire section. The screenshot below highlights exactly what needs to be removed.

- Studio: Save the
.sqlfile after editing it. - Once FileZilla is connected to your site, go to the
/srv/htdocsfolder. Within that folder, openwp-content. - Open the
pluginsfolder, 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
pluginsfolder from your backup and compare it to thepluginsfolder 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
themesanduploadsfolders. - Next, you’ll need to restore your database files. Drag the
sqlfolder from your backup into thehtdocsfolder 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 importall 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
siteurlandhomevalues, 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
siteurlandhomevalues, 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
siteurlandhomevalues, run the following commands one at a time:wp option get siteurlwp option get home
- To update your
siteurlandhomevalues, run the following commands one at a time, replacing NEW-DOMAIN with your new domain:wp option update siteurl NEW-DOMAINwp 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: October 01, 2025