WordPress Multisite Masterclass: Getting Started

WPMU DEV News

Learn everything you need to know to master WordPress Multisite network in this six-week series, including how to get started, how to ensure your network is secure, and how to make money.

WordPress Multisite Masterclass

If you’re like us here at WPMU DEV, you’re super keen to get the most out of Multisite, so we’ve put together this six-part course to help you master this powerful WordPress feature.

Multisite is a powerful tool that will help you create a network of sites to fulfill a variety of purposes, and which you can customize to make life easier for your users and help your network run more efficiently and make you money.

Over the next six weeks, you’ll learn everything you need to know to create your own network, add sites to it or let users add their own, and manage the network. You’ll learn how to ensure your network is secure and high performing and how to create a successful community of users and sites.

In this first tutorial, I’ll give you an introduction to WordPress Multisite and what it can do. I’ll cover:

  • Introduction to Multisite – what it is and what it isn’t
  • The benefits of Multisite
  • The differences between Multisite and standalone sites
  • Uses for Multisite

Let’s get started.

Missed a tutorial in our WordPress Multisite Masterclass series? You can catch up on all six posts here:

Create a network
Multisite became part of WordPress core in version 3.0

Introduction to WordPress Multisite

WordPress Multisite is a feature of WordPress core. It used to be a standalone system called WPMU but was merged into WordPress core in version 3.0.

This means that you can easily activate Multisite in any existing standalone installation, even one you’ve been running for months or years. There’s one key difference when you install Multisite on an existing WordPress installation as compared to a new one, though, and that relates to subdomains and subdirectories. I’ll cover this in more detail later in this post when I look at the structure of Multisite networks.

We had to do some serious work scaling WordPress Multisite for Edublogs
We had to do some serious work scaling WordPress Multisite for Edublogs

Multisite lets you run a network of sites, meaning that with one installation of WordPress, you can have as many sites as you like.

And yes, I really mean as many sites as you like. WordPress.com is a Multisite installation powering over 10% of all websites, and our own Edublogs is also a Multisite installation that runs over 3 million educational blogs. As you can imagine, there are some extra considerations when it comes to managing a vast network like this, such as distributing storage across multiple servers. But the basic setup is one WordPress installation with one Multisite network running on it.

In this course, you won’t learn how to create and manage an immense network like Edublogs – that takes years of experience, sometimes painful – but what you will learn is how to create your own network of sites that you can use for one or more of a variety of purposes, which may or may not earn you money.

Here’s the definition of Multisite from the WordPress Codex:

A Multisite network is a collection of sites that all share the same WordPress installation. They can also share plugins and themes. The individual sites in the network are virtual sites in the sense that they do not have their own directories on your server, although they do have separate directories for media uploads within the shared installation, and they do have separate tables in the database.

So, Multisite is a WordPress feature that lets you create your own network of sites. Each of those sites can be managed separately and have its own domain pointing to it, so that when people visit it, you’d never know it’s on a network. This can make life much easier for you if you manage lots of sites and don’t want the hassle of keeping a separate eye on them all – updating plugins, dealing with performance and security, adding users, etc. It’s also incredibly useful if you want to let your users communicate with each other via a community, which you can host on your network.

The Benefits of Multisite

WordPress Multisite has a few key benefits when compared to managing multiple sites each on their own WordPress installation. These are:

  • Storage space. You only have one set of WordPress files and one copy of each theme and plugin to store on your server.
  • Updates. When you update WordPress, themes and plugins, you only have to do it once instead of once for each site. (But test on a development site first!)
  • Community. You can use a Multisite network to create a community of sites and users. Options including cross-posting content, letting users follow each other and more. I’ll cover this in detail later in this course.
  • Site creation. Multisite lets you allow users to create their own sites on your network. This is great if you’re running a community network for a school or club, or if you want to charge people to create sites. There’s a part on site creation later in this course.

Multisite vs Standalone Sites: Key Differences

Before you start working with Multisite there are some key differences between it and a standard (what I’ll call standalone) WordPress installation. It helps to understand these first, as they’ll help you decide whether Multisite is the right tool for you and to be more effective when you start creating and managing your network. Let’s take a look at some of those differences.

Note on terminology: If you’re used to standard WordPress sites, you’ll probably think of your installation as your site. In this course the terminology I’ll use will be different. The network is the WordPress installation, which includes a number of sites. A site is one site on that network. In earlier versions of Multisite they were thought of as blogs, but that changed with WordPress version 3.5.

