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.
Comments
13 responses to “On Beyond Shared Hosting”
I knew I needed a VPS when I had my shared account suspended for the second time in a row. The first time around, I knuckled down and cached as much stuff as possible, second time around I knew I needed to upgrade π
I’ve been really happy since upgrading though. I started off with a managed cPanel VPS, but eventually upgraded again to my own self-managed setup. The self-managed setup has resulted in huge performance increases since I was able to configure it for maximum performance rather than being stuck with whatever setup the host used by default.
A self-managed VPS can often be cheaper than shared hosting (eg: see DigitalOcean), which is kinda awesome when you consider how much more traffic you can handle on one.
I totally agree with this, but I’d add there is more than one size of shared hosting. Typical shared hosting from bulk providers is good for maybe 1,000-1,500 unique visitors per day to a relatively simple WordPress site. Uptime and speed will often be spotty no matter how slim and optimized your site is, and even if you have nearly no visitors. If you outgrow that or just want better you can go with the low to mid-range tiers of managed WP hosting (which is in some cases still shared hosting) – OR – you can use a shared host who specifies how many customers or how many domains can be using the same server. Good hardware optimized for WP with a handful of decent customers will be awesome without the additional time and technical challenges of a VPS, managed or unmanaged. There are at least a half dozen established hosts who have been doing this for quite some time.
@Dan Knauss: Even a shared host that limits the number of users won’t help you if your site (or one of your neighbors) gets linked to by, say, Wil Wheaton. It’s not the number of people, it’s the usage, and that’s one of those things that’s hard to predict.
A VPS won’t necessarily help you with that either. It depends if/how it responds to a sudden spike in load.
I’m talking about situation where, in what is maybe the best case, servers have only 5 customers on them, each with a maximum of 50 domains and the host is serious about keeping them from interfering with each other.
It’s probably a unique situation where the host built and wholly owns every bit of their infrastructure. If they took on investors, I am sure what they are doing would be seen as leaving money on the table, but I call it giving value to customers.
@Dan Knauss: A VPS will prevent the Bad Neighbor situation. No shared host really can do that and remain a true SHARED server. They may be partitioned VPS and call it shared, but if it’s shared, it runs the risk of that. Which is all I meant π
I don’t think it can be said that a VPS instance will never be affected by other users who are drawing on the same physical resources. There are ways shared servers can have isolated resources per user too, but no matter how you do this, even a VPS is still sharing finite physical resources with others, right? So there’s always some risk of heavy usage somewhere in the system that will affect you. Theoretically this risk should be less with a VPS that has can scale up automatically if you get the old slashdot or digg-effect, but there are a lot of different variables that might be in play.
@Dan Knauss: Yes and no. With a VPS you can hard limit how much of each ‘thing’ an account can use. Each VPS gets a share of the resources, in a way that it’s actual unable to access (or be aware of) the other physical resources.
Sure, if your VPS is hit so hard you set the server on FIRE it might be a problem, but the the threshold is so much higher now for bad neighbors to pop up that you’re more likely to crush just your VPS instance before you get that far down the road π
Obviously the only true immunity is your own server, but even then, a DDoS big enough will stuff the tube up and kill everyone’s traffic. Sites up but ain’t none of us can get there!
@Dan Knauss: Not all VPSs are created equal.
Some providers who use OpenVZ oversell resources by advertising beefy specs at a low price. For true isolation opt for Xen or KVM instances. Reputed providers limit outbound bandwidth on each instance so a slahdotted/digged VM doesn’t affect its neighbours.
@Mika: The utility theme is great! But I’m too used to the old design that I’m searching for content on the right π³
@Jesin: I can flip the sidebar back over. I was just trying to get a feel for the weight of it over on the right π
That sounds about right. In my experience even good VPS hosting is rarely a good value for the cost if you really just want more capacity, not a whole new plate of server administration responsibilities. Good shared hosting can go a long way, but it will end up costing about the same as a VPS with the same capacity. The difference is the VPS might not be managed for you and come with the same level of support and safety nets. So if you’ve actually outgrown shared hosting, a managed VPS especially in the form of application-specific hosting seems like the better choice these days because it bridges this time/cost/knowledge gap between shared hosting and a VPS or dedicated server.
@Dan Knauss: My (personal) issue with Managed hosting (like WP Engine or even DreamPress) is that I don’t run just WordPress, and I have a dozen domains. Strictly from a cost perspective, managed hosting is too darn expensive. It costs me less for a VPS + help when I need it than it would for all the hosting there.
Of course, yes, I am my own admin, and I rarely need help from the next level, so that’s why it really has to factor in to deciding which way to go. But that is, as I said, another post π
I prefer going dedicated server than a vps, i would rather have a whole server than share one, not saying having a vps is bad, i have a few (linode, digitalocean, and vps.net) but in the case of a lot of sites, 30+ i would be better suited for my own server
@Chris McCoy: Dedi is the next jump. I see nothing wrong with a measured upgrade over time π Also Dedi’s can be really expensive.