How to Migrate a WordPress Multisite: A Step-by-Step Guide
WordPress Multisite has been a highly beneficial addition. While you can’t use it for every new web development project, it’s highly valuable when all the right variables are in place.
In the Ultimate Guide to WordPress Multisite, we talked about how to enable Multisite and create a network of sites from within a single installation of WordPress. If you’ve followed our recommendations, then you should have a fully functioning WordPress Multisite up and running.
But what happens when someone changes their mind and wants to move their site out of the multisite network? Or what if you have a new idea for a site and you want to add it to the network’s umbrella of sites? Or perhaps you rebranded the Multisite network altogether and now need to get all these sites over to the new domain name. What do you do when you want to migrate a WordPress Multisite?
In the following step-by-step guide, I’ll show you how to complete each of the three Multisite migration types.
- WordPress Multisite Migration Guide
- Scenario #1: Migrate a Single Site into Multisite
- Scenario #2: Migrate a Single Site out of Multisite
- Scenario #3: Migrate WordPress Multisite to Another Domain
- Simplify Your Multisite Migration, Ahoy!
- Ready, Set, Migrate
WordPress Multisite Migration Guide
You have a WordPress Multisite, but you realize something needs moving. There are three kinds of migration scenarios you might consider for a Multisite network:
- Migrating a single website into an existing WordPress Multisite network.
- Migrate a single website out of the WordPress Multisite network.
- Migrating the entire WordPress Multisite network from one domain to another.
While you might be hesitant to move anything around within your network, there’s no need to be. Sure, the process will be a little more complicated than migrating a single site from one domain to another, but that’s expected. Follow along with the steps outlined in the three scenarios below and you’ll have your Multisite migrated in no time.
Scenario #1: Migrate a Single Site into Multisite
In this scenario, you want to move a new website into your Multisite network. Awesome! Here’s what you need to do.
Back up both your single site installation and your Multisite network. You can do this with one of these WordPress backup plugins.
Next, deactivate all plugins on your single site WordPress installation. This is something WordPress suggests you do in case one of your plugins conflicts with the export process (which is a possibility).
Go to Plugins. Select the bulk “Deactivate” option for all your plugins.
One other thing the Codex suggests is that you delete any quarantined spam comments. There’s no need to save and carry that data over with you as you will (and should) never use it.
Within your single site installation, go to Tools and click on Export. It is in here where you will export a copy of your site’s files for easier setup on the Multisite.
Select the “All Content” radio dial button and click Download Export File.
Save the XML file to your computer.
Log into your Multisite WordPress installation. From here, you must create a new empty site into which you can place the migrated site.
Go to My Sites > Network Admin > Sites, and then click Add New.
Fill in the following details for your new Multisite subdomain:
- Site Address (this will be the subdomain name on the network)
- Site Title (which can be the same as it was previously)
- Admin Email
If you have questions on how to configure this, check out this guide on how to activate and configure Multisite.
Then click Add Site.
With the new site added, navigate to the new subdomain on the network. If you hover over “My Sites” in the top admin bar, you will see it there.
The first thing to do is go to the site’s Settings and edit the title and description. If it needs to differ from what it was before, you can change that now. Also, be sure to review the blog and permalinks settings. Anything you want to maintain from the single site, you update it from here.
If the Multisite network does not use the same theme or plugins as the single site, you will need to set those up now.
Note that not all WordPress plugins are compatible with Multisite, so be sure that any new plugins you carry over are acceptable to be on the network.
To copy them over, you can do one of three things:
- You can use a premium plugin (I’ve included a list of those below) to copy and migrate your theme and plugins.
- You can reinstall all plugin and theme files from-scratch in Multisite (at least the ones that don’t already exist).
- You can copy the files from your wp-content folder on the single site’s server and into the corresponding Multisite’s folders for this subdomain. To do this, make sure you know the ID number for your new subdomain.
If you’re unsure of what your new subdomain’s ID number is, go out to the Network dashboard. Click on My Sites. Hover over the new site you’ve created and click Edit. You’ll see the address bar something like this:
The “id=14” will provide you with the site’s ID number, so you know which database to edit in your directory.
Once your subdomain has all themes and plugins activated, configure and customize them to your liking.
Check the subdomain’s Pages, Posts, and Media for dummy content created during the new site setup on the network. If it created anything, delete everything before you import content from the old site.
To import the data from your single site, go to Tools and click on Import. Select the WordPress option from the list. (If you haven’t installed the tool yet, do it now).
Upload your saved XML file here.
You’ll next get a prompt about who you want to assign authorship to for your imported posts. You can either assign them to a current user on the network or a brand new one.
Click on the “Download and Import Attachments” checkbox and save your changes.
If there were widgets from the single site you want to move into the subdomain, you can easily do this using a plugin called the Widget Importer & Exporter.
Basically, it’s doing the same export/import process as you just did for your site’s content, only just for widgets.
Follow the steps in the plugin and complete the export of your widget data.
Now, hop on over to the new subdomain on your Multisite network and give it a look. Does everything seem okay?
- Are all images in place?
- Is the primary navigation the correct one?
- Does it appear that all plugins are working?
- Are there any theme customizations missed in this transfer?
- Do the blog posts all have the correct author?
- And so on.
Give your site a good checkup and make sure everything is as you expect.
If you decide that you want to give the subdomain a custom domain (perhaps the old one from its previous single existence), you can use domain mapping to do this.
With your site up and loaded on the network, you now need to get rid of the old WordPress site.
If you will not use a custom domain on the Multisite and the migrated single site no longer needs its own hosting, delete the WordPress site and cancel your domain and hosting account.
Manage unlimited WP sites for free
If you will use a custom domain on the Multisite, then you only need to delete the WordPress site and cancel the hosting account.
Scenario #2: Migrate a Single Site out of MultisiteShipper lets you easily migrate a Multisite subsite to a single WordPress install in just a few clicks! Avoid the hassle of migrating manually…check out our tutorial here:
Here is what you need to do to complete the reverse process.
Back up your WordPress Multisite network.
Purchase a web hosting plan and domain name for your new WordPress site. (If you already purchased a custom domain for domain mapping, then you’ve already finished with the latter part).
Log into your new web hosting account and navigate the one-click WordPress install. From here, you can download and get started with WordPress for your new site.
You can also grab a copy of WordPress from here:
The export and import of content for migrating out of Multisite is different, as you can only grab that data directly from your database tables.
You can do this by logging into your Multisite’s control panel and navigating to phpMyAdmin.
In the tables that appear under the Network’s folder, find the one that corresponds with the site you want to migrate out of the network. The ID number will match the one from the process described earlier. When you look at the list of sites on your network, click on the Edit button for the migrating site, and you’ll find the ID number appended to the end of the web address.
The URL will be like this:
Use the ID number to select all the tables pertaining to that site. Once you’ve selected all of them, click the Export button at the top.
The file that exported will be in a .sql format. Make a copy and rename it.
You’ll now want to open it in a code editor like Atom to adjust your site’s domain (if you haven’t mapped it to the custom domain already). On the network, you’ll see the site referred to as:
However, when you import this into the new site, you want it to say:
Do a search and replace in the file and save your changes once you’ve updated all instances of the domain.
You must make one more change in this file. Remember that site ID from before? Well, it should not exist when in the database tables for a single WordPress installation. So, anywhere that you find “wp_[ID number]_”, replace it with “wp_”.
Save the file once more.
Log into your new single WordPress installation. Because this site will no longer be part of a network of related sites, you’ll probably want to use your own WordPress theme and plugins here. So, go for it! Get those activated and customized before moving on to the next step.
Now, you can import the database tables from your old subdomain. To do this, log into this new website’s control panel and find your phpMyAdmin.
WordPress will have automatically created several database tables for you upon installation. You don’t need those duplicates here as you’re about to carry your own over. Delete the following tables (all of them will have “wp_” at the beginning of their name):
Once you’ve deleted the tables mentioned above, you can now click the Import button at the top.
Select the newly saved .sql file and click on the Go button.
Once you receive your successful upload message, you’re good to go.
If there were widgets from the Multisite network you wanted to copy over to the new domain, you can do so with the Widget Importer & Exporter plugin.
Take some time to poke around the Settings of your new WordPress site. Configure your site’s metadata and blog settings as you see fit.
Visit your new live website and do a full review of it to confirm that everything is as you want. Because you’re likely starting with a new theme and trying to create a unique experience from the Multisite, you may have already taken care of customization in the plugin and theme setup. But it’s still good to review and make sure everything is in its proper place.
When you’re content with your newly migrated site, you can return to your Multisite network and delete your website from the list of Sites on your Network’s dashboard.
Scenario #3: Migrate WordPress Multisite to Another Domain
And finally, let’s talk about WordPress Multisite migration from one domain to another. It doesn’t require much in the way of installing new WordPress installations or configuring WordPress themes and plugins. Instead, this is about renaming all the backend files to reflect the new domain name of your network.
Here is what you need to do:
The first thing you need to do: back up your Multisite installation.
If you haven’t done so already, buy that fancy new domain name for your network. Then associate it with the same web hosting account that your Multisite lives on.
Next, you must edit the wp-config.php file in the root directory of your site. You can access this either through your File Manager or FTP.
Once you’ve located the file, click on the Edit button to open it.
Now, when you configured WordPress for Multisite, you added some code above this line:
/* That's all, stop editing! Happy blogging. */
The line you want to update in this case is this one:
Update “yournetworkname.com” with the new domain name you want to use.
You then need to add the following two lines of code above the “That’s all, stop editing!” message:
Save your changes and exit.
The database files for your Multisite now also need to change to reflect the new domain name of the network. Log into phpMyAdmin.
From here, you will search for your network’s database tables. Specifically, these are the ones that will require an update from the old domain name to the new one (these are all preceded by “wp_”):
- blogs > domain
- options > home
- options > siteurl
- sitemeta > siteurl
In addition, you also need to update the following tables for each of the sites that exist on the network. The pound sign (#) below is where you will see the actual site ID number.
- #_options > siteurl
- #_options > home
- #_options > fileupload_url
Once you have renamed the domain in every instance in which it appears throughout your database tables, you can save your changes and close. Your site should now be fully migrated to the new domain name.
Don’t forget to change the name of your site and its web address within WordPress. If you want to do any rebranding and redesigning for this domain migration, you can do it now.
Simplify Your Multisite Migration, Ahoy!
There are many plugins you can use to streamline multisite migration, but there’s nothing better than using Shipper Pro to make your life easier.
With Shipper Pro, you can move WordPress sites from one host to another, development to live, local to production, etc.
You can migrate your entire multisite network securely with it to any location with a single click. Migrating WordPress sites has never been this simple!
Ready, Set, Migrate
A WordPress Multisite network isn’t set in stone. You can shift the network and the websites within it as you see fit—and you can migrate WordPress multisite almost as easily as a single site migration.
If you’re looking for expert help, our friendly live support team is ready to help you anytime with all your WordPress migration problems.Tags: