Want to know how to create a WordPress multisite installation? You've come to the right place.

In this post, you will first discover:

  • What is a multisite WordPress network
  • For whom it's made
  • Its pros and cons

Then you'll take action by learning:

  • How to create, activate and configure this type of network
  • How to manage it: I will show you how to add sites, themes, plugins and users
  • How to update it
  • Why secure it, and how to do so
  • What's behind the strange expression domain mapping, and why it might be important for you to take an interest in it
  • A handful of essential plugins for your installation
  • How to debug your network

Are you ready? Off we go! Let's start right away with this detailed tutorial that will guide you step by step.

Warning: Even if setting up a network of sites remains manageable for a beginner – this post will show you how – keep in mind that the process is still somewhat technical, and that the configuration and management of a WordPress multisite network can then become quite complex. Read the following before you start: this tutorial is here to help you.

What is a WordPress multisite network?

Codex, WPMU and… Zinedine Zidane

As explained in the Codex (the official WordPress documentation) :

A multisite network is a collection of sites that all share the same WordPress installation

With this feature built into the core of WordPress, you can manage an unlimited number of sites from a single Dashboard (your WordPress administration interface).

To activate and take advantage of it, among other things, you “just” need to add a line of code within your wp-config.php file.

I'll give you step-by-step instructions later in this post.

But before going into the technical details, I suggest you go back in time a little to understand what we're talking about.

So let's rewind time back to 2006.

That year, the famous French football player Zinedine Zidane made himself famous for having hit Marco Materazzi in the World Cup final.

Zidane Materazzi
Boom!

But something much less mediatized also happened a little later: version 1.0 of the so-called WordPress MU was released in October.

Also called WPMU, for multi-user WordPress, this project, well separated from WordPress, allowed to manage several sites from a single network.

This initiative ended 4 years later, in 2010, when it was officially integrated into the core of WordPress at the launch of version 3.0.

So much for the genesis of our topic of the day.

As you can probably imagine, a multisite network has a few special features. For example:

  • All your settings are done from your “classic” WordPress administration interface, but each site remains autonomous.
  • “The different sites in the network are virtual sites in the sense that they do not have their own directories on your server,” says the Codex.
  • The wp-uploads folder contains different subfolders for each site on the network. If these subfolders are not accessible from one site to another, you can still share media between each site using the specialized WordPress Be API plugin.
  • A super-admin is automatically created. This user with full powers will be the only one able to add sites, themes, plugins etc.
  • Each site has separate tables in the database: 9 of the 11 “native” WordPress tables are duplicated for each site.
Ok Woman

Ok for a WordPress multisite network… but for whom?

Do you manage multiple sites and enjoy the ease of management that a multisite network on WordPress can provide?

Before rushing headlong, take some time to think. You don't need this feature if :

  • You manage several sites that need different plugins and themes.
  • Each site needs its own separate database and IP address.
  • Plugins that are essential to your sites are not compatible with a multisite network.
  • You are a service provider, freelancer for example, and want to group together in the same place all of your customers' sites, even though they have nothing to do with one another.
  • You're not at all comfortable with coding, and don't want to bother doing that. Even if it is not too difficult for a beginner – this post will show you how – you will have to make some changes to some files. The process is a bit technical.
  • You want to translate your site. Prefer a multilingual plugin such as Polylang, for example.
  • Your hosting provider does not support multisite.

To put it in a nutshell, a multisite WordPress installation will be particularly appropriate if you want to set up a network of sites that share the same functionalities.

Let's take two concrete cases as examples:

  • The sites of most real estate agencies. Each franchisee has the same website design, except for a few details. Only the content changes.
  • The college websites often operate on a multisite network, to allow the creation of blogs for instance.

In addition, some service providers use multisite networks to create low-cost niche sites with just a few clicks (e.g. for restaurants, hotels, hairdressers, etc.).

They benefit from a ready-made structure, with the administration already in place. The multisite operation allows the theme to be adapted very quickly and to customize the content, colors, logos, etc.

