How to Move a Single WordPress Site into a Multisite Network
One of the most frequent questions I get by my students completing the WordPress Multisite course in The Academy is this: how do you move an existing WordPress site into a Multisite network?
This post answers that question and takes you through the steps you need to follow to move a site into a network. I’ll look at:
- How to use the Import/Export tool to migrate content.
- How to use the Widget Settings plugin to migrate widgets.
- How to tidy up afterwards.
Choosing a Migration Method
In this post, I will show you the easy way to migrate your site using two plugins. This has the advantage of being quick and easy, and for most sites it will migrate almost everything you need.
But if you’ve made a lot of customizations to your site using the Customizer, or you’ve spent a lot of time setting up your plugins, this method won’t migrate all of that. You can either take the time tweaking everything again (see the final part of this post), or you can manually migrate the site by copying the relevant database tables.
Migrating the database tables involves using phpMyAdmin to download database tables, editing the resulting SQL file, and re-uploading that using phpMyAdmin again. It saves you having to do any tidying up at the end but can be somewhat daunting. I’ll cover that in a separate post – if you don’t feel up to that, just follow the instructions here.
So let’s get started!
Before You Start
But wait. Before you start, there’s a very important thing you need to do. Back up your sites. Make a backup of the site you want to move AND your network. Just in case. Use your favorite backup plugin (it’s Snapshot Pro, right?).
Ready? Now you can get started.
Exporting Content from the Old Site
WordPress provides a tool you can use to import and export your content easily. Let’s start with that. Open up your starting site. Here’s mine:
In the admin screens, go to Tools > Export:
Unless you just want to export certain post types, keep the All content option selected and click the Download Export File button. WordPress will create a XML file and download it to your computer.
Creating a New Site in Your Network
Now open the network into which you want to import your site. Start by creating a new site in the normal way.
Installing and Activating Plugins and Themes
Before you import content, install the same theme you were using in the old site on your network and activate it for your new site. Do the same for any plugins.
If you’re not sure how to install and activate themes and plugins on your network, see our guide to configuring Multisite.
Importing Content to Your New Site
Now, before you import the content from your old site, go into the Posts and Pages listings in the admin screens and delete any dummy content. These are the posts and pages that get created automatically when you set up the site. Delete any widgets too. You should aim to have an empty site.
Before you can import the content from your old site, you must install the WordPress Importer plugin. Go to your Plugins screen in the network admin and install that (search for WordPress Importer).
Now in your new site’s admin screens, go to Tools > Import and scroll down to WordPress at the bottom of the list. Click the Run Importer link.
WordPress will ask you to select a file to upload:
Click the Choose File button and then select the file from your machine (it will be in your downloads folder unless you’ve moved it). Remember, you’re looking for a XML file. Once you’ve done that, click the Upload file and import button.
The importer now wants to know if you want to assign content to existing authors on your network, or import the old authors too:
Select whichever option applies to you. I’m assigning my posts to my existing username, but if you’re running a multi-author site, you may need to import authors.
Finally, select the Download and import file attachments option to copy media files from your old site and insert them in the correct place in your new one. This is one of the most useful features of the Importer. I’ve never yet come across a site where I didn’t check that box!
Click Submit and the importer will work its magic.
Eventually you’ll see the All done! message. Look at your Posts admin screen to see the imported posts: you’ll find pages too.
So that’s your content imported. Next, let’s import widgets. You can do this with another plugin.
Before you migrate any widgets, make sure you’ve got the same themes and plugins activated on your new site as on the original site. While you’re adding plugins, install the Widget Settings Import/Export plugin and activate it on your new site.
Note: Widgets go into widget areas defined by your theme, so if you haven’t activated the correct theme, this step won’t work correctly. And if there are any widgets provided by plugins, they won’t import if you haven’t installed the plugin on the new site.
Now go to the admin screens for your old site and install and activate the widget settings plugin there too. Go to Tools > Widget Settings Export to see the exporter screen:
Unless you just want to select only some widgets from your old site (and not all of them), select the Select All Active Widgets checkbox. Click the Export Widget Settings button to download the export file.
Now switch to your new site and go to Tools > Widget Settings Import:
Click the Select a file button and find the file where you downloaded it. Note that you’re looking for a JSON file this time, not a XML file. Then click the Show widget settings button to see the widgets in the file:
Select the widgets you want to import, or just click on the Select All Active Widgets button, and check the Clear Current Widgets Before Import option. Then click the Import Widget Settings button.
Now got to your new site and check how similar it is to the old one:
The two importer plugins you’ve used import the content of your old site to your new one but they don’t import all the settings. This means that you must make some manual tweaks before you’re done.
This might include:
- Editing the site title and description.
- Making any customizations to the site design you may have made in the Customizer or theme options screens.
- Editing any plugin settings. Open both sites in separate windows in your browser (or in separate browsers) and check your settings for your old site, then implement them in your new one.
- Checking that it has added the correct navigation menus to the correct areas in your theme. The importer plugin copies menus across, but might not have assigned the right one to your primary menu if you’ve got over one.
If you’ve got a domain you want to transfer across from your old site, you also must map that to the new site in the network. Once you’ve copied everything across, you must edit the DNS for your domain to point it at your network. You must also set up Multisite Domain Mapping properly to get things working correctly in your network.
Migrating Into a Network Is Easier Than You Think
I know from the questions lots of people have asked me about this that the prospect of moving a site into a Multisite network can be scary. But as you now know, it needn’t be difficult. In fact, bookmark this tutorial so you’ve got it on hand for the next time you want to migrate a standalone site into Multisite.
By following the instructions above, you can move your site (or your client’s site) into a Multisite network with minimal hassle.