Network Administration

When you create a Multisite network, you’ll become the network administrator, or super admin. This means you have the ability to manage the network as well as individual sites within it.

When you activate Multisite, you’ll see some extra links in your admin screens, shown in the screenshot:

Multisite dashboard screen

The additional menu items are:

  • In the admin you’ll see a My Sites link
  • In the admin bar at the top, a My Sites link will be added that takes you to the network management screens.

The network management screens are where you install and activate themes and plugins and create and manage sites and users:

Multisite network admin dashboard

The network admin menu includes six sections:

  • Dashboard – Manage updates and network upgrades from here.
  • Sites – Create sites in your network and manage users, themes and settings for each of them.
  • Users – Add users to your network in the same way as you would for a standalone site.
  • Themes – Install themes, which you can then network enable or just enable for one or more individual sites in your network.
  • Plugins – Install plugins here and network activate them if relevant. Some plugins can only be activated for the entire network, such as backup plugins, while others can be activated for the whole network if you want them to run on all sites, or site administrators can choose to activate them on their site.
  • Settings – Manage the settings for your network.

There are a few aspects of network management that can be confusing for beginners:

  • Base site. When you create a network, there will be one site to start with – the base site. This is the site you started with in your original WordPress installation. This will have the base URL as its domain name. You as the network administrator will also be the site administrator for that site, and you can add other users just as you would for an individual site. You can’t remove this site from the network. If you want to activate themes or plugins on the base site, you do so in the same way as you would for any other site in your network.
  • Theme and plugin activation. You might expect to activate themes and plugins in the same way but you don’t. You install both of them via the network admin screens, but that’s where the similarity ends. With plugins, you can network activate them or not activate them at all, in which case they have to be activated via the Plugins screen in each individual site where they will run. For themes, you can network enable them, which makes them available for individual site administrators to activate on their site. Or you can enable themes for individual sites via the Sites admin screens, which means only those sites can activate them and the other site admins can’t see them. This is useful if you’re running a network of client sites each of which has its own theme.
  • User creation. Users can be added by the network administrator or by site administrators. If you add a user via the network admin screens, they have a user account on the network  but don’t have any privileges for other sites (including the base site). If a site administrator adds a user, they will just have user access to that site, but site administrators for other sites can also add them to their own site.
  • Updates. When you update themes, plugins and WordPress itself, you do it from the network admin screens and it will apply to all of the sites in your network. This is why it’s very important to test any updates on a development site before applying them to your live network – if a plugin update breaks something, it could affect one site, or thousands! You can install a plugin that helps you to identify which sites are running which themes and plugins, which I’ll look at in detail in a later part of this course.
network admin - plugins screen
Install, activate and update plugins via the network admin screens

As a network administrator you have additional capabilities compared to a site administrator:

  • Capabilities relating to the network held by the superadmin are manage_network, manage_sites, manage_network_users, manage_network_plugins, manage_network_themes and manage_network_options.
  • Capabilities which a site admin would have in a standard installation but which are only held by the superadmin in a Multisite network are update_core, update_plugins, update_themes, install_plugins, install_themes, delete_themes, delete_plugins, edit_plugins, edit_themes, edit_files, edit_users, create_users, delete_users and unfiltered_html.
  • Capabilities held by both site admins and network admins are activate_plugins, delete_others_pages, delete_others_posts, delete_pages, delete_posts, delete_private_pages, delete_private_posts, delete_published_pages, delete_published_posts, edit_dashboard, edit_others_pages, edit_others_posts, edit_pages, edit_posts, edit_private_pages, edit_private_posts, edit_published_pages, edit_published_posts, edit_theme_options, export, import, list_users, manage_categories, manage_links, manage_options, moderate_comments, promote_users, publish_pages, publish_posts, read_private_pages, read_private_posts, read, remove_users, switch_themes and upload_files.

This means that as network administrator you can also edit and manage the individual sites on your network.

Site Administration

Whenever a new site is created on your network, it will have a site administrator. If the site is created by the network administrator, then the site administrator will be the same person. If the site is created via the signup screens, then the person creating the site will be the site administrator. It’s possible to add additional administrators to each site just as it is for a standalone WordPress site.

