The Ultimate Guide to WordPress Multisite

Here at WPMU DEV, we’re more than a bit keen on WordPress Multisite.

We’ve been developing plugins for it since the old days when it was WordPress MU, and we use it to power Edublogs, a huge network of blogs for educators and students.

Personally I also use Multisite a lot. I use it to host client websites, to create sites demonstrating techniques I outline in my books and tutorials, and to keep everything in one place.

In this guide to Multisite I’m going to show you everything you need to know to get started with Multisite and create your own network of blogs or sites.

I’ll cover:

  • What is Multisite and how is it different from regular WordPress?
  • Uses for Multisite (with some examples)
  • When not to use Multisite
  • How to activate Multisite on a new or existing WordPress installation
  • Creating blogs in your network
  • Managing your network, including installing themes and plugins, creating sites and setting up domain mapping
  • Plugins to make Multisite even better.

But first, let’s get some terminology straight. In this post I’m going to use the word network and site to refer to two different things:

  • Network refers to the entire Multisite network, i.e. your WordPress installation
  • Site refers to one of the blogs or sites created as part of the network.

So when I refer to your site, I don’t mean your whole network of sites, but just one of the sites on it. Each network will have a main site, which is created when you install WordPress and which will probably use the main domain for your WordPress installation: that’s still a site. I’ll explain this in more detail as we go along.

So now we’ve got that sorted, let’s take a look at Multisite!

What is Multisite?

The Codex defines WordPress Multisite as:

“A feature of WordPress 3.0 and later versions that allows multiple virtual sites to share a single WordPress installation.”

This means that by installing WordPress just once on your server, you can run as many sites as you want, and I really mean as many as you want. At the time of writing, WordPress.com hosts approximately 37 million sites, and our own Edublogs.org hosts nearly 3 million educational sites. You won’t be able to host millions of sites on a standard Multisite installation though – later in this post I’ll cover some plugins and techniques you can use to host large numbers of sites.

The great thing about Multisite is that the WordPress installation itself is almost exactly the same as a standard installation: it has the same folder structure, the same core files and the same code base. This means that installing a Multisite network isn’t much more complicated than installing a standard WordPress site, and updating Multisite is exactly the same as updating any WordPress site. All of your network’s themes and plugins are stored just once, no matter how many sites you use them on, meaning you’ll be using a lot less server space than if you used a separate WordPress installation for each site.

But there are some differences in three areas: in the admin screens and the way you use them, in the files in your WordPress installation, and in the database tables.

How the Multisite Admin Screens Are Different

When you activate Multisite, some extra screens will be added to your admin, for managing the network. You can see below the there’s a special dashboard for managing the network.

These are accessible only to the Super Admin who manages the network (that’s you) and will let you install themes and plugins and create and manage sites. I’ll take you through these in more detail later in this post.

The admin screens that each site admin can access are similar to a standard WordPress site, but a couple are missing: site admins can’t install themes or plugins but can only activate those that have been installed on the network.

But apart from that, the screens will be very familiar to anyone who has used WordPress.

How the Multisite Files Are Different

There are just two differences to the files and folders in a Multisite network: the wp-config.php file and the wp-uploads folder.

The wp-config.php file will have some extra lines added which activate Multisite and tell WordPress how it’s running. The wp-uploads folder will contain a subfolder for each site on the network, with the site’s numerical ID as its name. Files uploaded to each site are stored in that site’s folder, in the same structure as you would normally expect to see them in the wp-uploads folder in a standard WordPress installation.

But the good news is that WordPress manages the file structure for you, so you don’t need to worry about it!

How the Database is Different with Multisite

The final difference is one you really don’t have to worry about unless you’re into that sort of thing: the database tables. The database for a standard WordPress installation will have 11 database tables for storing your site’s content and settings. With a Multisite network, nine of these are duplicated for each site, meaning that if you’ve got a lot of sites, you’ll have a lot of tables. This keeps the content for each site separate.

Again this is something that goes on behind the scenes and which you should never need to worry about.

Uses for Multisite

Multisite has a lot of applications, but I like to think of them as coming under three categories:

  • A privately run network of sites or blogs for an individual or business
  • A network of client sites installed and administered by a developer or agency
  • A network which people can add their own sites to, either for free or by paying a subscription.

I have my own network of personal sites on my blog. I use this to create sites to demonstrate techniques I write about in my books and tutorials, and to try out new ideas. You might want to create a network to host your own personal sites if you have more than one, and with domain mapping plugins you can even use a different domain name for each site.

