Select Page

Cloudways Review: Easy VPS Hosting From $10/Month

by | Dec 2, 2020 | Review, Web Hosting

This post may contain affiliate links, which means we may earn a commission if you use one of our links. Learn more.

If you’re looking to start a new website, or outgrowing shared hosting, Cloudways is a really tempting option. With managed VPS hosting plans starting at just $10 a month, is Cloudways too good to be true? Well, that’s exactly what we’re here to find out.

Pricing

First, it’s important to understand what you’re actually paying for. Although Cloudways seems more expensive than other WordPress web hosting options, that’s because they’re not like most other budget hosting options. Instead of offering shared hosting plans, Cloudways offers managed VPS hosting plans (you can learn more on our post about the different types of hosting). A VPS, or Virtual Private Server, offers more resources and security than shared hosting, but it also comes with a higher price tag. Luckily, it’s not too much higher in the case of Cloudways.

Cloudways has plans starting as low as $10/month, which is definitely on the budget side of managed VPS hosting. The pricing will vary depending on which plan you choose and with which cloud provider, but they have a plan for 99% of WordPress websites out there. Whether you’re just starting out and want a fast website, or need a high performance server capable of handling large amounts of traffic, Cloudways has options for you. They even offer hourly billing, in case you ever run a server for less than a full month.

At the time of writing, Cloudways has plans on DigitalOcean, Linode, Vultr, AWS (Amazon Web Services), and Google Cloud. For most people, I recommend sticking with one of the first three because they offer more affordable pricing. DigitalOcean is currently the cheapest and seems to be the most fully featured (e.g. Cloudways supports their block storage), but you should have a similar experience with Linode or Vultr. You can also scale your server up at any time, so you can start with a cheaper option now and upgrade when you need the extra resources.

All of their plans offer free SSL certificates for your website, which is a huge plus. It is worth noting that although their hosting plans don’t include email, they do offer a $1/month add-on per mailbox which is still really affordable. Since most people are probably going to try out the cheapest plan first, that’s what we’ll be using for this review. If you want to try Cloudways yourself, they offer a free trial with no credit card required.

Registration/Getting Started

Although setting up your own server might sound intimidating, Cloudways makes it super easy to do. All you need to get started is create an account and verify your email, which only takes a few minutes. You’ll then be greeted with an easy to use interface where you can select the server and configuration options you want to launch your new server with.

All it takes is a few clicks, and your server will get set up with the settings you specified. For this review, we’ll select their $10 plan in the New York data center, and choose to have WordPress installed on it. You can manage your applications later, and there’s no limit on how many websites/applications you can have on one server (other than the resources the server has available). Once you hit the launch now button, your server is will be set up and you can log in to your new website in a matter of minutes.

If you’re migrating a website, Cloudways has a plugin to copy your site to your new server at no extra cost. All you need to do is install a WordPress plugin on your old website, copy and paste a few details, and your website will automatically transfer over. If you’re already using a backup plugin that offers a migration feature, you can use that too.

With the settings we selected, it took about five minutes for the server to finish being set up. Once it is, they’ll send you an email to let you know you can log in to your new WordPress website. Once your first server is set up, you can manage all of your servers and applications in one dashboard. Here’s what the dashboard to manage servers looks like:

And here’s what it looks like to manage an application:

Benchmarks

Now that we have WordPress installed, let’s do some benchmarks! Since the WordPress installation came with the Breeze caching plugin already installed, I’ll leave it with its default options for this benchmark. Additionally, I will be generating 100 test posts using the FakerPress plugin to make sure we’re not testing an empty database. With that out of the way, here are the results.

GTmetrix

GTmetrix tests how long it would take for a browser to load your website, instead of just how fast the server can send over a response. Since Cloudways uses an optimized suite of server software for web apps, I don’t expect there to be any problems. As usual, I’ll run three tests and average the fully loaded time.

As you can see, Cloudways performed pretty well and uniformly across all three tests. The average time to first byte was 222 ms, and the average fully loaded time was 1.03 seconds. Keep in mind that this was with the default caching settings, and I wasn’t using a CDN. Cloudways offers their own CDN service (which costs $1/25 GB), which would have probably sped up the site significantly.

Just for fun, I played with some setting in Breeze to see just how fast I can get the website. Long story short, I couldn’t get it any faster than with the default settings. However, I am using the default WordPress theme with only the default plugins active (Breeze and Bot Protection). If you were to use a more complex theme and plugins, then fine tuning Breeze would probably help a lot more.

Load Tests

We’ve already seen that Cloudways can serve a WordPress website fast, but how does it hold up to a surge of traffic? For this load test, I’ll be testing how well the server can handle 5, 10, 15, 20, and 25 concurrent connections with 100 total requests. If there aren’t any issues, I’ll also run a test with 100 concurrent connections and 1000 total requests. I’ll be running the load tests from a DigitalOcean VPS also in a New York data center to make sure we’re testing how much traffic the server can handle as opposed to how fast my internet connection is.

