How I Use WordPress Multisite to Host Client Sites

For the past two years, I’ve been running almost all of my client sites on a single Multisite network and I haven’t looked back.

Keeping sites up-to-date takes a fraction of the time, I only have one backup schedule to manage, and if I ever need to move my sites, I know it will take a lot less time than it did before when I was running multiple single WordPress installs.

So how do I make it work and could it work for you?

In this post, I’ll explain why and how I moved to hosting most of my client sites on WordPress Multisite. I’ll also run through some of the criteria for doing this successfully, and the things you need to take into account before taking the plunge. Then I’ll work through the techniques and tricks you’ll need to use if you’re going to successfully host client sites on Multisite yourself.

How and Why I Came to Use Multisite for Client Hosting

Like plenty of WordPress developers, I started out by creating simple sites for small businesses – what some people call brochureware. These were all straightforward sites with half a dozen static pages or so, a custom theme, some plugins and maybe a blog (although most of my clients didn’t update these if they had one).

I’d been advised that I needed reseller web hosting, so I bought a reseller package, and passed the cost on to my clients, with regular charges for hosting and site management, including updates and testing.

Over time, I worked to streamline the way I worked, adopting the Don’t Repeat Yourself (DRY) principle. For me, this consisted of:

  • Developing my own theme framework for use as a parent theme on every client site, meaning I didn’t have to start coding from scratch for each new project.
  • Pulling together a list of essential plugins which I installed on every client site, including plugins for backing up, performance and SEO.

This made my life a bit easier, but it also meant that every time I created a new client site, I’d have to install WordPress, upload that parent theme and install the plugins from my checklist.

But because I was providing reseller hosting to my clients, there was no way around this: every site had to be on its own hosting package.

However, I soon came to realise that not one of my clients ever accessed their hosting. Although I’d sent them instructions on using cPanel, configuring email accounts etc. when their sites were launched, every time one of them needed to do some hosting configuration, they got me to do it for them.

Which meant I was paying for reseller hosting, creating (and updating) all of those WordPress installations, without my clients actually getting the benefit.

But I was forced to change my approach when my hosting company’s server was hacked…

Hacked!

I’m sure it’s happened to all of us. Just over two years ago, I started noticing some strange behaviour on one of the sites I was hosting. Occasionally when I launched the site, the browser would redirect to a dating site. This didn’t happen every time and only happened to one site, which was a personal project. In fact, I couldn’t replicate the behaviour when I tried to so I assumed it was a one-off glitch and didn’t worry too much.

Then a couple of days later I got a call from a client. A primary school. Visitors to their website were being redirected to the same dating site. Obviously, given the nature of their site, they weren’t happy. I shut the site down immediately at their request and got straight onto my hosting company.

Unfortunately my hosting company, even after performing multiple scans of their server and my sites, were unable to identify the problem. So I talked to another company, who quickly worked out the problem quickly from my description: a server hack. Of course, I switched to them.

Moving All Those Websites Was a Major Hassle

Which meant that I had to move all of my clients’ websites from one host to another. My new hosting company did offer to help, but I decided to review the way I was hosting those sites. If I ever had to move my client sites again, I only wanted to do it once.

So I did two things. I moved the remainder of my clients to Google apps for their email instead of hosting emails with their website (many of them were already doing this), and I moved all of the sites into a new WordPress Multisite installation.

If you need to move a lot of sites in a hurry, Snapshot pro can make it easier.
If you need to move a lot of sites in a hurry, Snapshot pro can make it easier.

This took me a whole weekend – somehow these things always happen at the weekend!

The best thing? I only had to install my key plugins and my theme framework once.

The worst thing? Just imagine transferring all of those database tables into a Multisite network. It’s possible, but it isn’t easy.

Is Multisite an Option for Your Client Site Hosting?

I think that using Multisite for client sites works really well, and recommend it frequently. But I realize it isn’t for everyone.

When Multisite Might Not Be Suitable

