WordPress Hosting — From DreamHost to DreamPress to GoDaddy to DigitalOcean

This website runs on WordPress, and over the past several years has seen its hosting move from the DreamHost shared environment, to DreamPress managed hosting, to GoDaddy managed hosting to, finally, DigitalOcean. This article explains why.

Beginning with DreamHost

Probably close to 10 years ago, I signed up for an unlimited shared hosting account at DreamHost. At around $100 per year for unlimited websites, storage and bandwidth, it’s a great deal, and it’s in this environment that my website was first hosted.

Of course, the problem with shared hosting is that the server resources are shared. Although the use of caching plugins like WP Super Cache help keep the public side accessible, working in the WordPress CMS itself is very slow, and ultimately is what drove me to look for a better solution.

Moving on to DreamPress

Just around the time I seriously began investigating hosting alternatives, DreamHost announced their specialized managed solution for WordPress hosting called DreamPress, which consists of a pair of VPSs (virtual private servers)—one for the WordPress installation and one for the MySQL database—specially configured and “optimized” for running WordPress.

A benefit of going with DreamPress for existing DreamHost customers is the ability to move an existing WordPress install from the shared environment into DreamPress with a click of a button.

So for several months this site ran on DreamPress, and I enjoyed much better responsiveness in the CMS than when the site operated in the shared environment.

In the end, however, I became dissatisfied with DreamPress for the following reasons:

  • $20 per month is about the limit of what I’m comfortable paying for the hosting of my personal website, and that’s what DreamPress costs. And in addition to my own website, I manage several other WordPress sites, and always felt it was a pity that I couldn’t somehow move those into my DreamPress environment as well, since for sure my little blog didn’t consume a fraction of the resources available in the DreamPress environment.
  • DreamPress advertise a custom-built caching and resource scaling environment such that plugins like WP Super Cache aren’t needed. Well, the one time my website actually got linked to by someone popular, the site went down. I was out on a hike when I got the notification from the monitoring system, and by the time I got back home several hours later, I’d missed most of the traffic opportunity. When I got in touch with DreamHost support, they had to restart my environment, and never did figure out what had gone wrong. So the one time I actually needed the performance I was paying so much for, DreamPress didn’t deliver.

Moving on to GoDaddy

Once again researching managed WordPress hosting, I came across a number of articles that surprisingly pointed to GoDaddy Managed WordPress Hosting as one of the best services in terms of cost versus value. Although nobody would traditionally think of GoDaddy as a leading managed hosting provider, that changed with their acquisition of Media Temple back in 2013.

The GoDaddy economical offer was attractive — for $15 per month, I could host up to five WordPress sites. I signed up, and began the process of migrating this website, and four others that I manage, to GoDaddy.

GoDaddy’s migration wizard actually didn’t work successfully on any of my sites. Unlike DreamHost, GoDaddy don’t offer online chat-based support, but rather require that you call in, something I wasn’t too fond of. But credit where credit is due, GoDaddy’s telephone support provided excellent service in hand-migrating each of my sites into their hosting environment.

In terms of performance, I found GoDaddy’s environment to be much faster than DreamHost’s shared environment, but slightly slower than DreamPress—which made sense, since sites at GoDaddy live in a shared-resources environment. And like DreamPress, GoDaddy’s managed environment take care of caching and scaling, and so you’re not allowed to run your own caching plugins. And in fact, you’re not even allowed to perform your own update of the WordPress core; that’s handled by the “platform”.

When the second month at GoDaddy rolled around, I was surprised to see a charge of $25 appear on the credit card. When I called, the GoDaddy staff explained that the $15 sign-up offer is only valid for a many months as I committed to paying up front, which on a monthly billing plan is one. Upon the first “renewal”, the price reverts to the normal price of $25.

I said that if the onboarding process had made that clearer, I would have paid for a year in advance. The GoDaddy support person then “spoke with a manager”, and allowed me to go ahead and pre-pay for a year at the monthly cost of $15. She also said that after a year, I would automatically get moved to $25 per month, and that I should make a note to call in just prior to that renewal and ask for a continuation of my current price.