Cloudways handled the traffic so well, I decided to take it one step further and see what happens with 1000 concurrent connections and 10000 total requests. And, Cloudways handled that pretty well too. However, the average response time jumped up to 4 seconds, and there were 4 failed requests. To put that in perspective, that’s just 0.04% of the requests.

Anyways, here are some numbers:

Concurrent RequestsAverage Total Connection Time (ms)Requests Per Second
519213.81
1035271.91
1557246.18
2070270.85
2586274.29
100364264.31
10002959245.76

As you can see, with 5 concurrent requests, the average total connection time was just under 20ms, and stayed under 1 second for all but the last test. Across all tests, the average response time was 656 ms and the average requests per second was 255. However, the last test isn’t exactly fair to run on a $10 VPS. Without the last test, the average response time drops to 105 ms and the requests per second gets a small boost to 257.

Features

Cloudways offers more than just server space to host your website. Although they offer more features than I can possibly list in one post, here are a few that caught my attention.

The first cool feature Cloudways offers is an easy way to create and managing staging websites. Staging websites allow you to make a copy of your website before a big change (e.g. changing to a new theme), and iron out any problems that arise. Once you’ve tested your staging website and everything is working as expected, you can push the changes back to your primary website with just one click. You can also copy changes from the live site to the staging site, so you don’t need to create a new staging website every time you need one.

Another really useful feature Cloudways offers is one click backups and restores. You can take applications of either a single application or the entire server, and restore to them at any time. This is really useful right before making a change to your website, such as a major WordPress update, or updating a critical plugin or theme. Should anything go wrong, or you accidentally delete something important, you can restore to a backup with one click. You can also rollback restores if needed.

Cloudways also offers a lot of more advanced features. For example, you can easily add Redis to your server, which is a popular backend for caching (e.g. object caching in WordPress). You can also easily manage SSH access and cron jobs, which are often not available on shared hosting plans. Cloudways also offers automatic GIT deployments, although those are more useful for custom coded web apps than for WordPress websites.

Support

During my testing, the only issue I ran into was an error restoring my WordPress website to the latest backup. Luckily, Cloudways offers live chat support, and I was greeted instantly by their support bot. Unfortunately, the support bot had absolutely no idea what I wanted help with, and offered irrelevant information with no solution to my problem. After asking the same thing a second time, I was given the option to connect with a support representative. Once I selected that option, I was connected instantly to a support representative who was much more helpful.

They asked me what the issue was, and then the backup I would like to restore to. They completed the restore process for me from their end, and resolved the issue in around 10 minutes. For a service that only costs $10 a month, I consider 10 minutes from start to finish to actually solve my problem (not just the first response) pretty good. The only thing I didn’t really like was their support bot, but I’m sure it would have been much more helpful with a more common and/or simpler issue.

Conclusion

Cloudways offers an amazing service at an unbeatable price. You get all the power of having your own VPS, but without the need to manage it yourself. They offer a wide variety of plans on five different cloud providers, so they almost certainly have a plan that fits your both your needs and budget.

On the performance side of things, Cloudways’ performance remains relatively fast and stable; even their most affordable plan was able to serve over 200 requests per second, and even handled a thousand concurrent connections without crashing. Combined with a support team available 24/7 via live chat or tickets, a free WordPress migration tool, and a powerful backup system, I’d say Cloudways is a pretty good option for your WordPress website.

Don’t believe me? You can try Cloudways out for yourself. They offer a free trial with no credit card required, so you can be sure you like their services before you need to pay anything.

Appendix

For those of you wondering, I used Apache Bench for the load test, with the following commands:

ab -n 100 -c 5 https://example.com
ab -n 100 -c 10 https://example.com
ab -n 100 -c 15 https://example.com
ab -n 100 -c 20 https://example.com
ab -n 100 -c 25 https://example.com
ab -n 1000 -c 100 https://example.com
ab -n 10000 -c 1000 https://example.com

And here are the results for the load tests in order (5, 10, 15, 25, 100, and 1000 concurrent connections):

Server Software:        nginx
Server Hostname:        ##########
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key:        X25519 253 bits
TLS Server Name:        ##########

Document Path:          /
Document Length:        115712 bytes