Here are some circumstances in which this approach wouldn’t work for you:

  • Your clients need their own hosting account. Clients specifically want access to hosting configuration and will access this (unlike mine).
  • Clients need to be on servers in different parts of the world. My clients are mainly based in the UK. For those clients that aren’t, I work with their hosting, not mine.
  • Clients need email hosted on the same server as their website. Many web hosting providers will offer as many free email accounts as you need, all hosted on the server. But to be honest, it’s not a good idea to make use of this. If a client’s web server goes down, the last thing they want is for their customers to be unable to contact them via email. Most of my clients were already using Google apps to host their email while still using their domain for email addresses. A few weren’t, mainly out of habit. No-one objected to the small extra cost and it gives me one less thing to worry about of there are server problems.
  • One or more of your client sites gets a lot (and I mean a lot) more traffic than the others. Very high-traffic sites are best hosted on their own. I prefer larger clients to buy their own hosting: they need the immediacy of direct content with their hosting provider, without going through me.  And to be honest, I don’t want the hassle.
  • Your hosting setup doesn’t allow Multisite installations. To be frank, if this is the case I’d suggest move hosting providers!
Google apps admin screen
Using Google apps for email means you don’t have to provide reseller hosting

So if your clients have relatively small, low-traffic sites, don’t need access to hosting configuration and are happy to host their email elsewhere, there’s no reason why you shouldn’t host their sites on Multisite.

When Multisite Works Great

But as well as some circumstances in which Multisite might not be the right option, there are plenty of benefits that could persuade you to host your client sites this way. These include:

  • You only have one WordPress installation to keep backed up. Make sure you use a backup plugin like Snapshot Pro, which is compatible with Multisite (many backup plugins aren’t).
  • When a new version of WordPress is released, you only have one installation to update. But be careful to test that the update doesn’t break any of the sites in your network first: see more about local development and testing below.
  • You only need to keep plugins and themes updated in one place. Again, the same applies with regard to testing first.
  • If you’re using a theme framework, you only need one copy of it to keep up to date.
  • If you want, you can create a community of users on your network, linking your clients and providing added value as a developer or agency.
  • You can set custom content which you display across all of your sites in the footer, for example.
  • If you brand your admin screen, you only need to do it once, using a plugin like Ultimate Branding.
  • If you provide support, you only need to do it once. I use the Support System plugin to answer support requests from all my clients.
  • If a lot of your new sites start with the same set of pages (e.g. Home, About, Contact Us), you can copy content from an existing site to the new one using the Multisite Content Copier plugin.
Ultime Branding plugin page
Our Ultimate Branding plugin lets you brand your network to give your clients an ever better experience.

Have I convinced you yet?

Now let’s look at the tools and techniques that can help you make it work.

Making It Work For You

Domain Mapping

Your clients will all have their own domain and will obviously want their website to use it: they won’t want a subdomain of your site. You can easily address this with domain mapping.

The free WordPress MU Domain Mapping plugin lets you map as many domains as you need to each site, so if your clients have multiple domains it’s not a problem.

You set one of those domains as the ‘primary’ domain which means that as far as visitors are concerned, that’s the domain the site is hosted on.

Domain Mapping plugin page
Set up a separate domain for each client site on your network with the Domain Mapping plugin

If you want to go further, you can sell domains to your clients right from your Multisite network, making it easier for them and providing you with extra revenue. Our Domain Mapping plugin offers this and more.

For full instructions on setting up domain mapping, see our ultimate guide to domain mapping with WordPress Multisite.

Backups

The next thing you’ll need to think about is keeping all of those client sites backed up. As they’re all in one place, the consequences of something going wrong with that installation are that much more extreme. Which makes it crucial that you have a plugin that lets you keep backups in multiple locations and makes it easy to restore from backups.

My favourite backup plugin is Snapshot Pro because it’s Multisite compatible and allows one-click restore: here’s why easy restoring is so important. But if you need a free option, take a look at our guide to the best free backup plugins.

