WordPress Multisite
12 min read
WordPress Multisite: The Everything-You-Need-To-Know Guide to WordPress Network
If you’ve been working with WordPress for a while, there’s a chance you might have more than a few sites running. If your sites have a few things in common, you might wonder: is there a more efficient way to run them than managing them as single installs?
WordPress Multisite could be what you’re looking for. It lets you create a network on your WordPress installation, meaning that you can then run as many sites as you want in that network, all on one instance of WordPress. Think of this: WordPress.com is a great example of a WordPress Multisite installation running millions of sites.
In this article, I’ll guide you through everything you need to know to install WordPress Multisite and to get the most from it. I’ll cover:
WordPress Multisite is a big topic with lots of aspects. But it isn’t difficult to get to grips with, and once you’ve worked through this article, you’ll know everything you need to run a Multisite network in WordPress.
So let’s start by identifying exactly what WordPress Multisite is.
What Is WordPress Multisite?
WordPress Multisite is a way of adding multiple sites to your WordPress installation. It’s a feature that you can add to either your existing or newly-created WordPress site. To activate WordPress Multisite, you add a few lines of code to a couple of files in your WordPress installation (which I’ll show you shortly). Then you create sites in your network. The existing site stays there, with its URL unchanged, while the new sites are added on top.
WordPress Installation vs WordPress Multisite (Key Differences):
- The number of individual sites.
- The user roles – activating Multisite adds the network admin role.
- Access to themes and plugins – only the network admin can install them.
- The admin screens – Multisite adds some screens for managing the network.
- The way media is stored – Multisite adds extra folders for uploads to each site.
- The way data is stored – Multisite creates extra database tables for each site but stores some data (e.g. users) for the whole network.
Let’s take a closer look at them.
WordPress Multisite User Roles: From Admin User to Network Administrator
When you install WordPress Multisite, you become the network administrator with administrator privileges for any site you create on your network. You can also allow other people to create their own sites within the network and make them site admins for that site.
Site admins have lower levels of access that a network admin. As a network admin, you can install themes and plugins, while a site admin can activate them for their site(s), but they can’t install new ones. This helps you to keep your network secure, as you don’t want site admins adding code that could compromise the network.
Site admins can add new users, but those users will only have access to the individual sites they’re added to and not all of the sites on the network. Users are stored once for the whole network, so you can give existing users access to more sites without adding another account. I’ll show you how WordPress Multisite stores user data and other data later in this post.
WordPress Multisite and Domain Names
Another key difference between a standard WordPress installation and a Multisite network is the domain names. Your network has the same url as the site you set it up on. So, if your site is at mysite.com, the network is also at that address.
When you activate Multisite, you specify whether the sites will use subdomains (site1.mysite.com) or subdirectories (mysite.com/site1). You can also map other domains to your network so that individual sites behave as if they’re on their own domain: as far as site users are concerned, the site looks as if it’s using its own standalone WordPress installation.
The world’s biggest example of a WordPress Multisite network is WordPress.com. It hosts millions of sites of varying sizes, from mommy bloggers to major corporations, and does so by managing the data in some bespoke and complex ways that you don’t need to worry about. There are other organizations using WordPress Multisite in ways that you’ll be able to identify more closely with, and I’ll show you some examples in this post.
You might be thinking that this all adds an extra layer of complexity and that it would be easier to just run multiple WordPress installations. But Multisite does have plenty of advantages, so let’s look at those in more detail.
Benefits of WordPress Multisite
I’ve got a confession to make: I’m biased. I’m a big fan of WordPress Multisite and I’ve been using it for years to create personal and client sites.
But there’s a reason for that bias, and that’s because WordPress Multisite is a great tool. If you’re running multiple WordPress sites, it will save you time and make you more efficient.
Multisite could be for you if you’ve ever:
- Installed the same plugins on every site you launch (e.g. performance, security, SEO).
- Used a framework theme as a parent theme on multiple sites.
- Developed multiple sites for different branches of an organization with elements in common such as branding or structure.
- Spent longer than you’d like updating multiple sites when you’d rather spend time developing or managing them.
Let’s take a look at these benefits in more detail.
More Efficient Code
Running multiple sites on one network means less code. No matter how many sites they’re activated on, there’s only one set of core WordPress files and only one copy of each theme and plugin.
This means your network is taking up less server space than if you were running a separate WordPress installation for every site. The more sites you add, the more this adds up. It can save you money on hosting and time keeping that code up to date.
More Efficient Development
If you’re developing sites with custom themes, you might have a base theme you use as your starting point. This could be a framework theme, a simple parent theme, or a starter theme (suggested reading: How to Customize Your WordPress Theme).
By working in Multisite, you can install that WordPress theme once, use it as a parent theme for the themes activated on individual sites in your network, and save yourself time.
When I started doing client work, I developed a framework theme for all of my sites. I used to install it in every new WordPress installation for every client and then create a child theme which would be activated for the site. Now, I just have that framework theme in my Multisite network and each site has its own child theme.
This is particularly useful if your sites will have design elements in common. If you’re creating sites for multiple divisions of a company, for example, you can create a parent theme with all of the common design and layout elements, then develop a child theme for each site and activate each for the relevant site.
Not only does this save on storing (and updating) multiple instances of your parent theme, it also means you can display content from other sites in the network across the sites in your business. This lets you create something more than just a collection of individual sites.
More Efficient Management
Keeping your WordPress Multisite network updated will be much more efficient than doing the same for multiple WordPress installations.
You only have to update all of the themes and plugins in your network once, regardless of how many sites they’re active on.
Rigorous testing will be especially important when you’re running a theme or plugin on multiple sites, as you’ll need to test on all the relevant sites. You can use Kinsta’s staging environment to test updates on your staging network and then push that to live when you’re happy everything works.
WordPress Multisite: Most Common Use Cases
There are lots of different ways you can use WordPress Multisite. Let’s see some examples.
Personal Sites
If you’re running more than one personal site, it will save time if you migrate them to one Multisite installation. This is something I do. I keep all of my own sites on a single Multisite network, for three reasons:
- They have code in common (the parent theme and a number of plugins).
- It saves on hosting space and on time updating them.
- I want to be able to display data from one site in my network on another site.
I use domain mapping to map individual domain names to each site, so as far as users are concerned, they’re separate sites.
Hosting Client Sites
When I started building client sites, I had a checklist of WordPress plugins I would install on each one. I would also use the same parent theme for each of them.
When I discovered WordPress Multisite, I realized that I could be more efficient by migrating all of these sites to one network and keeping the code updated there. It also means that I only have one WordPress installation to keep secure and to back up. All of which saves time and hassle.
You can use domain mapping to map the client’s domain to their site and this will apply to the admin screens as well as the public site. This way, your clients don’t need to worry about the fact you’re using Multisite to host their site (although mine certainly don’t object).
Business Sites
If you run sites for different divisions of a business, then it can be much more efficient to use WordPress Multisite.
You’ll only have one WordPress installation to update, you can share data and users across sites, and you can use the same parent theme and plugins across the network. This will save time when developing the site and when managing it later on.
BBC America is an example of a business that uses a Multisite network for a growing number of sites: each show has its own site in one network.
Intranets
Even if using Multisite for the public-facing site isn’t for you, you might find that using Multisite for the company intranet works better than having one big WordPress site or multiple smaller ones.
Using Multisite for a company intranet means you can:
- Add individual sites for each division and give employees access to the appropriate one(s).
- Add each employee as a user just once and give them access to the site(s) they need.
- Share content across sites, for example displaying updates from a central site on the homepage of the individual sites.
User management alone will make this option much more effective than any other approach.
Community Networks
Community groups and organizations need an online presence but can find it expensive. Using a Multisite network to host multiple groups’ sites will save money and enhance the opportunity for those groups to network with each other.
You can install plugins that let site users follow each other’s blogs and communicate with each other in the admin screens, and you can share content between sites too.
And with just one WordPress installation to buy hosting for, you could save a lot of money.
WordPress Multisite is used by charities, nonprofits, and educational bodies: one example is the University of British Columbia, which uses Multisite to host a network of blogs for faculty and students.
Monetization
Running a Multisite network is a great way to monetize WordPress. WordPress.com is one example of a business that’s made money by offering people sites in a network, and there are others such as edublogs, which hosts educational sites and blogs.
You can use your base site (the one you originally activated Multisite on) to run a page that allows people to create their own site on your network, and you can make that free or you can charge. Then you can offer plans to blog owners, ranging from free to premium, with levels in between.
You can use the network admin to provide support to blog owners and to communicate with them via notifications and updates, and build a community of users.
So, those are some of the ways you can use Multisite. Now let’s look at how you activate it on your WordPress site.
How to Set Up and Activate WordPress Multisite
When you’re setting up WordPress Multisite, you have two options: you can either activate it on a brand new site or you can add it to an existing site. Both are equally valid, but there will be some differences.
Let’s start with the first option: how to activate WordPress Multisite on a brand new site.
Activating WordPress Multisite with the Kinsta Auto-installer
If you install WordPress using an auto-installer provided by your hosting company, you may have the option to activate Multisite at the same time.
When you install WordPress in MyKinsta, you have the option to activate Multisite at the same time. Check the should we activate WordPress Multisite? checkbox and Multisite will be activated in your new site. You also have the option to choose between subdomains and subdirectories – more of which shortly.
Activating Multisite Manually
To do this, you’ll need access to the files in your WordPress installation. Use SFTP and a code editor to access your files. The two files you’ll be editing are .htaccessand wp-config.php, both of which are in the base folder of your WordPress installation. Make a backup of both of those before you start. (It’s also a good idea to backup your entire site too.)
If your site is hosted on Kinsta, you won’t need to configure the .htaccess rules because our hosting stack does not utilize the Apache web server. However, if you are looking to set up a subdirectory subsite, you’ll need to reach out to our support team to edit the Nginx configuration.
To start, open up the wp-config.php file in your code editor (check out the 10 best free HTML editors). In that file, find this line:
/* That's all, stop editing! Happy blogging. */
Immediately above it, add this line of code:
define( 'WP_ALLOW_MULTISITE', true );
Now save your file.
Go to your site admin in your browser. Go to the Network Setup screen that will have been created for you (via Tools > Network Setup).
You’ll see a screen which asks how you want your network to be set up, using subdomains or subdirectories.
If you’re given the option, select which one you want to use (see the section below to find out the difference). Enter the title and admin email address for your network in the relevant fields and click the Install button.
You’ll be taken to the Network Setup screen. This screen will contain some code that you then need to copy and paste into two files: the wp-config.php file and the .htaccess file.
Open the two files and paste in the code from this screen, making sure you overwrite anything it tells you to.
Note: your code will be different from the code in the screenshot above, as your site is different from mine.
Save and close those two files and go back to your site admin. Click the link in the Network Setup screen to log in to your network. Use the same login credentials you’ve always used.
You’ll now find that your admin screens have changed a little. You’ll have a new item in the toolbar at the top called My Sites, and another called Network Admin.
Hover your mouse over the My Sites link, and you’ll see a new menu which takes you to the network admin screens. Click the Dashboard link to go to the network dashboard.
This dashboard looks very similar to the dashboard for a standard WordPress site. There won’t be any blog posts, Quick Edit, or anything relating to content – because the network doesn’t have content. That’s all in the individual sites.
The admin menu on the left is also different. You’ll have a new item called Sites, which gives you access to site creation and management. And some of the other menus are slightly different. Take some time to explore and get to know them. We’ll look at how you use these screens to manage your network later in this post.
Activating WordPress Multisite on an Existing WordPress Installation
To activate Multisite on an existing WordPress site, you follow the same manual steps above. There’s just one difference: you won’t be able to use subdirectories if the site is more than a month old.
This is because the more content you’ve already added to the site, the greater the risk of a clash between the URLs for existing posts and pages, and for new sites in the network.
Imagine you created a site for a business called McCollin Paints, which has a subdivision called McCollin Varnishes. You might have already created a page at mccollin-paints.com/mccollin-varnishes. Then you create a site in your new network for McCollin Varnishes. If you used subdirectories, that site might then be at the exact same URL. WordPress wouldn’t know which content to display when a user visits that URL. So instead, your network will use subdomains, and it will be at mccollin-varnishes.mccollin-paints.com. (With apologies if there is a business called McCollin Paints out there!)
WordPress Multisite: Subdomains vs Subdirectories
I’ve already mentioned subdomains and subdirectories. If you’re activating Multisite on a new WordPress installation, you have the option to choose which one you use. Here’s the difference:
- Using subdomains means each site will have a URL like https://site1.yournetwork.com. This is preferable if you want to allow other people to create sites on your network.
- If you choose subdirectories, each site will have a URL like https://yournetwork.com/site1. If your site has been running for more than a month, you won’t have this option: you’ll have to use subdomains.
Of course, you might intend to use domain mapping to map a standalone domain name to each site in your network, as I do on my own networks. If this is the case, it really doesn’t matter which of subdomains or subdirectories you use, as they’ll never be seen.
How to Fix the WordPress Multisite Cookies Error
In some cases, you may encounter a cookies-related error when logging in to a WordPress multisite installation.
Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.
This common error occurs in certain multisite configurations, especially ones with custom domain mapping. To fix this error, add the code below to your wp-config.php file.
define('ADMIN_COOKIE_PATH', '/');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
define('COOKIE_DOMAIN', false);
How to Manage Sites in a WordPress Multisite Network
Now you’ve got your network set up, the next step is to start adding some sites. There are two ways to do this: via the admin screens or via the front end of your main site. Let’s start with how you do it via the admin.
WordPress Multisite: Adding a Site via the WordPress Admin
From the network admin dashboard, click the Sites link in the left-hand menu. This will display a list of the sites in your network, assuming you’ve added some. When you first start, it’ll be empty.
To create a new site, click the Add New button to go to the Add New Site screen:
Fill in the details of the new site and click the Add Site button. When you go back to the Sites screen, your new site will be displayed. If you hover your mouse over its name you’ll have a few links available to you:
- Edit– to edit site settings (not the content).
- Dashboard– to visit the site dashboard, from where you can add new posts and pages and get the site configured.
- Deactivate– to deactivate the site so no one can visit it.
- Archive– make the site inaccessible to visitors and site admins but don’t delete it.
- Spam– mark as spam, so that the user who created that site can’t create any more.
- Delete– delete the site and all its data.
- Visit– visit the front end of the site.
The most useful option at this stage is Edit. Click on that to see the site editing screens.
Here’s an example from an existing site on my network:
Here you can change the main settings for the site, such as its domain name and title. You can also access the Themes screen where you can specify which themes will be enabled for this site.
If you’re hosting your own sites or client sites, you may just want to enable one theme for each site. For a network on which you’re allowing people to create their own sites, you’ll want to network-enable multiple themes. You can do this from the main Themes screen in the network admin.
We’ll take a closer look at how you manage themes and plugins in your network later in this post, as it’s different from a standard WordPress site.
WordPress Multisite: Creating a Site from the FrontEnd
If you’re allowing users to create their own site, they’ll do this from the /wp-signup.php screen in the main site.
This displays a screen allowing someone to either log in with an existing user account and create a site, or to create both a site and a user account at the same time.
If you just want to create sites yourself via the admin screens, you can disable signups. Go to Network Admin > Network Settings and select the Registration is disabled radio button.
If you create a site from the admin screens, you’ll have site admin privileges for it and it will be in the My Sites dropdown menu. If someone else creates the site, you won’t have site admin privileges and it won’t be in that list (although you can always add yourself as a site admin to any site via the Sites screens).
WordPress Multisite and Domain Mapping
Domain mapping is one of my favorite features of Multisite. It lets you map a domain to a site in your network and have it behave as if it’s hosted on that domain.
Note: Until WordPress version 4.5, you needed a plugin to do this. You don’t anymore.
Working With Users in WordPress Multisite
Working with users in Multisite is very similar to a standard WordPress installation, with just a few differences.
Users can be created and managed by site admins and the network admin. The difference is that a site admin can only remove user privileges for their site: they can’t remove the user from the network.
Adding Users as a Network Admin (AKA Super Admin)
To add a user as a network admin, go to Users > Add New in the network admin screens.
Here you fill in the username and email address. The user will receive an email inviting them to set a password and log in.
Once you’ve added a user, you can edit the user via the Users screen in the same way you would in a standard WordPress installation. There is then a special privilege called “Super Admin” which you can grant to the user.
Adding Users as a Site Admin
Site admins can also add users to their site. They can either add an existing user in the network or a completely new user. To do this from the site admin screens, go to Users > Add New.
For existing users, just fill in the email address or username and the role they will have on that site. For users who are new to the network, you’ll need a username (which must be unique) and an email address. If you skip the confirmation email, you’ll need to assign them a password yourself via their user admin screen: it’s easier to get WordPress to look after that for you.
Setting Up and Managing User Roles (Site Admin vs Network Admin)
Both site admins and network admins (AKA super admins) can add users and edit their privileges and information, although network admins can do more.
As a network admin, you work with users by going to the Users screen. Here, you can see which sites each user has privileges for and access their editing screen.
To change a user’s privileges for a site or to remove or add them to a site, you’ll need to go to the editing screen for the site. Go to the Sites screen, click on Edit for that site and select the Users tab.
From here, you can change user roles on the site, remove users and add new ones.
As a site admin, you can edit the user details for each user on your site or remove them. Go to the Users screen and click on the user to access their editing screen. From here you can edit their details and change their role in the same way you would for a standard WordPress installation.
Removing Users (Site Admin vs Network Admin)
Network admins can remove users from individual sites or from the entire network. Site admins can just remove users from their site.
As a network admin, go to the Users screen, select the checkbox next to that user’s records and then select the Bulk Actions dropdown list above the list of users. From here you can delete the user and/or mark them as spam. If you mark them as spam, they won’t be able to register for your network again.
As a site admin, you can remove a user from your site via the Users screen. Select the checkbox next to the username and click on the Remove option in the Bulk Actions dropdown list.
Users and Security
As it’s possible for people to create accounts on your network and then create their own site, you may have some concerns about security.
The good news is that you can configure your network settings for the level of access you need, and you can enhance security by blocking email domains.
In the network admin screens, go to Settings > Network Settings. Here you’ll find fields in the Registration settings section that you can use to enhance security and restrict access.
- Allow new registrations: Specify whether new users can register and whether sites can be created by people registering for the first time or just by existing logged-in users. Or you can close down site registration so that only you as the network admin can do it.
- Registration: I recommend keeping this notification on so you know when someone has registered a site or an account. It helps you keep track of what’s happening and gives you an opportunity to make contact with new customers.
- Add New Users: If you uncheck this box, you can prevent site admins from adding new users to the network. Instead, they’ll only be able to add existing users on the network to their site.
- Banned Names: Here you can add words you don’t want to be included in usernames.
- Limited Email Registrations: List the email domains that can be used for new user accounts. Useful for an intranet or company or educational network.
- Banned Email Domains: Ban certain email domains if you’re concerned about spam or malicious accounts.
Working with Plugins and Themes in WordPress Multisite
One of the big benefits of Multisite is that your plugins and themes are only stored once. This means less storage space and less time updating them. Let’s find out more about how you manage plugins and themes in Multisite.
How Plugins and Themes are Stored
Themes and plugins are stored in the wp-content directory of your WordPress installation the same way as they are in a standard site. This means each plugin and theme is only stored once, regardless of how many times it’s used.
Installing and Activating Plugins
Only the network administrator can install themes; site admins don’t have the privileges. Depending on the way you configure your network, you can prevent site admins from activating plugins too, by selecting this in the Network Settings screen.
To install a plugin, go to Plugins > Add New in the network admin and install it in the usual way. You can then choose to network activate it. If you don’t, it will be available for individual site admins to activate it on their site.
Plugins that are network activated will run on all sites and be visible in the Plugins screen for those sites. But the site admins won’t be able to deactivate them. They can activate any other installed plugin.
Installing and Enabling Themes
You can only install a theme via the network admin screens. To do so, go to the Themes screen in the network admin, and install it in the same way you would for a normal site.
When it comes to enabling themes, WordPress Multisite works differently. You can either enable a theme for the entire network, or for individual sites.
Note: Multisite includes the ability to enable a theme for a site, not to activate it. This is because you can only activate one theme for each site, and you do so via the site settings not the network settings.
To network enable a theme, go to the Themes screen in the network admin, find the theme, and click the Network Enable link beneath it.
To enable a theme for an individual site, go to the Sites screen and click the Edit link for the relevant site. Click on the Themes tab and click the Enable link under the theme’s name.
This will make the theme visible to the site admin, so they can choose to activate it. Any themes not enabled either for the network or the individual site won’t be visible to the site admin.
This means there’s a fundamental difference between the way themes and plugins are activated in Multisite:
- A network activated plugin will run on all sites in the network and site admins won’t be able to deactivate it. A network enabled theme will be available for site admins to activate if they choose to.
- A plugin that isn’t network activated will be available for site admins to activate if they choose. A theme which isn’t network enabled will only be available to a site if it’s been enabled for that site. Themes that haven’t been network enabled or enabled for a site will be invisible to that site admin.
Suggested reading: How to Delete a WordPress Theme.
How Multisite Stores Media
A WordPress Multisite network stores media differently from a standard site.
When you upload attachments to pages and posts in individual sites, the interface works in the same way as for a normal site, so a site admin or editor wouldn’t see any difference. The difference is in the way the files are stored.
When you activate Multisite on your WordPress installation, a new folder is created in the wp-content/uploads directory, called “sites”. This will hold all of the media uploaded to the sites in your network.
Each time you create a new site on the network (or a user does), WordPress creates a new folder in that “sites” folder, with a name equivalent to the ID of the site. The base site has ID 01, so the first new site you create in your network will have the ID of 02. This means that WordPress will create a new folder at wp-content/uploads/sites/02. All of the uploads for that site will be stored in that folder, in the same year and month based structure as is used in a standard site.
Uploads to the base site are stored in the wp-uploads folder in the same way as for a standard site: Multisite doesn’t create an extra folder for those.
How Multisite Stores Data
Multisite also stores data a little differently.
When you activate Multisite, seven new database tables are created. These will store data relating to the network.
They are:
- wp_blogs
- wp_blog_versions
- wp_registration_log
- wp_signups
- wp_site
- wp_sitemeta
- wp_sitecategories (optional)
The other tables that store data for the whole network are wp_users and wp_usermeta because users are stored for the network and not for individual sites. These tables won’t be created, as you already have them in the database for a standard site.
When you create a new site on your network, WordPress creates 11 new tables for that site. These are given a prefix that corresponds to the site ID. So for site 02, the following tables will be created:
- wp_2_posts
- wp_2_postmeta
- wp_2_comments
- wp_2_commentmeta
- wp_2_users
- wp_2_usermeta
- wp_2_links
- wp_2_term_relationships
- wp_2_term_taxonomy
- wp_2_terms
- wp_2_options
If you activate a plugin that creates extra database tables on a site, it’ll use the same prefix and create tables for each site where it’s activated.
As your network grows and more sites are added, more database tables will be added. This makes it possible for WordPress to keep the data for each site separate, so there is no chance of site admins accessing data from another site.
Summary
WordPress Multisite is an incredibly powerful tool. If you’re creating more than one site, for yourself, for a community, or for clients, it can save on disk space and make you more efficient.
There are lots of uses for WordPress Multisite: you can use it for your personal sites, to host client sites or community sites, for the sites in a business, or to run a WordPress.com-like system of blogs people create themselves. Taking time to get to grips with Multisite will be something that could reap significant rewards in the long run.
Who We Are?
We are agileHorde Technologies, an award-winning mobile app and web app/e-commerce development company based in India, USA, Philippines. We develop business apps and Ecommerce apps (Shopify, Magento, Prestashop, Woocommerce) that help businesses engage customers effectively.
Contact us to get your Premium e-Store loaded with FULL FEATURES including FULFILMENT SERVICE/ PAYMENT GATEWAY installed @ best price. If you want to find out more, or are looking to outsource development of a tailored application, please reach us at info@agilehorde.com or agileHorde Top Mobile App and Web App Development Company.
Thanks for reading the blog :)
Comments
Post a Comment