Concurrency Level:      5
Time taken for tests:   0.468 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      11624177 bytes
HTML transferred:       11571200 bytes
Requests per second:    213.81 [#/sec] (mean)
Time per request:       23.385 [ms] (mean)
Time per request:       4.677 [ms] (mean, across all concurrent requests)
Transfer rate:          24270.94 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        5    9   1.5      9      12
Processing:     5   10   9.1      9      99
Waiting:        3    8   8.9      7      95
Total:         13   19   8.9     18     104

Percentage of the requests served within a certain time (ms)
  50%     18
  66%     19
  75%     19
  80%     20
  90%     21
  95%     22
  98%     24
  99%    104
 100%    104 (longest request)
Server Software:        nginx
Server Hostname:        ##########
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key:        X25519 253 bits
TLS Server Name:        ##########

Document Path:          /
Document Length:        115712 bytes

Concurrency Level:      10
Time taken for tests:   0.368 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      11624300 bytes
HTML transferred:       11571200 bytes
Requests per second:    271.91 [#/sec] (mean)
Time per request:       36.778 [ms] (mean)
Time per request:       3.678 [ms] (mean, across all concurrent requests)
Transfer rate:          30866.31 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        5   16   2.3     16      22
Processing:     4   19   3.2     19      26
Waiting:        2   15   2.1     15      20
Total:         10   35   4.4     35      48

Percentage of the requests served within a certain time (ms)
  50%     35
  66%     36
  75%     37
  80%     38
  90%     39
  95%     41
  98%     41
  99%     48
 100%     48 (longest request)
Server Software:        nginx
Server Hostname:        ##########
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key:        X25519 253 bits
TLS Server Name:        ##########

Document Path:          /
Document Length:        115712 bytes

Concurrency Level:      15
Time taken for tests:   0.406 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      11624400 bytes
HTML transferred:       11571200 bytes
Requests per second:    246.18 [#/sec] (mean)
Time per request:       60.931 [ms] (mean)
Time per request:       4.062 [ms] (mean, across all concurrent requests)
Transfer rate:          27946.09 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        5   26   4.9     26      41
Processing:     6   31   7.3     31      51
Waiting:        2   26   5.1     25      43
Total:         11   57   9.6     57      78

Percentage of the requests served within a certain time (ms)
  50%     57
  66%     60
  75%     64
  80%     66
  90%     72
  95%     75
  98%     77
  99%     78
 100%     78 (longest request)
Server Software:        nginx
Server Hostname:        ##########
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key:        X25519 253 bits
TLS Server Name:        ##########

Document Path:          /
Document Length:        115712 bytes

Concurrency Level:      20
Time taken for tests:   0.369 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      11624400 bytes
HTML transferred:       11571200 bytes
Requests per second:    270.85 [#/sec] (mean)
Time per request:       73.843 [ms] (mean)
Time per request:       3.692 [ms] (mean, across all concurrent requests)
Transfer rate:          30746.27 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        5   31   4.6     32      44
Processing:     7   38   6.5     39      50
Waiting:        2   32   4.0     32      40
Total:         12   70   9.0     69      83

Percentage of the requests served within a certain time (ms)
  50%     69
  66%     73
  75%     75
  80%     77
  90%     81
  95%     82
  98%     83
  99%     83
 100%     83 (longest request)
Server Software:        nginx
Server Hostname:        ##########
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key:        X25519 253 bits
TLS Server Name:        ##########

Document Path:          /
Document Length:        115712 bytes

Concurrency Level:      25
Time taken for tests:   0.365 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      11624400 bytes
HTML transferred:       11571200 bytes
Requests per second:    274.29 [#/sec] (mean)
Time per request:       91.145 [ms] (mean)
Time per request:       3.646 [ms] (mean, across all concurrent requests)
Transfer rate:          31137.16 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        6   39   5.4     39      45
Processing:     8   47   8.0     45      60
Waiting:        2   40   4.7     40      48
Total:         14   86  10.9     86     104

Percentage of the requests served within a certain time (ms)
  50%     86
  66%     90
  75%     91
  80%     93
  90%     99
  95%    101
  98%    103
  99%    104
 100%    104 (longest request)
Server Software:        nginx
Server Hostname:        ##########
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key:        X25519 253 bits
TLS Server Name:        ##########

Document Path:          /
Document Length:        115712 bytes

Concurrency Level:      100
Time taken for tests:   3.783 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      116244000 bytes
HTML transferred:       115712000 bytes
Requests per second:    264.31 [#/sec] (mean)
Time per request:       378.342 [ms] (mean)
Time per request:       3.783 [ms] (mean, across all concurrent requests)
Transfer rate:          30004.51 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        5  160  21.3    160     208
Processing:    29  204  31.7    192     300
Waiting:        2  179  13.7    179     212
Total:         34  364  40.4    361     459

Percentage of the requests served within a certain time (ms)
  50%    361
  66%    380
  75%    393
  80%    402
  90%    423
  95%    431
  98%    444
  99%    450
 100%    459 (longest request)
Server Software:        nginx
Server Hostname:        ##########
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key:        X25519 253 bits
TLS Server Name:        ##########

Document Path:          /
Document Length:        115712 bytes

Concurrency Level:      1000
Time taken for tests:   40.691 seconds
Complete requests:      10000
Failed requests:        4
   (Connect: 0, Receive: 0, Length: 4, Exceptions: 0)
Total transferred:      1162216550 bytes
HTML transferred:       1156896550 bytes
Requests per second:    245.76 [#/sec] (mean)
Time per request:       4069.070 [ms] (mean)
Time per request:       4.069 [ms] (mean, across all concurrent requests)
Transfer rate:          27892.79 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        6 1547 310.7   1611    2181
Processing:   274 2412 582.7   2371    3744
Waiting:        2 1645 324.1   1692    2191
Total:        279 3959 765.7   3960    5721

Percentage of the requests served within a certain time (ms)
  50%   3960
  66%   4327
  75%   4503
  80%   4598
  90%   4944
  95%   5140
  98%   5414
  99%   5473
 100%   5721 (longest request)

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Categories