Local Development

As all of your client sites are hosted in that one Multisite installation, it’s essential that you don’t tamper with anything on that installation in a way that might cause problems.

You should do your testing and development locally anyway, but if you’re hosting your client sites using Multisite, this becomes even more important. Every time a plugin or theme, or WordPress itself, are updated, test it on your local copy and check that it doesn’t adversely affect any of your sites before updating on the live network.

You should do your testing and development locally - our guide shows you how
You should do your testing and development locally – our guide shows you how

If you’re editing the code in your own themes and plugins, again do it locally before going live. The same goes for adding new sites to the network: develop locally first, check that nothing you do affects anything else in the network, and then deploy.

For guidance on this, see our tutorial on setting up a local development environment.

SEO

I occasionally hear concerns from clients or from other developers that using a Multisite network for multiple client sites will have an adverse effect on those sites’ SEO: somehow the content from the other sites in the network will contaminate search results for each site.

As long as you’re using domain mapping, this won’t happen. Google bases its search results on domains and URLs, not on hosting and servers (I know this is a simplification: I’m not an SEO expert!). You won’t find that content from one of your clients’ sites turns up in search results for another client.

And for me the great benefit from an SEO standpoint is that one of my essential plugins was always an SEO plugin: now I don’t have to remember to install it on every new site but have simply network-activated it.

Managing Your Network

Managing your network is much easier than managing multiple single sites: you only have to do it from one place, after all. But sometimes it can become a bit overwhelming: as the number of sites grows, then so too does the number of themes, plugins and users.

Here are my tips for making network management that bit easier if you’re working with client sites:

  • Only enable themes for those sites that need them. Instead of network enabling each new theme you install, go to the site management screens for the site it applies to and activate it for that site from there. This will save clutter on the Themes screen for each site. It also ensures site admins can’t accidentally activate the wrong theme. For guidance on doing this, see our guide to site options in WordPress Multisite.
  • To see which themes and plugins are activated on which sites, install the Multisite Enhancements plugin, which will add a column to your network admin screens for themes and plugins telling you which site(s) each is installed on. This means when you update a plugin, you know exactly which sites you need to test locally before updating the live site.
  • If a user raises a bug or you want to test modifications you’ve made to the admin screens, install the User Switching plugin. This lets you switch to different user accounts so you can see exactly what they see when they log into your network.

For more suggestions, see my nine top plugins for network management.

Creating a Community of Clients

It’s nice to be able to give your clients something more than just your web development services, and encouraging your clients to network with each other will provide them with something extra which could enhance the perceived value they get from your services.

This might not be advisable if your clients are all competitors, but if they’re based in a geographical location, for example, they might find it useful.

We offer a range of plugins that will make your Multisite network into a community: try some out and see what your clients say!

Sub-Networks

What if your clients need sites that are themselves Multisite networks? You can’t incorporate a network of sites into another network, I hear you say.

But believe it or not, you can with the WP Multi Network plugin. This lets each of your site admins (i.e. your clients) create their own network of sites within your Multisite network. Or you can do it for them if they prefer.

To get started, see our guide to setting up a network of networks.

Providing Support

For me, a big bonus of using one Multisite installation to host all my client sites is the fact that I have only one support interface to deal with. To do this, I use the Support System plugin, which I network activate.

Support system plugin page
Provide support to all the clients on your network with the Support System plugin

The plugin will notify you or a nominated team member whenever a ticket is raised, and you only have one place to go to manage all of your clients’ questions. If a question comes up frequently, you can convert it to an FAQ and publish it to the main site on your network.

That might be your own site or it could be a site you create just to support clients, maybe with content only available to logged-in users.

Read how to configure and make the best use of the Support System plugin in our tutorial.

Hosting Client Sites Made Easy With Multisite