For site administrators, the screens they will have access to and the capabilities they have will be different from a standalone installation. The key differences are:

  • Installing plugins and themes. Site admins can’t install plugins or themes. If a theme has been network enabled or enabled for their site, they can activate it via the Themes screen. If the network administrator gives site administrators access to plugin management, they can activate plugins. They can’t see any plugins that have been network activated in the Plugins screen. Site administrators can’t update plugins or themes.
  • Managing Settings. There are some site settings that only network administrators have access to. These include maximum file upload size, user registration and new site settings.

Site administrators have all the same capabilities and screens for creating and editing content as they would on a standalone site. They can also add users to their site, including users already registered on the network and new users.

site admin screens - user creation
Site administrators can create new users or add existing users on the network to their site.

If the network administrator has enabled it via the network settings, site administrators can also activate plugins that haven’t been network activated. This is useful if you’re letting people create and manage their own sites in a similar way to edublogs or WordPress.com.

File Structure

A Multisite network includes the same WordPress files as any other installation, so the files in the root folder, in wp-admin and wp-includes will be the same. The plugin and theme folders in wp-content will also be the same. This is a much more efficient way of storing all of these files if you’re managing multiple sites: instead of storing each theme or plugin many times on many sites, you just have one network with one copy of the theme or plugin and as many sites as you need.

The one difference is in the way the uploads folder is structured inside wp-content. In a standard installation, the uploads folder will contain one folder for each year since the site was created, with each of those having folders for the months in which media was uploaded. In a Multisite installation, the uploads for each of the sites are stored separately.

The uploads for the base site will be stored in exactly the same way as for a standalone site. It’s important that this works in the same way, as if you activate Multisite on a site that you’ve already added content and uploads to, you still want those uploads to work. But all of the other sites will have their own folder for uploads. In the wp-content/uploads folder, a new folder is created called sites. Within that there is a folder for each site created on your network, with its name being the ID of the site.  Each site has its own unique numerical ID, starting with 2. Then within that numbered folder the uploads will have the same structure as for a standalone site, with folders for each year and then month.

folder stricture in WordPress Multisite
The structure of the wp-content/uploads folder in Multisite

This means that if you upload a file called media.png to the site with the ID of 10 during March 2016, it will be stored as wp-content/uploads/sites/10/2016/03/media.png.

Database Structure

The database for a Multisite installation will also have a different structure from that of a standalone site. A standard WordPress site has eleven database tables:

  • wp_posts
  • wp_postmeta
  • wp_comments
  • wp_commentmeta
  • wp_links
  • wp_term_relationships
  • wp_term_taxonomy
  • wp_terms
  • wp_options
  • wp_users
  • wp_usermeta

In a Multisite installation, the tables are separated out for each site. So there will still be a copy of each of these tables, plus extra tables for each site. Nine of the tables are duplicated for each site – everything except wp_users and wp_usermeta.

The two tables with user data are just held once, as any users are users across your entire network and not just for one site. Each of the other nine is duplicated for each site, with the site ID added to its prefix. So the site with ID 10 will have the following tables for its content:

  • wp_10_posts
  • wp_10_postmeta
  • wp_10_comments
  • wp_10_commentmeta
  • wp_10_links
  • wp_10_term_relationships
  • wp_10_term_taxonomy
  • wp_10_terms
  • wp_10_options

In addition, WordPress creates some extra tables which store data relating to the network itself. These are:

  • wp_blogs
  • wp_blog_versions
  • wp_registration_log
  • wp_signups
  • wp_site
  • wp_sitemeta
  • wp_sitecategories (optional)

These store data relating to network settings and sites created. For more details of the database tables and how they work with Multisite, read this guide.

Domains

Another difference with Multisite is the domains used for each site in the network. Each one has its own domain, which is created using either a subdomain or a subdirectory of the main site’s url. These work as follows:

  • 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.

If you’re activating Multisite on a local site (i.e. one on your local machine using MAMP or similar to run WordPress), then you won’t be allowed to use subdomains when setting things up – you’ll have to use subdirectories. If you’re activating Multisite on a WordPress installation that’s over a month old, you won’t be given the option to use subfolders: you’ll have to use subdomains. This is because your site may already include posts or pages with slugs that would conflict with the subdirectory for a new site being set up on the network.

In order to avoid slug clashes, the blog in your base site will have its permalinks changed when you activate Multisite using subfolders, so if you have pretty permalinks enabled, a post at http://yoursite.com/name-of-my-post will move to http://yoursite.com/blog/name-of-my-post. Again this is to avoid conflicts between your post titles and any subfolders.

I’ll cover domains, wildcard domains and domain mapping in more detail in a later part of this course.