So for close to a year, this site and four others I manage have been hosted at GoDaddy and for the most part I’ve been satisfied. The one negative, which turned out to be enough to keep my eyes open for alternatives, was that in the GoDaddy environment, working in the WordPress CMS was just slow enough that it frequently caught my attention.

Settling on DigitalOcean

Going through my RSS feeds at lunch one day, I read an article by Don Melton (creator of Safari and WebKit at Apple) talking about how just after having moved his blog to WordPress an article of his got linked to by John Gruber, Rene Ritchie and iMore. As a result, it received nearly 100,000 page requests in a day, and handled them all without breaking a sweat.

He pointed to two reasons for being able to handle this traffic:

  1. Running his site in a VPS environment at DreamHost
  2. Running, of course, the WP Super Cache plugin

The first time I’d come across the idea of hosting WordPress in a VPS was when my friend Michael Tsai told me that he hosts his own blog in a VPS at DreamHost. But I discounted the idea given that operating a VPS requires knowing how to manage Unix servers using the command line — things like configuring the Apache web server, MySQL database, applying security patches, etc. I’d had enough experience tinkering with that stuff in Mac OS X to know that my level of knowledge was just enough to get me in trouble.

A few years back, in 2014, my office mate experimented with the hosting of a WordPress site in a $5-per-month droplet at DigitalOcean. He’d been very impressed with both the low cost and high performance, but at the end of the day a DigitalOcean droplet is a VPS, and he ended up spending so much time with things like enabling swap spaces that he finally also moved to a provider like Media Temple.

But since that was a few years ago, reading Don’s article prompted me to check whether the situation of hosting WordPress sites at DigitalOcean had improved since my colleague’s experience.

Turns out, it has.

There is now a service available called ServerPilot (and if you signup through that link, I’ll get a little tip!) that handles most of one’s server-management needs when hosting WordPress in DigitalOcean droplets, including one-click installations of WordPress, setup and configuration of Apache and MySQL, and automatic server security patches when necessary. The basis service is free. A $10 per month paid upgrade gives you access to stats and some other services that, currently, I don’t really need.

I decided to give it a try:

  1. I signed up for an account with DigitalOcean, and spun up a $10/month droplet with 1GB RAM, 30GB SSD and 1 CPU. This is the minimum size they recommend for running WordPress. It’s important to note that if you’re going to use ServerPilot, you should not use DigitalOcean’s one-click WordPress installer
  2. I signed up for an account with ServerPilot, and let it connect to my DigitalOcean droplet. The ServerPilot setup process modifies the terminal login screen to remind you that it’s now managing your server (and you probably shouldn’t).
  3. I then started ServerPilot’s cleanly-designed Create an App workflow to create my first WordPress site in my DigitalOcean droplet. I used the domain dafacto.com, having setup that hostname in my DNS at CloudFlare. Within moments I could login to the new WordPress install at dafacto.com. As part of the creation process, ServerPilot creates a non-root user for you to use to SFTP connect to your site, if ever necessary.
  4. I use a plugin called UpdraftPlus to automate backups of my WordPress sites, storing the backup files at Amazon S3. I used the UpdraftPlus Migrator paid add-on to “push” a backup of all the data—themes, plugins, database, and all files in wp-content—from dafacto.com to dafacto.com.
  5. In dafacto.com, I used UpdraftPlus to then restore its newly-received backup data, and was careful to choose the “replace domain name” option so that after restoration, the site would still understand itself to be dafacto.com, and not dafacto.com.
  6. Once I confirmed that everything was running properly at dafacto.com, I used ServerPilot to add dafacto.com and www.dafacto.com as domains in my WordPress “app”, and then I switched the DNS for dafacto.com to point to the DigitalOcean droplet.

From creating the DigitalOcean droplet, to setting up a WordPress site on it using ServerPilot, to migrating my website, the total amount of time involved was about an hour. And that’s only because I was doing things extremely carefully.

Performance