The best known instances of WordPress Multisite installations are networks of user-created sites like wordpress.com or Edublogs. There are also plenty of examples of Multisite networks being used for internal networks of blogs, like BBC America.

But WordPress Multisite is also a great tool for agencies and developers who need to host small to medium client sites with the minimum of hassle. Follow my tips above and it should ease your workflow and make your life easier, in the same way, it has mine.

Do you use Multisite for client sites? How has it worked for you? Let us know what you think in the comments below.

36 Responses

  • Site Builder, Child of Zeus

    Great article and illustration of using Multisite. I just bought hosting on SiteGround with the idea of using Multisite for my clients’ sites (which are like you described – smaller, mostly static sites). At the last minute I got cold feet and went with addon domains instead, and set up each account individually.

    The reason was, after reading another article about if your main Multisite WP install breaks, all your sites go down. Plus if you want to move a site or client wants site moved because his son is getting into the business, it is more difficult to move individual sites. Not sure if that is true considering SnapShot.

    Also, I wasn’t sure how plugins & themes worked with MS. What if I want to use a specific plugin for one site but not others? And if I have all plugins installed on the main site, will that slow down all sites?

    I’d like to know more about Local testing. I use local development and then deploy the site to live site. Over time, I keep the live site updated but not the local site. Every week there are plugin updates and theme updates, and every few months WP updates. Almost seems like more work to update my local install every week, then update online MS, then test each site (I have about 60 sites). I use InfiniteWP to update my sites from one place now.

    Do you set up Local Hosting as a Local Multisite? That is probably another blog subject – how to set up Local Hosting for Multisite – and how to import current sites into Local Multisite.

    When I read your articles touting MS, I get excited to give it a try. Then get cold feet, because it is a new way of doing things.

    • Hi Bob, I understand why moving to Multisite can be daunting – in a way it was easier for me because I was starting from nothing with my new hosting. If you do ever need to move sites out of your network to single installations, it is possible (you can copy the database using my guide at http://code.tutsplus.com/tutorials/moving-wordpress-moving-a-site-out-of-a-multisite-network–cms-22772, and you can now use Snapshot yay!).

      It’s easy to use a plugin on just one site – when you install it, don’t activate it straightaway. Juts go to the admin for the individual site and activate it form there. I have some plugins running network-wide, but most are just activated on one or two sites.

      If you want to know how to install Multisite locally, follow my guide to developing locally with MAMP (published here a week or so ago), and then install Multisite in the normal way. You do need to make sure you have Multisite up and running first before you import any data you’ve copied from the live site though – as you say it may be worth a post, although it’s really not that different.

      I say go for it! I love Multisite and am really glad I took the plunge.

  • New Recruit

    What a great article!!

    Like many “developers”, I too have many wordpress sites that I have built for clients and end up managing.
    That said, learning about multisite has definitely intrigued me, though I do have a few questions that immediately come to mind.

    1. You mention using a reseller account to host.
    a. What type of server do you recommend? (VPN, Dedicated, etc)
    b. What should I look for in selecting a hosting company/server? (recommendations??)

    2. For sites already created and on their own domain, is it possible to (easily) move them to a new multisite platform?

    Again, thank you for an awesome article!

  • Hey Kevin, Michael here! :)

    #1: I should note that when Rachel mentioned using reseller hosting, this was before the move to Multisite, so your case (from what I understand) would require something else. With that said:

    #1a/1b: I’d advise a VPS at minimum, you’d be more than welcome to check out our article on cloud hosting providers over here, for recommendations on hosts for your network:

    https://premium.wpmudev.org/blog/top-cloud-hosting-companies-for-wordpress/

    #2: In regards to moving the content (as well as the plugins & themes), you make me think of this article of ours over here:

    https://premium.wpmudev.org/blog/migrating-multiple-blogs-into-wordpress-multisite/

    You’d want to do the initial move onto the subsite created on your Multisite, and after getting all of that set up, you’d then want to set up the domain to point your Multisite, and map it to the site via our Domain Mapping plugin:

    https://premium.wpmudev.org/project/domain-mapping/

    (we’ve got some handy info about the ways that a domain can be pointed at your Multisite network in the usage, I’d want to check that out too)

    Hope this helps! :)

    Kind Regards,
    Michael

  • New Recruit

    Excellent article! I have some questions for my project:

    1. I want to create a multisite solution where there are one or two very simple “base template” sites that can easily be copied to new sites as they are created. I want potential clients to be able to visit my main sales site, create a user account and hit a button to generate a new site based on their choice of template and then be able to choose a theme. Will the resources here at wpmudev get me there or will I need to have someone write custom code?

    2. I want my clients to have their own domain name, and hide the fact that their personal site is sitting inside my multisite. I realize that domain mapping can do this – but regarding email: is there a way for them to also have an email address of “[email protected]” if their site is called “theirsitename.com” ? If not, can I just create a “stub” of their domain on my web hosting (large VPS) account and set the mx records so email will work for them – or will that collide with the domain mapping idea?

    Thanks!

  • Hey Christopher,

    #1: With this question, you make me think of our New Blog Templates plugin:

    https://premium.wpmudev.org/project/new-blog-template/

    As that’d allow you to offer demo sites for folks to choose from, they wouldn’t even need to be set up with themes of their own right off the bat, you could just have demo content in there.

    Once a user has chosen a template, and has created a site using said template, he could then choose the theme he wants to go with inside of:

    Appearance -> Themes

    Just bear in mind that depending on the theme that you choose, the layout of the content could be vastly different with one theme than it would be with another theme. :)

    #2: He’d need to configure the MX records separately for a domain he’s looking to map, but yes, it’d be possible for a user to have an email of [email protected].

    If you’re looking to offer domains for sale through eNom, you may wish to check out this discussion over here on the forums about that:

    https://premium.wpmudev.org/forums/topic/domain-mapping-with-enom-easy-email-setup

  • Flash Drive

    Good article. I use multisite configurations for almost all my clients. If it’s a group of companies they get their own multisite with domain mapping in place for their group of companies’ “web brochure”

    I host separate installs of WordPress only if it’s a particular favorite target of brute-force attempts. I identify this with WordFence and CloudFlare for confirmation, mitigate it with CloudFlare and move it to its own cPanel account. The server runs CloudLinux so each cPanel account is separated from the others in virtual container so it doesn’t affect the other accounts (an myriad multisites).

  • Design Lord, Child of Thor

    Hi

    Very helpfull article.

    I tried it on a local Installation but faced to a Problem.

    let me explain… I usally develop locally and if everything is fine I upload it to the productive Environment on the Server in the Internet. I run a XAMP (very similar to the MAMP where is here an article as well) and I edit on my local Client the host file with entries like testinstallation 127.0.0.1 so my Client can resolve the adress.

    But I do have difficulties with Multisite on my local developping environment. I can create the Multi Site Network as described, then I want to map a Domain to a Site it doesn’t let me through. It seems as it doesn’t find the DNS records it Looks for, which makes sense because there is no DNS entry, only the entry in my local host file. So I cannot continue with this step.

    Does anyone has an idea for this issue? AM I on the right track? Would it help to Setup any local DNS Service to “trick” the Multisite out, or wouldn’t help that? (for example the check does not happen local on my Client, but I think it should be a local check)

    Any Ideas?

    Kind Regards and greetings from Switzerland,
    Manuel

  • Design Lord, Child of Thor

    It’s an interesting approach to managing client sites and one that I’ve been considering more and more recently, especially when it comes to deciding which directories should be version controlled. It’s certainly inefficient setting up and deploying, and updating the same plugins on so many different sites. I can imagine it would make migrating databases quite difficult though. Will need to look into it further

  • WPMU DEV Initiate

    Hi Rachel! Thank you so much for this helpfull article,I’m a new member of WPMU and I’m in middle of setting up my theme showcase site,which I really want to make it works like a theme shop style with a theme switcher to help their buyer to choosing their theme and a purchase button for that buyer purchase the theme,can I please ask a question: is there any WPMU plugin or theme can do that job,??is there any suggest on any other better way to setup this system from your opinion.One again thank you very much and I am very happy that I joined this warm community.Thanks!

  • Sue
    Site Builder, Child of Zeus

    Rachel, the depth and breadth of the knowledge you share in your multi-sites postings is a lifesaver! I’ve been dancing around the edges of implementing this for more than a year. Your first masterclass article was the push I needed to get off the fence, and this one gives me a broader working knowledge to make the leap with.

    I realize you may not be comfortable with sharing it, but I’ll ask in case you might: who are you currently hosting your multisite with? I have some reservations about my current managed hosting, and want to ensure any move I make will accomodate the multisite safely.

    Thanks a bunch!
    Sue.

  • Code Wrangler

    Hi Rachel,

    That’s a very interesting point of view :)

    However I see a few obvious potential problems:
    – Not all plugins work well in multi-site environments (some don’t work at all).
    – If one website of the network gets hacked, the whole network may be compromised.
    – There’s a risk of messing up the entire network if something goes wrong (buggy update, human mistake, etc.)
    – Testing locally (multisite on localhost) is a hassle.

    And also less important annoyances, such as bigger database (consuming more server resources, less maintainable, longer to backup, etc.), bigger /wp-content, etc.

    IMO the multisite solution you describe should only be recommended in specific situations for small, basic websites. And maybe not exceed a few sites per network to mitigate the risks, even if means several multisite installs – which kind of defeats the purpose of this article ;)

    What do you think?

  • New Recruit

    Hi Rachael,

    Thank you so much for this article. I am just starting out on my own after 15 years working within agencies. Every site I create pretty much uses the same base plugin setup and theme starter which I created. I thought about using Multisite a while back but got worried regarding the domain name side of things. I am definitely going to research this a bit more from the resources you supplied, for me I will only be creating websites for small clients as I still freelance for larger ones which hosting is already sorted. This could be the perfect solution for me to build more efficiently in the future.

    Thanks again. Always enjoy the WPMUDEV articles.

    Dan

  • New Recruit

    Thanks Rachel for such an insightful article!

    You mentioned creating your own theme framework.
    I was wondering if you had any insights on how to build your own theme. I’ve been searching for a freelancer developer to help me, but I’m stuck on the brief.

    Alot of themes now use the WP Composer to build the pages, is that something you would also use?

    Any insights would be very helpful.

    Regards,
    Hugo

      • Flash Drive

        I created a fresh domain dev.hawpmedia.com and wanted to create subdirectory’s for my clients to do what you did and then map the domains to them. So I setup a fresh wordpress install and enabled multisite and then got this error message “Because your install is not new, the sites in your WordPress network must use sub-domains. The main site in a sub-directory install will need to use a modified permalink structure, potentially breaking existing links.”

        This is super confusing…because my install and subdomain are brand new. Im not sure how to resolve the issue and I have already looked up cookie fixes but im not sure where to turn. I could really use your help!

        Thanks!
        Evan

  • Flash Drive

    Okay so I have a question regarding this. Does it matter if it is a subdomain being mapped or a subdirectory? Which one would you recommend.

    In my case I’m not sure if I should convert my main site to a multisite install (hawpmedia.com) or if i should host my clients from my dev multisite install like this…. dev.hawpmedia.com/clientsitedirectory

    • The domain being mapped is a standard domain – but you can map it to a subdomain or a subdirectory – makes no difference at all. I would strongly advise against hosting client sites form your dev install as then you won’t have a dev install for testing – but you could use that and set up a new dev install. It doesn’t really matter where the sites are hosted as the outside world sees them as if they’re hosted on their own domain. Hope that helps :).

Comments are closed.