If you’ve read our article about WordPress performance optimisation and our WordPress SEO guide , you know that it’s important to have a fast-loading website, both for SEO purposes and more importantly, for your users’ convenience. If you spend a lot of time in the dashboard updating your site, you will also appreciate a fast website yourself as a site administrator.

One of the biggest steps you can take in setting up a high performance WordPress site, is that of switching from shared hosting to a Virtual Private Server or Dedicated Server. Shared hosting is what we all use as an entry point because it is easy to set up and cheap. However it lacks performance and the support you get might not be always up to scratch.

Going for a managed VPS or buying a dedicated server is usually very costly, so we suggest you move on to an unmanaged VPS. The latter option will bring great savings when compared to a managed VPS. You will be administering your own server instead of relying (and paying) on someone else to do it for you. This is also your chance to learn much more about how servers work and how every tweak affects the performance of your site.

If you’ve outgrown your shared hosting plan, or are already paying a lot of money for a managed VPS/dedicated server, this guide will be your key to building a very cost-effective (~$30/month) and highly tuned server that will dish out your sites at lightning speed.

This will be a longish guide, and I want to take the time to really explain all the steps well, so I’ll be splitting the guide out on several posts. Before we start getting our hands dirty, it’s a good idea to talk a bit more about the main components of the VPS we will be building.

The Host – VPS.net

As indicated above, I will be using the VPS.net cloud hosting service for building the server. What exactly is VPS.net? They are a provider of Cloud Virtual Private Servers. You can affordably purchase as much hosting firepower as you need, and have full control over the management of it. VPS systems are made up of one or more nodes.

Each node provides 376MB RAM, 10GB SAN storage, 600MHz dedicated CPU and 1TB/month bandwidth. Discounts apply when buying multiple nodes, so the more you need, the more you can save. One or two nodes should be enough for a small WordPress site, and you can always add more nodes as you go along, that’s the beauty of cloud hosting.

Yes, that’s right, you don’t purchase a server with fixed performance attributes and get stuck with it. With the VPS.net cloud hosting system you can add and remove nodes as required. You just need to purchase the extra node, reboot the system, and you’re good to go. You can even purchase “temporary” nodes on a $1/day basis, which work great for handling short-term traffic spikes, or creating a temporary development test server.

Why choose VPS.net? Simply because they’ve been one of the pioneers in cloud hosting and currently host some of the biggest names in the WordPress world, such as Yoast. They have the most user friendly interface, which is a great plus if you’re just starting out with VPSs. Very recently they’ve also rolled out the VPS.net desktop, with this feature you will have an interface very similar to your computer’s desktop but working within your browser, helping you manage all aspects of your virtual private server.

What’s more, if you’re not yet sure whether you want to make the big move to a VPS and would like to try it out first, you can sign up for a free month, using the coupon code “FFMSPRING”.

Server OS + Software

Let’s talk a bit more about our choice of operating system and software to go on the server. We will be setting up quite a number of software packages on the server, but before we start, it’s worth pointing out why we chose Ubuntu and Nginx, as these are two crucial components of your VPS setup.

Server OS

Secure, fast and powerful, Ubuntu helps you make the most of your infrastructure. Whether you want to deploy a web farm or deploy a cloud, Ubuntu Server supports the most popular hardware and software. Ubuntu server is one of the most popular servers and is very stable, a great choice for someone starting off with VPSs.

Nginx differs from Apache in a fundamental way—Apache is a process and thread-driven application, while Nginx is event-driven.

Here’s a quote by Chris Lea, it will help you understand in simple terms what the difference is:

“Apache is like Microsoft Word, it has a million options but you only need six. Nginx does those six things, and it does five of them 50 times faster than Apache.”

So while Apache is more robust in supporting many different features, Nginx focuses on handling the important features very quickly.

If you’re interested in getting to know more about Nginx, check out the Nginx wiki.

Having gotten the server OS and web server software considerations out of the way, we will be discussing the other software components of our server as we go along.

Part 2: In Part 2 of this series, we will open an account at VPS.net, install Ubuntu and start configuring it. In the meantime hit the link below to get your one month free at VPS.net and have your server ready for some action in our next post.

