This comes up at almost every WordCamp or Meetup I go to. “How do I know when I’ve outgrown Shared Hosting?” In general, my reply is “When you’re really unhappy with your site performance, and you know that you’ve done everything right.”
For the vast majority of users out there, Shared Hosting is just fine. Even when they don’t really understand what Shared Hosting is (and if not please read Entry Level Hosting), they know this much: The site runs. And you know… that’s pretty much all most people care about. There’s absolutely nothing wrong with that. However you know that you may have outgrown shared when your site starts performing badly.
When I tell people this, they generally get pretty shirty with me. They tell me it’s the host, because this doesn’t happen on another host/localhost. In absolute fairness, sure, it could possibly be the webhost, however that’s like say your car is the only reason you get poor gas mileage. You have to consider the way you drive, the traffic you drive through (city vs freeway), the weather, and of course, the gas you put in. Where people are throwing these arguments are usually because they actually haven’t done everything right.
We’ve all done it wrong.
I’ve written code wrong before. Functional, yes, but really bad. I’ve given bad advice before. It happens. The point is that you never do things 100% correctly every time, which means the odds are against you having done absolutely everything right for the situation you’re in at that moment. And there’s the rub, isn’t it? What’s the situation? Did you study it correctly? Did you understand it right? Did you test your theories? Most of all, did you remember your server’s a special snowflake?
Accepting the fact that the cause for our sites being slow is us being wrong is not easy. But the truth is this: Your choice of hosts, plugins, themes, and features is why your site runs the way it does. And if that all adds up to ‘slow’ then you’ve made some miss-steps. Once you’re okay with that, you can make progress. Let’s do it right! This very basic step starts with being tough on yourself. Get rid of plugins you’re not using, or don’t really need. Make sure your theme hasn’t bloated itself with a million options you never use. Heck, see if anyone’s done a review on your plugins and themes. Try alternative plugins and themes. It’s always a possibility that the synergy of plugins you’re using are causing weird slowness issues that are only evident when they’re used together.
On general rule I have about shared hosting is that if I have to bump my memory for PHP over 128M, I’ve got a problem. A decent, clean, site be it WordPress or anything else, doesn’t need that much memory. If my plugins and/or themes make me use that much memory, then they’re a bad combination. The other thing to keep in mind is they may be a bad combination for how your site works. Like caching plugins, for example. I actually crashed my sever using one, because I was getting so much traffic and almost everyone left a comment, so the cache was flushing pages at a crazy fast rate. Turning off caching made it run slower, but more stable, and eventually lead to why I ended up on a VPS.
What’s a VPS anyway?
A VPS is a Virtual Private Server. It’s a weird concept, I know. A shared server is an apartment building, and a VPS is a condo. Where with shared hosting, you pay for room on a server that shares all its resources. That’s why you can have problems with noisy neighbors. If someone’s using too much power, it can blackout the building. A VPS is not just space on the server, it’s also an isolated mini ‘server’ inside the real server. So you can reboot without affecting anyone else, or install new resources and apps without sharing them. Your stuff is more separate from theirs. We call these ‘slices’ and a VPS is your own private slice.
Back in the day, I switched to a VPS because after doing the math, I realized I would spend the same amount hosting 4 sites on shared hosting as I would on one VPS. After six months, I found out how smart a move this was, as I could upgrade PHP without having to wait for everyone on my box to be ‘ready’ for it. The box was all me! I also got more memory for use, and since I wasn’t sharing it with anyone else, if I used too much and crashed things, the only person who got hurt was me!
A VPS was power, freedom, and yes more money, but it was easy to set up server-level backups. Also it was easy to add in extra caching on the server, like x-cache, or memcached, which then lets me use not a flat-file cache but a dynamic cache like Batcache. There are, of course, reasons you may want a file-cache like WP Super Cache provides, and don’t think that plugin isn’t awesome. But when a static cache isn’t quite right, this is a great idea. You can read up on Sivel’s review of various caching plugins for WordPress.
The point here is that a VPS gave me more options! I could even install Varnish on my server to use that instead. It’s also easier to add more RAM to a VPS, and allocate disk space. For most of us, disk space is not an issue anymore, but the RAM is important.
How do I KNOW I need a VPS?
Honestly, there isn’t a magic formula. I can tell you this, with regards to all types of CMSs: The more you do, the more you need. It’s really obvious, but it’s often missed. The more successful your site gets, the more people visit it, the more people comment (and you know these are all things you want), the more memory and CPU your site needs, so a-VPS-ing we shall go. It’s really like ‘How do I know I need new pants’ isn’t it? My pants don’t fit! They pinch me here or there. They’re slipping if I don’t wear a belt, and I hate belts.
Maybe you should think of the traffic on your website like eating. If you overeat once, say Thanksgiving, the pants are tight, but a couple days later it’s nothing at all. If you’re eating a larger amount for another reason (working out, growing taller, whatever), you’re going to have to get new pants after a while, because you just look silly when your pants end 3 inches above your ankles. Unlike the Hulk, you’re not coming back down to person size any time soon.
There is something good in this, though. Most sites have a pretty easy, painless way for you to move from shared to a VPS. They’ve got scripts and tools and click-magic buttons that toss your site up, change the DNS settings, and carry on.
Downsides?
You know the more power means more responsibility line? The expectation is that I’m going to manage it. If I can’t do that, then maybe I should look at Managed Hosting… but that’s another post. The managing of a VPS is a hassle. I’ve been in tears rebuilding things at 2am more than once, because I get in over my head.
So… that’s it?
Of course not. But as with all things, nothing is an absolute here. When you get beyond Shared Hosting and into what’s next, you open a door for a wide range of possibilities. And with more possibilities you have a Seussian range of options. Go on beyond Zebra and find what fits right for you.