With my entire site migrated, I logged into the WordPress CMS and was delighted to find that it absolutely screams. It’s even faster than what I remember at DreamPress. And once again using the WP Super Cache plugin, the public side of things feels super snappy as well. (Maybe somebody like John Gruber could link to this article, so I can really check that out properly.)

And of course, what’s great about this setup is that the DigitalOcean droplet is just a VPS—which means I can install as many WordPress sites on it as I wish! (I’ve read, however, that this is precisely the reason one should not use DigitalOcean’s WordPress installer, as apparently that limits the droplet to a single install.)

Seeing how fast dafacto.com was running, I then migrated the Money for Something over as well. I figure that with caching, the server should easily handle the load of both sites, and I’ll only ever work in one CMS at a time. That second migration took only perhaps 20 minutes in total.

With both sites publicly running for a while in the single droplet, I checked in on the stats in ServerPilot and DigitalOcean. The memory usage has remained very stable at about 30%, and the CPU seems hardly used at all. (And as it happens, my 2011 blog article about The Big Short has been getting a lot of traffic since the release of the movie.)

System Administration

While ServerPilot handles regular security patches automatically, I was initially a little concerned about what I’ll do when major upgrades are needed to the OS or components like PHP. For that, instead of hiring a Linux admin, I think I’ll just spin up a new droplet and move my sites over! Heck, maybe I’ll even do that one a year just to be on the latest stack.

What’s also nice about this setup is that if the site goes down again when I’m on a hike, I can simply fire up an iOS app and reboot the whole server.

Conclusion

So at long last, I seem to have found what I’ve always been looking for — a way to host WordPress that’s fast, economical, doesn’t limit me to a single site and doesn’t require me to do any Unix system administration.

