As you know I am a huge fan of managed WordPress hosting. I highly recommend WPHostingSpot, and if you are looking for something a little cheaper I have had great success with InMotion Hosting. But sometimes you might like to have a little more control of your installs. This is where a Vultr VPS and ServerPilot come into play. In fact, the speeds from Vultr are crazy fast! So I am going to show you how to easily install WordPress on a Vultr VPS combined with ServerPilot and Let’s Encrypt (Free SSL).
Why Vultr VPS + ServerPilot?
Some might think of Vultr as a DigitalOcean alternative. But in fact, from my personal testing I get lower ping time and less latency on Vultr, as opposed to DigitalOcean. ServerPilot makes managing and deploying your WordPress sites on Vultr incredibly easy! This is a killer combination. In fact I have my domain, https://perfmatters.io running on this combo. You can see below the speed test I ran with my site.
How to Install WordPress on Vultr
Follow the steps below on how to Install and setup WordPress on a Vultr VPS.
Step 1
The first thing you will need to do is signup for a Vultr VPS. I recommend the VPS with 20GB SSD, 1 CPU, 1024MB Memory, and 2,000GB Bandwidth (this is what I am using in my tutorial). But depending on your project the smaller VPS would be fine as well.
Step 2
Once you have an account setup it will walk you through deploying a new instance. Choose “Compute Instance.” I am choosing the Dallas location as I am located in the United States and I like have my servers centrally located. But you can choose whichever location you think is best for your visitors.
Step 3
Next you need to choose a Server Type. ServerPilot runs on 64-bit Ubuntu 14.04 so that is what we will choose, as we will be connecting ServerPilot later on. Note: Ubuntu 15.10 is not a long term supported release, so that is why we won’t be using that.
Step 4
Next enable IPv6. You can also enable “Auto Backups.” However I won’t be in this example as the site I am deploying is not that crucial. An instance with automatic backups enabled will have a 20% higher monthly/hourly fee.
Step 5
Next you can add startup scripts and SSH keys. I won’t be bothering with any of that. All left for me to do is give my server a label. Note: This server label will appear over in ServerPilot later on, however ServerPilot does let you change the display name on their side.
Step 6
Then click on “Deploy Now” to get your Vultr VPS up and running.
It will then begin installing. Mine took about 2 minutes to fully deploy.
Once it is up and going you should get an email from Vultr.
I also have to hand it to the Vultr team because the dashboard is beautiful and butter smooth. It’s probably one of the best I have ever seen.
If I ping my Vultr VPS you can see that is has excellent ping times from where I am at.
And that’s it! You now have a VPS up and running with Ubuntu.
How to Setup WordPress on ServerPilot
Now we need to setup ServerPilot so we can install WordPress. So go ahead and signup for ServerPilot. I am using the Coach plan in my example because I want HTTP/2 support, as well as free SSL with their Let’s Encrypt integration.
Step 1
The first thing we need to do is connect your Vultr VPS server so that ServerPilot can manage it, so click on “Connect Server.”
Step 2
It is then going to ask for your IP address, root password, and then let you choose an SFTP password. Then click on “Connect to ServerPilot.”
Your Vultr IP address and root password can be found under the overview page in the Vultr VPS dashboard. It is also recommended that you change your root password on your Vultr VPS. It is randomly set by default, but never hurts to be safe. Check out this tutorial on how to reset your root password on Vultr VPS.
It will start configuring your VPS on ServerPilot. This takes about 2-3 minutes.
Step 3
Then click on “Create App.”
Step 4
Next you will need to name your app (no spaces) and input the domain. In my example I am setting up growthminer.io. Check the WordPress box and input your new WordPress login information. Please don’t use “admin” as your username. Choose something more secure. PHP 7 is the latest and greatest, so make sure that is checked. You will want that to take advantage of the speed. By default, vultr.guest is created, however we will change this later on. And choose the default system user. Then click on “Create App.”
You might have to wait a few moments but then you should be able to browse to your IP address and view that WordPress is indeed installed and working.
Step 5
Next we will rename the server just to reflect something similar to our app name. So click into “Servers”, click into your server, and then click into “Settings.” Here you can set the name to something, I always use the name of my server that I chose for my Vultr VPS so I know what is what. Then click on “Rename.”
Step 6
Next we need to enable SSL. ServerPilot is awesome and they have an integration with Let’s Encrypt, which means your domain validated SSL certificate is free! So click into your App, and then the “SSL” tab. You will notice that there is no button yet to enable it, and it says “An AutoSSL certificate is not available for this app.”
ServerPilot can only issue AutoSSL certificates for domains that meet the following requirements:
- Your domain must be a registered domain name, such as example.com, or its www-subdomain, such as www.example.com.
- Other subdomains besides www cannot be included in AutoSSL certificates.
- Wildcard subdomains cannot be included in AutoSSL certificates.
- DNS for your domain must resolve to your server or, if you use a CDN like CloudFlare, the CDN must be configured to proxy requests to your server.
- Your domain cannot be an internationalized domain name (IDN).
So we need to point the DNS of our domain, in this case growthminer.io, over to our IP Address so it will resolve. I use NameCheap so I login and click into the “Advanced DNS” tab. I then add an A record which points to my Vultr IP and an AAA record (optional) which points to my IPv6 address. Both of these can be found in your Vultr dashboard. I also create a CNAME record for www so because I want it to resolve to http://growthminer.io. I like shorter URLs. I also chose a 1 min TTL, but that is because I want it to resolve faster so I can continue. You will probably want to set that to 30 minutes, or something little higher.
You will then want to check that the DNS is resolving to the new IP. I use KeyCDN’s DNS check tool. As you can see below it is resolving correctly now to the Vultr IP address.
If you still aren’t seeing it on your local machine, you might try flushing our DNS cache by launching command prompt and entering the following:
ipconfig /flushdns
I have also noticed with Google Chrome sometimes you have to close the entire browser before DNS will resolve as it gets cached, even in incognito mode. It took about 30 minutes and then the “Enable AutoSSL” showed up. Click on that.
Step 7
Then there is an option to “Redirect HTTP to HTTPS,” click on that.
And that’s it! You now have a WordPress site up and running with HTTPS enabled.
If I run a speed test without any plugins installed this is what I get. Not bad. But we can do better.
Optimizing Site
I am using the default WordPress Twenty Fifteen theme in this example as I really like it as a minimal theme. I don’t care for Twenty Sixteen. So we are going to do a bit of optimization to really squeeze some speed out of this Vultr VPS and ServerPilot setup.
- First I install the free WordPress Cache Enabler plugin. This plugin is focused entirely around being lightweight and allows us to serve up WebP images.
- I disable emojis as they are evil and load an unnecessary piece of javascript.
- I disable Google fonts with this free plugin. I really like the Georgia font, and we are in luck because it is a system font!
- I install Optimus Image Optimizer plugin for lossless image compression. This also converts my images to WebP format.
- I install the free Remove Query Strings From Static Resources plugin. This allows for better caching.
- I install the free Simple Custom CSS and JS plugin. Make sure to select “footer” for CSS placement. This allows me to add the following code:
body { font-family: Georgia, serif !important; font-size:2.1em; } .entry-title {font-size:2.1em; color:#333; font-weight:400;} .main-navigation { font-size: 2rem; } .site-main { padding: 2.3333% 0 !important; }
- I setup my CDN, KeyCDN, and deploy it with the free WordPress CDN Enabler plugin.
- Deployed SSL for free on CDN with KeyCDN’s Let’s Encrypt integration.
- I install the free Autoptimize plugin to move Javascript to bottom.
- Add Google Analytics using ga-lite.
- I then add the following code to my
.htaccess
file to fix the caching issue with genericons in the Twenty Fifteen Theme.
## EXPIRES CACHING ## <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType image/svg "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month" </IfModule> ## EXPIRES CACHING ##
Now lets test our site again. Much better.
And it scores a 100/100 on Google PageSpeed Insights on both mobile and desktop.
Note: I will be working more on this domain and it will drop in scores as I add things. But 166ms load time, 3 HTTP requests, and 67kb page weight is a good foundation to start! It is always good to understand how each asset loads and what you can do to speed them up and a good grasp of how what is render blocking.
As you can see Vultr and ServerPilot combined is a powerful and awesome combination. Hopefully this tutorial on how to install WordPress on Vultr and ServerPilot was helpful. I highly recommend them to anyone wanting to really take control of their WordPress sites. I would love to hear your thoughts below. If you are wanting a managed option on top of a Vultr VPS, check out WPHostingSpot, which is who I use to host this website.
Very interesting review Brian, thank you ;)
I know Vultr like name, but I never tried it; from your test it is better than Digital Ocean?
Yes I actually was using Digital Ocean first and migrated to Vultr due to faster ping times and less latency. Ran speed tests on both and Vultr was always slight faster at multiple locations. Definitely recommend giving them a try.
Brian, Your posts are awesome. Now that Linode has doubled the RAM for free, how does Vultr compare with Linode?
Thanks!
I actually have this website and all of mine now on Linode, with WPHostingSpot: https://woorkup.com/wphostingspot-best-managed-wordpress-hosting/ Got the email last night from them about free RAM upgrade :) Amazing stuff.
If you are comparing speeds, Linode and Vultr are great. I saw faster speeds with both of these compared to DO. But now with extra ram on Linode, I would probably lean that way.
Hi Brian, I would like to know what would be the next steps if I want to add 2 more wordpress(each one in a separate wordpress)
If you drop your shared hosted for a VPS (my case, at least), what would you recommend to use for email service? I would like to stay away from gmail. What are you currently using?
Hey Josh, yes right now my sites are on Kinsta, which doesn’t have email. I was using Office 365 for a couple years for email, which worked awesome! If you are wanting a Gmail alternative, I had great success with them.
Currently though I am using one Gmail and have some routing/forwarding enabled with Pobox (https://www.pobox.com/) so I can manage everything in one place. Hopefully that helps!
Thanks for the reply! Pardon my ignorance, but why would I need email routing / forwarding? Can’t you just point your MX record to Google Apps Mail / Gmail right from the DNS manager inside your current VPS?
Please clearly disclaim your affiliate links and be very straight-forward about ServerPilot baiting users into an upgrade to SSL (pictured in your post) when TLS certs are free to be had.
Hey Josh! Affiliate links are clearly explained here: https://woorkup.com/legal/ Also, this was written before Let’s Encrypt was available. I will definitely try to find some time to update it. You won’t find a bigger fan of Let’s Encrypt than me :)
Thanks, Brian. Should’ve thought to check there. Hey, check out this waterfall: https://wordcamp.habd.as/
I’m using Serverpilot for all my servers for several years now and in my opinion it’s the best (affordable) way to host your (WordPress) websites. Like Brian I moved away from Digital Ocean to Vultr and I have also one server with Linode. A month ago I installed ServerPilot for a VPS I bought from a local provider here in the Netherlands (TransIP). Works perfectly. Sure these days you need a paid plan to use features like SSL, but I really like to pay $10 a month to support the future development of ServerPillot. Tip, don’t use many small servers and use instead one bigger server for multiple website. The performance of and 8GB/4CPU server is great even for 50+ lower traffic websites.
Great article, I just migrated my website. Thanks a lot!
Great, glad it was helpful!
Great article, I will give ServerPilot a try. Did you have experience with Cloudways as well? I see your last article is from 2016. I registered yesterday and the backend & features are really cool and the speed is great. But I see many bad reviews on downtimes & bad support, but also many good reviews. I don’t know are they trustworthy enough for my customer’s websites?
Hey Christian! So, I work for Kinsta, a premium managed WordPress hosting provider, so I probably can’t give you the most unbiased opinion. If you’re looking for a managed hosting provider, I recommend going with someone that is a little more $$$ as you always get what you pay for when it comes to hosting. And this is especially important if you’re dealing with clients as you need to have something reliable that lets you focus on your business.
Like Brian said, if you need a managed service than you have to pay the price. Companies can’t do all the work for just a few cents. If you can’t afford it, you need do the work by yourself. Serverpilot together with DO, Vultr of Linode is a great start to make some stuff easier. But don’t forget you’re still on your own if something breaks. What kind of hosting is the best for you, depends on your budget and knowledge.
Well said Olaf :)
Thx guys for ur opinions.