14 Responses

So why do you prefer VPS.NET over say, Linode? Honestly I had never try VPS.NET, but Linode is an excellent VPS hosting and a bit cheaper in case of smaller packages. For large packages VPS.net beats Linode in the price too…

I’ve had servers on Linode too and can confirm that they too are excellent, I just like the control panel of VPS.net and everything seems more newbie-friendly. They have also recently introduced the desktop I’ve mentioned in the article, which is really neat. Considering the article is meant to introduce people to VPS hosting, I chose what I believe to be the more user friendly service.

Linode’s manager is more clinical and just as effective, but maybe more targeted to experienced users who just want the no-nonsense stuff. It’s also worth noting that Linode have a very good articles library which is open to everyone http://library.linode.com/.

At the end of the day, my experience with both VPS.net and Linode has been very positive, both servers have performed very well and support tickets were answered in a timely and professional manner by both companies. There’s also Slicehost which receives very good reviews but I’ve never tried that company myself.

Great article. I’m actually looking forward for the other parts of the article where you’ll explain the installation of the OS, how to add PHP and MySQL, how to add a domains to a VPS, create NSs and stuff like that.

I was looking for a website where I could buy a VPS at the cheapest price possible just for testing purposes. The website you linked to is good for production and live sites but if you just want to test it out and 30 days is not enough for you then I recommend sshvm.com (or just google for other sites)
The Kansas location has prices as low as $2/month. You won’t need more resources if you just want to test the installation of Ubuntu and other settings.
I only recommend them for testing and nothing more since I am not using their services at the moment.

I recommend new users searching for a VPS to follow this tutorial. I think it will be a very valuable tutorial.

I use an unmanaged VPS with Plesk, Fedora Core and Apache, that does not offer some automatisms such as installation of WordPress with a click or the elasticity of a Cloud. The resources are somewhat limited 1CPU 2GHz, 256MB RAM, 5GB HDD but it is safe, stable, fast and can be up to 100 domains with areas of customers and resellers. And the price is really reasonable low.

I know I must improve the solution and I’m looking for some agility, but first I have to consume the resources available in my current VPS. 🙂

PS: @Jean Galea maybe you should revise your free month coupon code as they now offer for 6 months – “CloudLinux now available FREE for 6 Months” http://www.vps.net/product/cloud-servers/, still they ask for credit card and it may alienate some of the candidates and who wanted to follow this tutorial.

Thanks Fernando, I’m not sure about that offer of 6 months, do they just give you 6 months free or require you to pay for a year and give you a 6 month credit? The one month free is very good because you absolutely don’t pay anything upfront, they start billing you only after the 1st month is up and you continue the service.

You’re right. I was misled, sorry.
I’ve checked right now, and in the top blue bar where were that «offer», now has this «Very prompt, polite service! Excellent! Chris N». I refeshed the page again and the text just updated to another kind of comment. It seems to be twitter or comments updates.
Again, this was my mistake.. :S

Yes – it’s funny how we seem to migrate from shared to reseller to vps 🙂 (and then where to, dedicated server? Then self hosted server after that??)

That is what I am preparing for, but long from ready to do yet.

I will just confess, even though I am always learning, there is still so much that I do not know: such as the difference between Ubuntu Server and Ubuntu OS with a LAMP… as only a tiny example of what I do not yet understand.

Please do not forget to follow up with Part 2, and if you want to do more after that, the more the better!

Hi Ramon, I don’t think anyone should feel pushed to rent an unmanaged VPS. The message here is that if you want to do it, you definitely can, you will have to learn some things, and of course it takes more work, but it can be done, and it’s actually quite interesting to manage your own server.

On the other hand, there are now many excellent managed WordPress hosting providers, which provide another alternative to those who don’t want to do the managing themselves, and that is why I’ve written review of WP Engine just last week.

Both are valid options, depending on how technically inclined you are, and how much you want to spend.

Join the conversation via an occasional emailGet only replies to your comment, the best of the rest, as well as a daily recap of all comments on this post. No more than a few emails daily, which you can reply to/unsubscribe from directly from your inbox.