Finally, if you realize that your situation is not adapted to the implementation of a multisite network, but you wish to take advantage of the maintenance and updates aspects, alternative solutions exist.

You can turn to specialized tools such as MainWP, InfiniteWP or ManageWP.

I hope you now see things more clearly. In order to fully understand the ins and outs, I now propose to look at the pros and cons of a multisite network.

Pros and cons of a multisite network

Let's start by detailing the benefits. By setting up a multisite WordPress installation, you will be able to :

  • Create an unlimited number of sites on a single installation. All for free.
  • Make updates (themes, plugins etc.) of all your sites from the same interface: that'll save you time, because you will no longer have to connect to each site individually. This makes your maintenance easier.
  • Install your themes and plugins all at once: no need to bother repeating the process individually.
  • Control all your users from the same Dashboard.
  • Use one and the same hosting for all your sites.
  • Continue to manage your SEO easily. Search engines make a good distinction between the content of each sub-site in your network.

Put this way, it looks like a dream for the webmaster who has to deal with the management of dozens of independent websites.

But beware! A multisite WordPress network still has some notable drawbacks:

  • All sites being hosted on the same server (if you are using a shared server), they share the same bandwidth, which can negatively impact the loading time of your pages.
  • If your server goes down, the whole network will be impacted.
  • If one of the themes or plugins of a site gets hacked, the other installations could be impacted. You must therefore be very vigilant and apply safety best practices.
  • Not all plugins are compatible with a multisite WordPress installation.
  • Administrators of each site cannot add themes and plugins, or customize user profiles, unless allowed in the configuration. Otherwise, only the super-admin can do it.
  • Removing a site from a network remains a rather complex task.
  • Managing a network requires a minimum of technical knowledge.

At this stage, you know whether a multisite network is right for you, and you are able to weigh the pros and cons. Now it's time to get technical: installing multiple sites on your Dashboard.

Find out how in the next section.

Happy man

How do I setup a WordPress multisite installation?

Prerequisites

First thing to know to create a multisite network on WordPress: you must be the administrator of a WP installation.

Pretty logical, but I think it's worth reminding you.

Then, before you start, make sure you have the following tools available :

  • A code editor, to edit some WordPress files. Among the most famous, I could mention Brackets and Sublime Text.
  • An FTP (File Transfer Protocol) client, i.e. software that allows you to communicate with your server. For example Filezilla, Cyberduck or Transmit.
  • A web host that is “compatible” with the various functionalities offered by the multisite. And, just as importantly, that is efficient. No question having your network break down time and again. If you want to set up a network with dozens of high-traffic sites, a dedicated hosting service will be highly recommended.

If you plan to use a site that is already online and functional, consider making a backup of your files and database.

Finally, the WordPress Codex also recommends disabling your plugins.

So much for the list of ingredients. Now, my dear cook, let's go to the kitchen.

Put on your apron, you're about to get down to business.

Your best WordPress projects need the best host!

WPMarmite recommends Bluehost: great performance, great support. All you need for a great start.

Enable network configuration in wp-config.php

To get started, take your favorite code editor and open your wp-config.php file.

It can be found in the root folder of your site, on your FTP client.

Depending on your hosting provider, this folder may have a different name.

Note: For o2switch, it is called public_html. For OVH, you'll find it as www. For others, it will be htdocs.

Open it by right-clicking. Then choose Open.

Filezilla WordPress multisite network configuration

Locate the following comment line: /* That's it, stop editing! Happy publishing. */.

Note: The characters /* and */ are used to delimit a comment, to better locate you in the code (this is not interpreted by the browser).

Just below, add the following piece of code:

WordPress multisite code snippet

Note: If you don't see the comment in the file, add the piece of code somewhere above the first line that starts with “require” or “include”.

Save your file and refresh your browser.

Go back to your dashboard, and move your mouse over the Tools menu.

Normally, a new link entitled Network Setup should have appeared.

Creating the WordPress multisite network

Well done! The WordPress multisite is enabled on your site.

Let's move on to the next step: the installation of the network.

Are you more of a sub-domain, or sub-folder?

Click on the Network Setup link, which I mentioned just above.

You're about to discover the following page:

Information: For the purpose of this post, I have created a local installation (on my computer). You may not have exactly the same instructions as me, which is normal.

At this stage, you just have to give a title to your network, and check that your email address is correct.

If everything is OK, click Install.

Before continuing, I'll stop for a moment on something important, so read on.

Depending on your configuration, you may be able to choose between subdomains and subdirectories during your installation. This will be the case if you install WordPress from scratch.

Maybe you ask yourself: what's the difference?

As the Codex explains, a sub-domain installation creates a “domain-based network in which on-demand sites use sub-domains”.

Concretely, by choosing this option, each site will have a URL of the type https://yourawesomesite.site1.fr

A subdirectory installation sets up a “path-based network in which on-demand sites use subdirectories”.

In this case, each site will have a URL of the type https://yourawesomesite.fr/site1

For example, Alex uses a subdirectory for the Chaudron, WPMarmite's training site (for now only available in French). It can be accessed at https://wpmarmite.com/chaudron/.

From a practical point of view, a subdirectory located at the root of your site is easier to manage.

On the SEO side, there would not really be a preferred option.

Enable WordPress multisite

After this most important digression, let's go back to the activation of the network. If you are attentive and diligent, your screen should display the page below:

Creating and activating a WordPress multisite network

It may sound all Greek to you, but you'll see you don't need to understand what these pieces of code mean.

Simply copying and pasting it will do.

It takes four steps to permanently activate your multisite network.

Step 1: Save your existing wp-config.php and .htaccess files (if you just installed WordPress, don't bother).

Step 2: Add the first piece of code to your wp-config.php file, above the line /* That's it, stop editing! Happy publishing. */.

To do this, connect to your FTP and open the concerned file. You now know how to do so ;-).

the wp-config code snippet to set up the WordPress multisite network

Step 3: Configure your .htaccess file by adding the second piece of code from your Dashboard.

Information The .htaccess file is a configuration file for Apache, the software your server uses to run. He's gonna tell it to behave this way or that way.

This is a very important file, so be sure to handle it with care, otherwise your site will crash.

To find this famous .htaccess file, connect to your FTP client. You should see it appear at the root of your site.

The .htaccess file on a FTP

Open it and add the code proposed by WordPress, replacing other WordPress rules :

The .htaccess file code

Information You may not find an .htaccess file on your server because it may be hidden. On Filezilla, you can fix this issue by forcing hidden files to be displayed via the Server menu.

Force hidden files on Filezilla

If this doesn't solve your problem, all you have to do is create this file by hand, from your server. Follow the instructions below :

  • Right click in the directory where it should be (ex: public_html if you are at o2switch).
  • Add a new file and name it .htaccess.
  • Edit it with your favorite code editor.

Step 4: You need to reconnect to your Dashboard so that the changes are taken into account.

For example, you can use the link below.

Dashboard log in

Did everything go well? If this is the case, a My Sites item must have appeared at the very top of your Dashboard.

My Sites tab in WordPress

Congratulations: WordPress multisite is now active on your site!

The starters are ready. Now you'll move on to the preparation of the main course: the management of your newly created network.

How do you do it? Answer in the next part, just below.

How do I manage a multisite network on WordPress?

How your new Dashboard works: detailed features

First observation: your initial site (I called mine WP multisite for the purposes of this post) still has the same Dashboard.

At least you shouldn't get lost.

The Dashboard for your network of sites is a little different. You can access it by clicking on My Sites > Network Admin > Dashboard.

My Sites dashboard

You will notice that your administration sidebar (on the left) has become a bit thinner.

The main change is the disappearance of Posts, Media, Pages and Comments, which are now set up at the level of each site you create.

