Starting off with indivudual sites and migrating to an MU install?


(Rob) #1

Hi WP developers,

I’m planning my project and need some advice. I’m a beginner WP developer and have built a MU site before, but at the end, I couldn’t get past some major hurdles and even though I did a lot of work I scrapped the project, all while learning a lot about MU.

So I have a project that would be perfect for an MU setup where all the sites are the same except the content. But my preference is to simply clone the sites and use a service like Manage WP (or similar) to update the plugins. Mostly because I don’t want to run into problems with WP MU on a more complicated project like this and end up in a dead-end after a lot of work. Ultimately once my service is profitable I would like to hire a developer to create a WP MU installation and migrate all the sites to that. So, will this be feasible or is it just wishful thinking? I mean moving individual sites into an MU site?

Advice?


#2

Moving sites into and out of multisite is possible, but there are significant changes between moving a WordPress site to another host and moving one in or out of multisite.

I was probably in a similar place as you, where I saw that a multisite would make updating and creating new sites easy, allowing me to scale easily. And I did it, and even got more fancy and complicated, using mutlinetwork instances before it was apparent how that was supposed to work (if you track the multisite updates you can see that lately they are working on improving support for that kind of setup).

But knowing what I know now, I would not have built the hosting that way.

Switching off the multisite took me over a year, and was very stressful. And while I can’t discount the experience of learning in that way, I’d much rather learn about it with a fun project that didn’t introduce a new shade of white to my hair. :slight_smile:

I can name over a dozen use cases where multisite is amazing, but condensing maintenance and bootstrapping clients is not one of them. I know it doesn’t seem like that is true, but when you look at how the numbers play out, unless you are specializing in some niche and growing quickly, the overhead and manual resource management will mitigate all the benefits.

You might think to yourself, “oh, but I’ll be able to load so many people so quickly, I won’t really need to track what any single client is doing, it will even out.” But that doesn’t work! Multisite on its own doesn’t provide enough functionality to manage clients/resources, and the part of the stack and workflow that does cover it will do so more completely, and make you wish you were running a bunch of separate sites.

Here is just a spitball list of reasons not to run client sites like this:

Customizations are limited - whereas you could easily take on small changes for extra income, you have to weigh those changes against everyone’s site, driving the value of that income to zero.

Security gets weird - you are weighing every person’s weak password against everyone else. And that is to just get you thinking about how lowest common denominator your site’s credentials and configuration will become. Any thing a site admin can toggle, that becomes an attack vector you need to track for your network.

Multisite is a pain for plugins - There are of course many plugins that support multisite explicitly, and many just work fine, because they are simple enough to work with the least complex table setup. But multisite support is not a major feature of most plugins, and I’ve seen premium plugins with top-notch support just plain not support multisite. That isn’t a strike against multisite, just the support reality for those small teams trying to support the most people with limited resources (like you and me!).

You end up niching or failing - You know how plugins and themes sometimes conflict, and you have to make hard choices given your resources? Well now you are putting clients sites in the mix. Uh-oh, that real estate map plugin that four customers pay me to host, it conflicts with this contact form plugin all these bloggers asked for… guess you are a real estate network now. This is the reason you always read: Multisite is great for a network of similar sites.

Backups? More like break-ups (because you are gonna need to break up very complicated backups)! - You now have one database and a directory for each site that needs to be backed up, but everyone is contributing to that at a vastly different rate, and when one of them causes your server to hit capacity, good luck figuring out which one it is.

All the ways to figure out who is doing what, and who you need to have a frank discussion with before charging more, those are done with tools outside of WordPress, and for good reason! Having a misconfigured cache on a WooCommerce page is easy to track down when you see which process is running through RAM. And multisite makes it harder for those external tools to do their job. Without full system analysis, you are going to be making bad guesses about your resources, and that is gonna bite you.

And don’t even get started on doing a partial restore to someone’s site, or letting them move their site elsewhere. Also worth mentioning, importing a site is a spike of CPU and RAM, so make sure to schedule those for low volume of traffic and usage…

Or just make it easy on yourself and instead of investing in a big multisite, find a hosting partner that can accommodate your scale and automation. Multisite is great for what it is, but spinning up new sites and managing them, for those tasks we have very robust tools. Definitely keep learning WP-CLI.

Before closing out, I would not use a service like ManageWP. I know it looks fancy and seems like it simplifies your life, but if it fails you are so screwed, and for little actual benefit. Automate everything you can, and script out the manual stuff. :slight_smile:


(Leland Fiegel) #3

Check out the Multisite Tools Addon from WP Migrate DB.


(Rob) #4

@maiki thanks for all the great advice. I will have to digest this and get back to you with a full reply when I have some time. Taking a break from web dev this week :slight_smile: