Today I read this by Jason Cohen. It’s an advertisement for WPEngine, masquerading as a missive about sustainable companies. In it Jason tries to talk up his company by virtue of the halo effect, comparing WPEngine to companies like HubSpot, Freshbooks, SEOMoz and Rackspace.
If my personal experience is anything to go by, it’s bullshit. A few months ago I tried to migrate a small blog network to WPEngine and every aspect of the experience was a total clusterfuck. The service was poor, the documentation was wrong, I’m still haggling over a $500 bill and worst of all, my sites were regularly unavailable during their WPE tenure.
Update 25 October: Ben Metcalfe has made a nice apology on HN and emailed to arrange refunding the WebSiteMovers invoice (which I’ve now paid). While I cannot, based on my own experience, recommend WPEngine; I nevertheless consider the matter to be settled.
Update 5 November: The refund has landed in my account. Thanks Ben.
So, Ozblogistan is a little blog network that I run. It got started nearly a decade ago when Ken Parish, the principal blogger at what is today called Club Troppo, asked me for some help. I knew Ken because he was one of my law lecturers. We got along well, even though I was a terrible law student. Before long I was helping Ken to run Club Troppo, one of the first of Australia’s influential policy blogs.
And it just grew from there. After a few years of travails with different hosting providers, I wound up running a VPS at Linode. And bloggers began to come asking if they could move in next door to Troppo. So now I actually host several of my favourite blogs and bloggers.
But during this entire time I was a student (to cut a long story short, depression cost me my twenties). I had the time to do all the fiddly tasks that are required if you wish for your installation of WordPress to not fall into a flaming pile of dung every time more than 5 readers show up at once. Then I graduated. Now I have work and I’m spending my spare time on my startup projects. I no longer have time, but I have the standard alternative: money. Based on my billing rate, paying a professional service to host Ozblogistan on my behalf is a no-brainer if it saved me just a few hours.
These WPEngine guys sound awesome!!1!
So, I like Jason Cohen. His blog is good. I’ve learnt from it. And he keeps mentioning his new business. And Patrick McKenzie raves about them, and his blog is good and I’ve learnt from him too. So let’s move to WPEngine.
$250/month for the amount of traffic I do? Well … I guess they are The Best. And you get what you pay for, full service operations are never cheap. Let’s pull the trigger.
The Great Migration
So began the process of migrating the sites.
WPEngine have documentation on their site about performing such migrations. And they promise that they support multisite installations. My little network is quite modest — about 1.2Gb of text, 2.5Gb of media. So I begin to do it myself. After a few hours of copying files, I flip the DNS switches and … it’s broken.
Specifically, it’s in a redirect loop. Like most multisite operators I use the Domain Mapping plugin. For reasons I don’t care about, this breaks on WPEngine.
So I go over the documentation again, sentence by sentence, to check my steps. I don’t see anything I’ve done wrong.
I blow away the database and start again from scratch. Flip the switch.
OK. Time to try that famous helpdesk.
Our opening hours …
This part is my fault. WPEngine’s help desk is not a 24/7 operation. And they say so on their website. I guess I should’ve read the fine print.
So when I ask for help, I have to wait. Well actually, first I get an automatic reply which raises my hopes and then dashes them. Then the message tells me that they’ll get right on it … when I’m asleep.
First reply is standard stuff. Did I do this? Yes. Did I do that? Yes I did that.
This goes on for a while. I am rotated to different people. No matter how many times I explain that the instructions as written do not work, they don’t quite seem to understand that as written, the instructions do not work. Even pointing out that those instructions on your website, they aren’t working or that yes, even after following the instructions precisely it is not working for me doesn’t seem to sink in. After going through this process with multiple helpdesk staff this begins to get really, really annoying.
Eventually I mention that surely, being The Ultimate WordPress Hosting Experts, they should handle the migration. And the helpdesk person who happens to be assigned to me that day quickly flick passes me to WebSiteMovers.
Some help from our friends
Here’s the neat thing about WPEngine. They include 6 hours of technical labour from WebSiteMovers, a company who, uh, … move websites. And I figure — they work with WPEngine. And in email they promise that they’ve moved hundreds of WordPress Multisite installations before. Let’s give it a go because I want to like WPEngine and I’ve been telling my bloggers that They Are The Best In The Business and I don’t want to look like an idiot.
And then, a funny thing occurs.
WSM fail to move the site within the prepaid 6 hours.
BECAUSE THE INSTRUCTIONS
ON THE WPENGINE WEBSITE
DID NOT WORK AS WRITTEN
WSM ask me to authorise more hours.
At this stage, desperate for something — anything! — to work, I agree.
And they do it. I am sent a bill for the additional hours (a bit over $500). Digging into the invoice, I discover that I am being billed for the time it took for WSM to get help from WPEngine’s helpdesk and technical staff.
Let me rephrase that: I am getting billed. For help. That I, as a WPEngine customer, should have received in the first place.
My view is that WPEngine should pay this bill. However I am still haggling with WebSiteMovers to obtain a more detailed account of what help, exactly, they obtained from WPEngine. Sadly, the only lever I have over WSM is to withhold payment. It is an unpleasant business, because honestly, they are not in the wrong here. And they have every right to expect payment from me — I agreed to those additional hours. And I intend to pay them as soon as I can. But I really need to know exactly what was done so I can determine why I didn’t get the same service.
And then I will ask WPEngine to pay me that amount. Not for any legal reason (there’s actually a case here, but suing an international company in the matter of five hundred bucks is retarded), but because they gave shitty service. If they’d given me good service in the first place, if they’d done for me whatever it is they were prepared to do for a company I paid; then I wouldn’t have gotten that invoice in the first place.
Update 5 November: This section is out of date, as WPEngine arranged a refund through WebSiteMovers.
Insult to injury
Then comes the kicker.
The sites frequently die.
It’s the famous “can’t connect to database” error page, the really ugly <h1> job that ships with the base WordPress install. It’s possible to have your own custom page that looks nicer, but I guess WPEngine felt that this would take away engineering resources from writing incomplete migration instructions.
By this point I am livid. Absolutely ropeable. I’ve paid $250 for the first month and WPEngine is failing in its most basic service requirement, which is that the sites be available at all.
Taking my business elsewhere
At this point I begin to look for alternative providers. I pick Page.ly. Their service is personal, hands-on and I don’t keep getting shuffled to different helpdesk staff. They do substantial hands on work themselves to make the migration happen quickly.
Actually, the difference in service between WPEngine and Page.ly was astonishing. Like WPEngine they don’t have a 24/7 desk, but I was regularly seeing messages that indicated they were putting in 16 hour days. I think that’s crazy, but I sure know that it was better than an automated message telling me to go away and come back when I’ve decided to become an American resident.
Sadly … Page.ly had technical problems too. But again, their service was outstanding. They contacted WordPress core contributors and discussed my performance problems. The fix is to partition the comments table of one of my busier blogs; Page.ly weren’t willing to do that within the set prices. So sadly I parted ways with them.
It is important to point out that the technical problem which Page.ly couldn’t fix is almost certainly the same problem that WPEngine couldn’t fix. The difference is that Page.ly a) worked tirelessly to diagnose the root cause and b) didn’t keep trying to flick pass me or tell me it was my fault for failing to precisely follow broken instructions.
Neither Page.ly nor WPEngine can, in all fairness, be blamed for the shortcomings of WordPress. WordPress, like most LAMP apps of its era, makes a series of architectural assumptions that turn out to have horrible impact on non-functional qualities … but that’s another rant for another day.
The difference though is that Page.ly’s service was good. Really, really good. And WPEngine’s was terrible.
So: if you have a blog with less than 400k comments, use Page.ly.
Where I am today
Back at Linode, back to running it myself.
Based on saving a few hours per month, this entire exercise has been a stunning loss. I’ve blown the time-saved budget well into the 2020s based on all the days and nights I spent arguing and haggling and uploading and downloading and tweaking and researching and then waiting.
I’ve been putting off writing this massive rant for some time now. Epicurus counsels us to avoid people and situations that make us angry. Why seek them out? Life is too short; this is time that could be spent focusing on what makes us happy.
But Cohen’s self-congratulation can’t be allowed to go unquestioned. I know that many people are perfectly happy with WPEngine. I am absolutely not one of them. I found their service poor and their technical chops limited. If you are looking for a WordPress host, avoid WPEngine.