In addition, you will notice three new elements: Upgrate network, Create a new site, and Create a new user (I'll come back to this later).

The WordPress multisite sites network's options

Before moving on, I suggest you stop on Network Settings, accessible by following this path: My sites > Network Admin > Settings.

The page is divided into 6 sections :

  • Operating settings.
  • Registration settings: Depending on the degree of autonomy you give to the users of your network, some default settings may not be suitable.
  • Settings for new sites.
  • Upload settings: Here, pay attention to the maximum file size and storage space. Allowing large file uploads can greatly impact the performance of your sites. Feel free to change the default values if necessary.
  • Language settings.
  • Menu settings.

But now, it's time to move on: find out how to add new sites to your WordPress multisite installation.

How to add new sites to your network

On your Dashboard, follow this path : My Sites > Network Admin > Sites.
Then click on the Add New button.

Add a website to the WordPress multisite network

You will then have to fill in 4 fields:

  • Site address (URL): Specify the name of the subdomain or subdirectory of your choice.
  • Site title.
  • Site Language the site.
  • Admin Email: either your email address (in this case you will be able to access the site from your main dashboard), or the email address of the user of your choice (in this case the site will be accessible via the My Sites tab of the Dashboard).
Dashboard to add a new website

There you go, that's all done. As you can see, my new site, named site1, is now accessible from the subdirectory of the same name.

Note: Once your site has been created, your wp-uploadsdirectory, which is located in the wp-contentwill automatically add a sitesdirectory. 
This sites directory will contain all the subdirectories corresponding to each site in your network. Each of them will be identified by an ID (number). For example, the site1 files that I have created (e.g. media), will be stored in subdirectory 2. If I decide to create a new site on my network, its files will be stored in subdirectory 3.

You can change certain aspects of the site in question by clicking on Edit in the Sites menu.

This is where you will be able to add/modify a user, or activate another theme (by default, the theme used is the same as the one on your main site).

Edit the site on a WordPress multisite network

How to add a theme

In order to add a theme, you need to go to your network administrator's Dashboard (My Sites > Network Admin > Dashboard).

In addition, it is necessary that you are Super-admin, which will automatically be the case if you have installed your network of sites yourself.

On your left sidebar, select Themes > Add New.

Adding a theme while on a multisite network

Look for the theme of your choice, for example GeneratePress. Click Install.

Once installed, WordPress will offer you to activate the theme on the network. Click on the corresponding button.

Activating a theme on the network

Network Enable does not activate your theme on every site: you will then have to activate it individually.

On the other hand, for a theme to be activated on a particular site, it must automatically be active on the network.

To make it the default theme on the site of your choice, you must then go to the Dashboard of the site, and activate the theme. Just as you would on a regular WordPress installation.

Here's the procedure to follow with my site called Site Number One. I start by going to his Dashboard (My Sites > Website 1 > Dashboard).

Then go to Appearance > Themes. Logically, you will only be able to activate themes that have been previously activated on the network.

Select the theme of your choice (e.g. Twenty Nineteen) then activate it. And that's it.

Finally, it is also possible to deactivate active themes on the network for a particular site.

For example, if you want to make sure it is not used on a particular site.

Or on the contrary, if you want to allow its activation on a specific site.

To do this, select the site of your choice on your network and then click Edit.

In the Themes tab, you can enable/disable the theme of your choice.

You can activate/deactivate a theme on a WordPress multisite installation

For the example, I chose to activate Twenty Sixteen. By going to Appearance > Site Themes (Website 1), you will see that the theme is now ready to be activated, if needed.

Activate Astra on your WordPress

After the themes, it's time for the plugins.

How to add a plugin

All plugins are installed from the network administrator's Dashboard.

Then, you have two possibilities to activate them :

  • Either on the network.
  • Either individually, on the site of your choice.

Come on, let's start by installing them on your multisite WordPress network. This can be especially useful if you want to use a plugin on all your sites.

For example, Yoast SEO, to finely manage the ranking of your content in SERPs.

Go to the Plugins page of your Network Dashboard (My Sites > Network Admin > Plugins).

Click Add New, then install Yoast SEO. And don't forget to activate it on the network ;-).

Installing the Yoast SEO plugin

From now on, Yoast SEO is activated on all the sites in your network. You cannot disable it individually on each site: you can just deactivate it from the network.

Want to know how to activate a plugin only on a site, to make it more customizable?

Wait a minute, I'm getting to that.

Start by installing the plugin of your choice from your Network Dashboard, just like you did with Yoast.

For the example, let's have fun with Redirection, which allows to create 301 redirects (to redirect of a user from URL A to URL B).

But be careful, don't go too fast. It's a bit more subtle: this time, do not activate the plugin on the network.

Then, go to the Plugins menu of the site of your choice (here, Website1).

Redirection has appeared, all you have to do is activate it. Congratulations!

Activating the Redirection plugin

Note Not all the plugins in the official directory will necessarily work in a multisite network. Do not hesitate to read the descriptions of each plugin, or even to contact the developers for more details.

How to add new users

You know how to manage themes and plugins. Two big pieces are missing to finish cooking your main course: adding new users, and managing updates.

Turn up the fire a little, we'll cook it all up, starting with the users.

To add one, go to your Network Dashboard (My Sites > Network Admin > Dashboard).
Then click Users > Add New.

Enter a username, an email address, and finish by clicking on Add User.

Add a user to a WordPress multisite installation

If you go to Users, you will discover the presence of the new user you've just created (for the example, I named him superuser1).

On the right, you have an overview of the sites the user can access.

As super-admin of the network, you have full powers. This means that you can not only delete a user, but also modify him.

However, unlike a “classic” WordPress installation, you will not be able to grant any role to a user. By default, he is a subscriber on your network of sites.

If you want to give him more power, you will only be able to give him super-admin privileges (but be careful, in this case he too will have full powers).

Super-admin privileges on WordPress

However, it is possible to give the role of your choice to a user on a particular site.

To do this, go to the User section of the site of your choice (e.g. Website1).

Click on Add New, then enter the email or ID of your choice, and the desired role.

Giving a user the role you want

Here you are with a new user with the role of administrator on your site.

The super-user role

Take note that the administrator of a site on a multisite WordPress network will not have full powers, as is the case for an administrator of a “classic” WordPress site.

For example, he will not be able to install themes and plugins or to remove them.

The only one with control over all aspects of the network is the famous super-admin.

How to manage updates

To finish our grub, we're missing one last element: updates.

How's it going on a WordPress multisite network? Same as on a WordPress installation that does not use the multisite.

As soon as an update is available (for WordPress, a theme, a plugin or a translation), you will be notified on your Dashboard, in Updates.

Updates on the WordPress dashboard

Once the update is launched, it will apply to your entire network of sites, so you won't have to do it on a case-by-case basis.

Okay, you can lower the heat. The cooking of your main course is coming to an end.

Let it simmer a little longer, just long enough to talk about one important topic: the safety of your WordPress multisite network.

Safety for your WordPress multisite network

I told you about it at the beginning of this post: if one of the themes or plugins of one of the sites in your network is hacked, the other installations are likely to be impacted.

In order to protect yourself, remember to apply the following good practices:

Regarding this last point, you will need an SSL certificate, which ensures a secure connection between the web server and the browser.

It is possible to activate it for free at most hosting providers, such as BlueHost or OVH.

If you use Let's Encrypt, you will need to activate an SSL certificate on each site.

Otherwise, a wildcard certificate will be required, which enables HTTPS to be enabled on all domains and subdomains.

Speed up your website with WP Rocket

Turn your site into a rocket with the most powerful caching plugin recognized by WordPress experts.

How to set up a custom domain name on your multisite installation

After the starter and the main course, I suggest you go straight to the dessert. I hope you won't make a big deal out of it 😉

Seriously, you will now discover, or learn more about, the domain mapping, which allows you to use different domain names for the sites in your network.

In terms of branding and communication, this can be useful in some cases.

Let's start over. Remember: on your installation, you have made the choice – if possible – between a sub-domain and a subdirectory.

With a sub-domain, your site will be accessible on a URL of this type: https://yourawesomewebsite.website1.com

With a subdirectory, your site will be accessible on a URL of this style: https://yourawesomewebsite.fr/website1

With domain mapping, you will be able to adopt a personalized URL.

For instance, your site 1 will be called yoursupersite.fr, and your site 2 your greatsite.fr.

No more subdomains and subdirectories, then.

Information Since version 4.5 of WordPress, domain mapping is natively supported by the CMS (Content Management System). You no longer need to use a plugin to configure all this (unless you are still using a version lower than 4.5: in that case, upgrade right now!).

To begin with, you will need to setup your DNS zones, especially if you purchased your domain name elsewhere than from your hosting provider.

The Codex specifies that domain names must point to the root of your installation folder.

If you use HTTPS, make sure that each domain name has an SSL certificate.

To learn about the procedure to follow concerning these two points (DNS configuration and SSL certificate), contact your hosting provider.

Then go to your site's Dashboard and select the site you want to edit (My Sites > Network Admin > Sites).

In my case, I will assign a custom domain name to localhost/multisiteen/website1.

Edit the domain name of a website

In the field Site Adress (URL), fill in the domain name of your choice (which you must obviously have) and don't forget to save the changes.

The website URL

Finally, if an error occurs when you connect to your network of sites, cookies are surely involved.

Then add the following piece of code to your wp-config.php file:

define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );

The domain mapping operation is completed. I was telling you about errors before. I propose we continue on the subject in the last part of this post.

As a digestif, I'm going to talk about debugging a multisite facility.

How to debug your network

As you have seen, setting up a multisite installation on WordPress requires a minimum of technical knowledge.

In order to complete your mission, you're going to have to tinker with the code a little bit.

And who says code, says possible errors, with a site that becomes inaccessible.

Homme dit Oh non

Don't panic, it can all be arranged.

To begin, check that you haven't forgotten a chevron, parenthesis or any character in the pieces of code you added to your wp-config.php and .htaccess files.

Then, the potential errors can be multiple:

  • A database connection error.
  • A subdomain configuration acting its own way.
  • The impossibility for administrators to connect to their site.
  • A 500 error (White Screen of Death).

To resolve them, you can read our WordPress error guide, the Codex documentation, or contact your hosting provider (especially for subdomain configuration).

Bonus: some must-have plugins

Which plugins should you use on a WordPress multisite installation? If some plugins are not compatible with such an installation, as I have explained, there are also some that will make your life easier on a daily basis, among which :

  • User Switching allows you to change the users on your WordPress site, and log in to any account without having to log out each time.
  • User Role Editor helps you customize the permissions of a role (e.g. allow a contributor to send images to his posts). Even if it's a little complicated to use, it does the job well.
  • Disable Comments gives you the ability to disable comments on your entire network of sites.
  • Multisite Enhancements This plugin improves network management for super-admin with useful features, such as the ability to show which site has a particular plugin active, on the network plugins page.
  • Multisite Toolbar Additions allows you to add links in the super-admins and admins menu (e.g. access to the themes and plugins network).
  • MultiSite Clone Duplicator helps you duplicate any site on your network (files, users, roles etc.).

There you go!

Congratulations, the creation of a WordPress multisite network is no longer a secret to you.

Throughout this post, you have learned how to install and manage a multisite installation.

If you feel that this is the right solution for your project, take a few precautions before acting.

And if you have the slightest doubt, think again: once your network has been installed, it is not easy to revert to an individual standard installation.

Now it's your turn to speak. What do you think of multisites? Do you use this feature?

Give me your opinion in the comments and please share your tips to benefit other readers.