Businesses also use Multisite to host multiple sites which they administer and manage themselves: an example is BBC America, which uses Multisite to host its network of blogs.

bbcamerica

I also manage a network of client sites for my agency, Compass Design. I moved all of my client sites to Multisite a year or so ago after years of keeping them all separate. It means that when I need to update WordPress (or a theme or plugin) I only have to do it once, and I have one place from which to manage all of my client sites. I use domain mapping so each client can have their own domain, and give them admin access for their own sites if they need it (which not all do). The benefit of this is that it means your site admins have more capabilities than an editor would on a standard site but can’t install themes and plugins which might break their site or your network.

There are also plenty of examples of Multisite networks which let people create their own site. The biggest, WordPress.com, hosts millions of sites and is free to use, with premium themes and plugins available at a cost.

wordpressdotcom

Our own Edublogs enables schools and educators to create a blog, and powers million of sites using one Multisite Network. Users create a blog for free, with the option to move to a Pro account with extra features.

edublogs

When Not to Use Multisite

Although Multisite is great (yes it is!) and has plenty of uses, it’s not always going to be the tool that you need. Here are some examples of when you don’t need Multisite:

  • You want to create a single site or blog and don’t plan to create any more in future.
  • You’re creating sites for multiple clients but each will be hosted separately, maybe with clients having their own hosting providers.
  • Each site you’re creating will need its own separate database (maybe for security reasons).
  • Each site will need its own IP address.
  • Site administrators will need to install their own themes or plugins.
  • You’ll need to move your sites to another server (that this can be done but is more involved than  for a standard site, and can be avoided completely if all you need is separate domains).
  • Your hosting doesn’t provide the necessary server requirements.
  • You don’t have access to the files on your server for editing.

If one of the above applies to you, I would recommend sticking with a single site WordPress installation. If you do need a network but your hosting setup prevents you from doing so, I’d recommend switching providers!

Activating Multisite

Now that you know what Multisite is and how it can benefit you, it’s time to learn how to activate it. How you do this will depend on whether your site is a brand new one or an established one. It will also depend on whether you want to use subdomains or subdirectories for your network’s sites:

  • Using subdomains means that each site will have a url like http://site1.yournetwork.com. If you’re planning to let people create their own site, you’ll need to have wild card subdomains activated for your hosting.
  • Using subdirectories means that each site will have a url like http://yournetwork.com/site1. You can’t choose this option on an established site that you’re converting to a network as it may cause clashes with urls already created in your site.

Let’s start by activating Multisite in a brand new installation.

Activating Multisite on a Fresh WordPress Installation

Activating Multisite when you install WordPress involves a few extra steps. Firstly, you need to install WordPress and allowing a network.

  1. Install WordPress in the normal way. Download WordPress and use the ‘famous 5 minute install’ to install it on your server or local machine.
  2. Open your wp-config.php file which you’ll find in the folder where you installed WordPress. Find the line that reads:

  1.  Immediately above that line, create a new line that reads as follows:

  1.  Now save your wp-config.php file.

The next step is to visit the WordPress admin screens and install Multisite.

  1. In the WordPress admin, go to Tools >Network Setup. You’ll be prompted to choose subdomains or subdirectories for your installation: choose the one that works for your network.
  2. Edit the title of your network and email address of the network administrator when prompted, or leave them as they are.
  3. Click the Install button.

The final step is to copy some code provided by WordPress into your wp-config.php and .htaccess files.

  1. You will be taken to the Network Install screen:
installing-wordpress-multisite-network-install
  1. Open each of your wp-config.php and .htaccess files and edit them in line with the text provided on the screen. If you can’t find .htaccess on your server, it may because hidden files aren’t visible: change the settings in your code editor if you’re using one to access your files.
  2. Save both files.

WordPress Multisite will now be installed. You’ll need to log in again, and when you do so you’ll see the dashboard:

installing-wordpress-multisite-network-complete

Now you can start adding sites, plugins, themes and more.

Activating Multisite on an Established WordPress Installation

If you’re converting your existing site to a Multisite network, you follow the same steps as above with one exception: you won’t be given the option to select subdomains or subdirectories. If your site has been in existence for more than a month, you’ll be forced to use subdomains.

Managing Your Network

Now your network is in place and running just one site, which is the man site for the network. This site is no different from the other sites which will be added to your network: it has the same admin screens and the same permissions.

Managing your network will consist of:

  • Creating and managing sites
  • Installing and activating themes
  • Installing and deactivating plugins
  • Installing updates

Let’s start by creating a site.

Creating a Site