Uses for WordPress Multisite

Multisite has a variety of uses you can put it to. Some of these will support comities, others will be great for business. They include:

  • Managing your own sites
  • Hosting sites for clients
  • Hosting multiple sites for one organization
  • Charging people to create sites
  • Supporting a community

Let’s take a look at each of these.

Managing Your Own Sites

I talk to a lot of WordPress users and developer who have lots and lots of their own sites. Maybe they support personal projects, perhaps they’re for different businesses or maybe (like me) they demonstrate different techniques.

I have a Multisite network which includes dozens of sites I’ve created to demonstrate techniques that I’ve written about in tutorials, books and articles. Most of these sites are small, with one plugin or theme activated that uses the code in a tutorial. Others are bigger, and support an entire book.

Being able to keep all these in one place saves me lots of work when I need to update plugins, themes, or WordPress itself. Lots of the themes I use for tutorials are child themes of the Twenty Sixteen default WordPress themes, and so I only need to store and update one copy of Twenty Sixteen.

If you’re one of those people who likes to create personal sites, then Multisite is a great way to look after them. And with domain mapping, you can use a separate domain for each of them – no-one will ever know they’re running on a network.

Hosting Sites for Clients

Using Multisite to host client sites is another way to be more efficient and use less server space.

My agency, Compass Design, develops and hosts websites for small business clients. I don’t host all of my client sites in one network, as some are too bespoke, but a sizeable proportion of the sites I host are small sites with less than 20 pages. All of these are built using a child of the same framework theme, which I built myself. If I ever update the framework theme I only need to do it once on my network, and the same applies for plugins. This makes the process of updating much quicker and more efficient.  And domain mapping means that each site has its own unique domain, so my client’s customers never know that their site is hosted on my network.

By using plugins such as Support System and Snapshot, I can use my Multisite network to improve the service I offer clients. Snapshot is Multisite-compatible and lets me configure all my backup options from one place, and Support System lets me receive and respond to support requests from clients.

support system plugin on WPMU DEV
Support System lets you respond to your users’ support queries

If you’re using Multisite like this, the same caveat applies when doing updates – test on a development site first! I have a local copy of my network, which I activate any updates on and test before doing so on the live sites. These are client sites, treat them with care!

Hosting Multiple Sites for One Organization

Imagine you’re the website manager for a large organization that works in many countries. You might have separate websites for each of those countries, with the headache of managing them all. Or you could have multiple sites in the same language, maybe for different departments.

BBC America website
BBC America uses Multisite to host a network of blogs

Multisite makes it easy to have separate sites but manage them all from one place.

If all your sites are using one child theme, you only need to store and keep it updated once. If you’re using the same plugins across all your sites, there are more efficiencies. And even better, you can allow cross–posting of content between sites, create a community of users across your organization and set up a template site for use every time a new site is created for a new country or department.

Making Money with Multisite

Multisite is a tool you can use to support a business and make money. If you set up a network that allows people to create their own sites, then there are a variety of charging models you can use to make money from that network.

These include:

  • Charging for site creation
  • Charging for enhanced features
  • Charging for specific plugins or themes
  • Charging for support or extra services
  • Charging people to use their own domain

We use some of these on Edublogs. Creating a site is free, but if you want advanced features and extra plugins, you need to pay. WordPress.com works in a similar way.

WordPress.com pricing plans
One way to make money from a network is by having premium options, in a similar way to WordPress.com

There will be a whole part of this course dedicated to the process of setting up site creation for users which will include content on charging for sites or features.

Supporting a Community

Multisite isn’t just about running a business and making money: it’s a great tool for supporting communities. It lets you create a network of sites run by users who are all part of a community. That could be a club or a loose grouping of people with similar interests.

Multisite lets your community members not only create sites but also communicate with each other, follow each other’s posts and share content. It can provide a useful resource for the members of your community and let them be better connected.

Multisite Has Many Uses and Benefits

Now that you’ve read this first part in our Multisite course, you’ll know how useful and versatile WordPress Multisite can be. In the later parts of this course we’ll go into the more practical aspects of creating and managing a WordPress network, including activating Multisite and configuring your network; enabling and enhancing site creation for users; domain mapping; creating a community; and managing your network.

I look forward to working through this series with you!

Missed a tutorial in our Multisite masterclass series? You can catch up on all six posts here:

All the good WordPress stuff, once every two weeks

Subscribe

Leave a comment