27 thoughts on “WordPress Hosting — From DreamHost to DreamPress to GoDaddy to DigitalOcean”

  1. Happy to read this post. I wanted an honest review of DreamPress 2. I asked them if they are VPS how much resources they allocate to each DreamPress account. And they refused to mentioned. They are asking so much money for just two cache system.

    I tested wordpress at 1Core CPU SSD cloud and it was blazing fast. Faster than DreamPress. Without memcache, varnish and any wordpress cache plugin I got first byte response around 300ms. And on dreampress you hardly get 300ms response with their cache system and w3total installed on site.

    Now after confirmation I’m definitely gonna go for DO.

    BTW if you giveaway ServerPilot, which required 1GB ram to be used with, 512MB ram is sufficient for a wordpress site getting 1k avg visits a day. Isn’t it? Also you can install Varnish at DO as well.

    1. Hi @BonjourLife:disqus — DigitalOcean recommend the 1GB droplet to be used when running WordPress, so that’s what I went with. I have a friend who runs a single WP site, and he’s using the 512MB version, apparently without any issues so far.

      I have no sysadmin abilities whatsoever, so I’ve not even considered installing Varnish. Given that I use WP Super Cache and CloudFlare, I imagine that the only time server resources are consumed are when I’m logged into the WordPress Admin, or when the site is doing some background job, like backing up with UpdraftPlus.

      Given that, I decided (using ServerPilot) to run several WordPress sites on my 1GB droplet, and haven’t experienced any problems at all so far.

    1. OMG — huge benefits! First, DigitalOcean’s one-click only allows you to install a single WordPress instance on a Droplet. With ServerPilot, you can install as many as you like, and provides all the associated services you might want for each — multiple domain association, SSL enabling, etc. Finally, and particularly important for someone like me who knows nothing about system administration, ServerPilot applies security patches automatically to the server. So all in all, especially considering it’s a free service, ServerPilot is a no-brainer for someone like myself.

      1. hmm interesting. Thinking about doing some client websites and looking at VPS .. i wonder if this would be a good client solution or a bit too involved ..

        1. I think it’s a fantastic approach for hosting client websites, with these observations:

          1. Even on the $10 droplet, if your sites are cached and you run the free CloudFlare in front of them, the load on the server Droplet will remain really low. And if you upgrade to the $10/month ServerPilot service, you can monitor memory usage on the server as well. (I still can’t understand why DigitalOcean doesn’t provide a memory usage chart…) By monitoring the CPU and memory usage, you’ll get a feel for how many client sites you can install per droplet (depending on the types of sites you’re building — e.g. a single BuddyPress instance might be more resource intensive than 20 static brochure-type sites.

          2. Running on a DigitalOcean droplet, the WordPress admin will feel much, much faster than running in any shared hosting environment (like Dreamhost, GoDaddy, etc.)

          3. If a site crashes, you don’t need to rely on getting in touch with hosting support; you can simply go to DigitalOcean and power cycle your whole droplet.

          4. If you pay an extra $2/month to DigitalOcean, you can have snapshots of your Droplet backed up weekly.

          5. When there major OS updates to do, you can simply spin up a new droplet (which will be based on the latest OS and component stack, e.g. PHP, MySQL, etc.) and then migrate all your sites to it (using something like UpdraftPlus) and then destroy the old droplet.

  2. I can honestly tell you that the information you provide us is of much value. Im thinking about switching to DO and this is just what i needed. Only one question: how many sites are you running on your $10 droplet? I want to host several sites without problems and this is my main concern.

    1. Hello Luis, currently I’m running about 12 sites on a single droplet. The CPU usage of the droplet is mainly taxed when people use the WordPress admin, since the public front-ends are cached.

      1. If they are all on a single droplet, and then all have the same IP address.. say, 192.1.1.1 (or whatever), then…. when you go to http://192.1.1.1/wp-admin, you are going to get the wp console for the first wp app you set up… how did you go about getting the wp admin for the 2nd one you did, money for something ?

        1. Randy, I don’t visit {ip_address}/wp-admin to get to the WordPress admin. Instead, I visit {host_name}/wp-admin, e.g. moneyforsomething.org/wp-admin. When adding new WordPress sites, ServerPilot takes care of configuring Apache to respond to the various virtual domains on the droplet. (You can even assign multiple host names to the same site in ServerPress, e.g. if you wanted your site to respond to .com and .org versions of your hostname.)

  3. Love the suggestions! I have signed up for both DO, and Serverpilot from your links above. I also have a coupon code for DO (new accounts only though). It’s good for $10 off/Credit to your account. ALLSSD10

    I am currently on their $5 Droplet as I was reading in the comments about the load you are placing on the $10 one and that being adequate for your needs across several sites. I am only hosting one site, using ServerPilot, which by the way makes the whole process SO much simpler.

    Uechi Ryu Martial Artist here, have trained with some BJJ karateka in the past and have enjoyed every minute of it.

    I wish you all the best in 2017!

  4. Can Server Pilot or Digital Ocean handle DNS entries as well? We have our registration with GoDaddy, but a 3rd party is hosting our site on a shared server with InMotion. The DNS is handled at InMotion with CPanel.

      1. I started the process and it does look like it has DNS.

        Another question. You mentioned restarting the server while mobile, is there an app for that or do you just go to the website?

        1. Hi Patrick, there is an app. I can’t remember the name of it off-hand, but if you search for Digital Ocean in the App Store, it’ll come up (that’s how I first discovered it; in fact, there could well be something better there now!)

          1. I have it all up and running. The speed is incredible. SO MUCH better than shared hosting. Unreal.

            The only other question I have for you is. I have my droplet. I have my site completely copied. I wanted to add another wordpress site as well (which I can through the App, I didn’t use the one click install). I added the second app. Now, when I go to that IP address, it shows the 2nd one and not the first. Basically, I don’t know how you are differentiating between the two sites on the same IP.

          2. Got it. I didn’t see the Domain tab in Server Pilot.

            Great post. Awesome approach. I couldn’t be more pleased with the results of this. Thank you for your time and effort documenting this.

  5. I’m interested, what made you decide to switch to Linode? It looks fairly similar to Digital Ocean but was there a key driver?

  6. Hi Matt, thank you so much for this article, I was wondering if the $20 droplet would be enough to handle a Buddypress site. That means different users logged in at once. The content isn’t that heavy, it’s just that there is a bit of read/write requests for the mysql database here and there?

Agree? Disagree? What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.