You can create sites manually or you can install a plugin that lets users create their own. I’ll cover how you do this with a plugin later, but first, here’s how to create a site manually.

  1.  Go to the network admin screens by clicking on My Sites > Network Admin in the admin menu.
  2. Go to Sites > Add New.
  3. Type in the site address (i.e. the subdomain or subdirectory), the site title and the email address of the site administrator, as shown in the screenshot:
multisite-add-new-site

The new site will be created. If you’ve used your own email address for the site admin, you’ll be able to see it when you hover over the My Sites link in the admin menu. If you’re not the administrator, you can still see it from your network admin screens. Click Sites > All Sites to view all of your sites. Below you can see just a selection of the sites in the network I’ve set up on my own domain:

multisite-network-sites

You can also create a new site from the front end of your main site, using a plugin. I’ll look at some plugins for Multisite shortly.

Installing and Activating Themes

Only the super administrator of a network can install themes and make them available for sites to use. You can do this in one of two ways: you can allow them for individual sites or you can network activate them. A theme can only be activated on a site if it’s been network enabled or enabled for that site.

Here’s how you install a theme and network enable it:

  1. In the Network admin screens, go to Themes > Add New and install the theme in the same way as you would for a standard WordPress site.
  2. On the ‘Installing Theme’ screen that appears, click the Network Enable link.

Alternatively, to network enable a theme you’ve already installed, click on Themes to go to the Themes screen, then click the Network Enable link below a theme.

You can also enable a theme just for one site. This can be useful if your network runs lots of sites each of which will need a different theme, for example if you’re hosting client sites. Enabling themes by site means that other themes won’t be available to sites which don’t have them enabled, so there’s no risk of site admins accidentally activating the wrong theme.

To do this, follow these steps:

  1. In the Network admin, click on Sites to view all of your sites.
  2. Hover over the name of the site you want to enable the theme for and click the Edit link that appears.
  3. Click the Themes tab to view the themes settings screen for the site:
multisite-enable-theme-for-site
  1. Under the theme you want to enable, click the Enable link.

Now when you go to the site administration screens for that site and click on Appearance > Themes, you’ll see the theme you’ve enabled included in the available themes for activation:

multisite-site-themes-screen

Installing and Activating Plugins

Plugins also have to be installed by the network administrator, but they work slightly differently with regard to the sites on the network. You can’t enable a plugin for an individual site: instead you can network activate it, so it runs on every site on the network, or you can just install it, so that individual sites can choose to activate it.

Network activating plugins is useful if you’ve written or downloaded a plugin to provide features which you want all of your sites to have, for example on my network of client sites I’ve installed the Snapshot plugin to ensure that all of the sites are backed up regularly. Here’s how to install and network activate a plugin:

  1. In the network admin screens, got to Plugins > Add New and install the plugin as you would in a normal WordPress site.
  2. In the Installing Plugin screen, click the Network Activate link.

That’s it! The plugin will now run on all the sites in your network and site admins won’t be able to disable it.

But what if you want to just activate the plugin on one site? That’s done by installing the plugin as a network admin and then activating the plugin if you have site admin privileges for the site.

  1. In the network admin screens, got to Plugins > Add New and install the plugin as you would in a normal WordPress site.
  2. In the Installing Plugin screen, click the Return to Plugin Installer link.
  3. Visit the site admin screens for the site you want to activate the plugin for and click the Plugins link in the admin menu.
  4. Under the plugin you want to activate, click the Activate link as you would in a normal WordPress site.

You’ll notice that in the Plugins screen for a site admin, there’s only the option to activate or deactivate plugins, not to delete or update them:

multisite-plugins-site-admin

Managing Sites

There are other screens you can use to manage the sites on your network, accessible via the Sites screen in the network admin. These are:

  • Info
  • Users
  • Themes
  • Settings

The Info screen contains basic information on the site. This is where you would change the domain for the site if needed, or update its status.

The Users screen lists all of the users for this site, who will also be users on your network. You can use this screen to remove users from a site or to add a user to a site if they’ve already been added to your network (more of which shortly). You can also change user roles from here. Site admins can also add users from the Users section of their own admin as you would for a normal WordPress site: they can add users not already registered on the network as well.

The Settings screen gives you access to all of the settings for the site, some of which site admins have access to via the Settings section of their admin menu. This includes everything in the site’s options table in the database, including the site title, description, theme and more. I would advise against changing any settings you’re not familiar with.

Managing Your Network: Updates, Users and Settings

As well as managing the individual sites in your network, you’ll need to manage the network itself. This will include:

  • Updating WordPress
  • Updating themes and plugins
  • Managing users
  • Customizing the settings.

Let’s take a look at each of these in turn.

Updates

Updating themes, plugins and WordPress itself via the network admin screens is straightforward: you’ll see a notification if any of your code needs updating and you simply update it in the same way as you would for a normal site. Updating WordPress is a two step process: you need to install the update and then update the network of sites. This is just a case of clicking a couple of extra links which WordPress will guide you through.

Users

The Users screen works in the same way as for a standard WordPress site: it will list all of the users on your network and let you edit and delete them. This will include users that site admins have added to your site as well as users who’ve signed up for a site.

The one main difference is that the Users screen tells you which sites a user has access to. If you want to add a user to a site, you do so via the Users tab in the site settings.

multisite-network-admin-users

Settings

You use the Network Settings screen to customise the way your network is used:

multisite-network-settings

Settings you can customise are:

  • The title of your network
  • The network admin’s email address
  • Registration settings: whether users can register accounts and/or sites, whether site admins can add new users, and email domains and site names which are banned.
  • New site settings: the content of the welcome email for site admins and users and the first page, post and comment created on new sites.
  • Upload settings: file types permitted and maximum file size
  • Language settings: the default language
  • Menu settings: enable or disable the plugins menu item for site admins. If you disable this they won’t be able to activate or deactivate plugins.

Managing and Maintaining a Huge Network of Sites

The examples I gave above of huge, successful Multisite networks will store vast amounts of data and receive millions of visits across their network every day. Clearly this isn’t something your site can handle if it’s installed on a shared server with a cheap hosting plan, so as your network grows you’ll need to make changes to the way you manage your data and serve up content to accommodate the extra data and traffic.

To learn more about how this is done, see our post about how we scaled Edublogs to meet the needs of hundreds of thousands of blogs (at the time of the post) and millions of users.

Plugins That Make Multisite Even Better

Multisite is great as it is, but if you want to get more for it you’ll probably need to install one or more plugins. A plugin will help you do things like allow site registration from the front end, map domains to the sites in your network, and monetise your network.

Here are some of the plugins that are the most invaluable, including some of our best Multisite plugins and some free ones that you can download from the WordPress plugin repository:

  • Domain Mapping

    domain-mapping-wpmudev

    Our Domain Mapping plugin lets you give each site in your network its own domain name. It also lets you buy and sell domains to your site admins, which can help you monetize your network.

  • Snapshot

    snapshot-wpmudev

    Backing up your network is essential: your site admins won’t thank you if you lose their data! In a recent post I rated Snapshot as the best backup plugin for WordPress, and for Multisite it wins hands-down. It lets you take regular backups of your entire network and restore them quickly and easily. Some other premium backup plugins don’t support Multisite, but this one does.

  • Pro Sites

    pro-sites-wpmudev

    Pro Sites lets you convert your network into a profitable business by offering paid upgrades, advertising and more. It provides you with a front end interface people can use to create a site on your network, and lets you limit features for free sites, to encourage your users to upgrade.

  • Support System

    support-system-wpmudev

    If you want to make it easy for your site admins or users to raise support tickets or see the answers to frequently asked questions, the Support System plugin will help. With it you can add a page in your main site’s front end and in the admin screens where users can raise support tickets and ask questions, and you can manage and respond to those tickets.

  • WordPress MU Domain Mapping

    This free plugin lets you map alternative domains to the sites in your network. Unlike our Domain Mapping plugin it doesn’t let you sell domains to make money from your network, but it’s a free alternative.

  • User Switching

    user-switching

    The User Switching plugin does exactly what it promises: it lets you as network admin switch user accounts so you can see what your users are experiencing when they’re logged in. It can be helpful for troubleshooting or making edits to sites if your users break something!

This is just a few of my favourite plugins for Multisite: more detailed information about our essential Multisite plugins are in this post on the plugins you need to get Multisite up and running.

Conclusion

I hope I’ve convinced you that WordPress Multisite makes WordPress even more powerful. It lets you create more than one site with just the one WordPress installation, helping you to keep all of your own sites in one place or let others create their own sites which you can make money from.

Activating Multisite just takes a few extra steps once you’ve installed WordPress, and managing your network and creating sites in it isn’t complicated. As you’ve seen, the screens do look slightly different but won’t be unfamiliar for anyone with experience of managing a standard WordPress site.

How do you use WordPress Multisite? Have you recently switched from using single site to Multisite? Which plugins make Multisite even better for you? Let us know your thoughts in the comments.