
My experience with WPEngine - lasonrisa
http://chester.id.au/2012/10/24/my-experience-with-wpengine/
======
alexandros
For all who are thinking about moving to WPEngine:

Your staging server does not use WPE's caching technology, which your
production server will use. WPE will not give you details on how their secret-
sauce caching works. This means that things that work on staging will break on
production. WPE also refuse to turn off their caching on production, but also
refuse to turn ON their caching on your staging server. This means there is no
real way to test. Things that work with their staging server, and even work
with the standard WP caching plugins, will break in WPE production.

Their solution? Buy another production site to test on.

That website is now moving from WPEngine after having its launch botched by
the aforementioned issues, and after not being able to make a basic paywall
work with their caching. Once they realised the use case, WPE simply suggested
moving elsewhere without making any further effort to accommodate.

I had a similar reaction to the post yesterday by asmartbear as Jaques, but he
made the extra effort to actually write the blogpost, so bravo to him. WPE
enjoys this sterling reputation that misleads a lot of people into using them,
but their comfort zone it seems is limited to vanilla WP installs with little
deviation.

~~~
dotBen
So we don't apply the caching stuff to the staging server because the purpose
of the staging server is to stage content and test new plugins and themes.

We invented this feature in response to bloggers and site owners who wanted to
be able to test a new plugin before adding it to the live/production version
of their site. _We're also the only managed WP platform to offer such a
feature as standard with all accounts._

I can see that in a true dev/staging/production test suite environment, it
does't stand up as a true mirror of product for the reasons you stated - but
then neither does the staging/local version of Google App Engine or Heroku
offer the same exact environment of their production platform.

If you need true like-for-like mirroring of production and staging, then yes,
you need to create another WordPress instance - that's the case for most
providers. Also its wroth nothing all WP Engine accounts, other than the
Personal plan, come with multiple WordPress instances, so rarely that means
actually buying anything further.

~~~
benatkin
The solution with Heroku is to create a separate app and use that. The app
will be identical except for having fewer (and optionally different)
resources. Because it's billed hourly, it doesn't cost too much to run it at
full power for a short while to answer a question, before scaling it back
down. The reason you needed to "invent" this feature is because your
environment isn't as self-service as it could be.

------
jacques_chester
Of all the things I've ever written on the blog (and ok, most of the earlier
stuff is as tedious as watching the guy who watches the grass grow), it's
sorta sad that only the one with the sensationalist title has ever made the
front page at HN.

So, while I'm here, go look at my very nice bloggers. I regularly submit their
stuff.

<http://ozblogistan.com.au/>

Take, for example, this recent extremely intelligent discussion of privacy in
the current internet:

<http://skepticlawyer.com.au/2012/10/19/manners-cost-nothing/>

Or this discussion of the roots of order/chaos good/evil dualities in
agricultural society: <http://skepticlawyer.com.au/2012/10/16/war-and-peace/>

This confronting moral conundrum from the Massacre of Srebrenica:
[http://clubtroppo.com.au/2012/10/24/srebrenica-should-the-
so...](http://clubtroppo.com.au/2012/10/24/srebrenica-should-the-soldiers-
protecting-the-enclave-have-died/)

This discussion of the deadening effect of media laws upon Australian free
speech: [http://catallaxyfiles.com/2012/10/24/the-deadening-of-
free-s...](http://catallaxyfiles.com/2012/10/24/the-deadening-of-free-speech-
in-australia-continues/)

and so on and so forth.

I am enormously proud of all my bloggers.

~~~
aneth4
"my bloggers"?

How are these blogs related to you?

~~~
jacques_chester
It's a convenient shorthand for "bloggers whose websites I host at my own
expense because I like and admire their sites".

~~~
krishnakv
@Jacques, the people who host blogs on your network are lucky :-). I wish more
businesses emulate the good example you are setting by thinking about your
"customers" success...

------
ryanwaggoner
I host several sites on WPEngine and we've had some relatively minor issues.
But we're getting ready to switch to multisite and now I'm nervous. We're
generally happy, but we haven't been blown away.

Jason, if you're not scrambling to deal with this mess, you will be soon. And
the main message I have is that you need to back off the marketing side a
little and let the technical and customer service side catch up.

Godaddy makes an incredible amount of money, but they're still a terrible
company from a technical and customer service perspective. But their marketing
is so effective that they can get away with that [1].

I wonder if Jason Cohen's position in the tech community and general marketing
prowess has allowed WPEngine to get ahead of themselves? I know when I read
Patrick's blog post about WPEngine, I was really excited and it was a service
that I _wanted_ to like. And I do like them, but I'm not excited about them at
all anymore.

1\. Interestingly, Google is the exact opposite, and their customer service
makes me want to take a spoon to my own eyes.

~~~
whyleyc
I'm not sure he's scrambling quite yet:

<https://twitter.com/asmartbear/status/261103840231825409>

<https://twitter.com/asmartbear/status/261103530855784448>

~~~
jacques_chester
Recently I had an experience on another website where one of the founders
basically insulted me personally because I made a sarcastic quip.

Another founder contacted me by email and apologised. It was dignified and
mature of them to do that.

And so I consider that matter closed, which is why I am not going to name
names here.

The contrast is unflattering and it's a shame.

I really, genuinely, wanted to like WPEngine.

------
druiid
This story and comments have been flogged to death a bit already, but I do
have a couple questions/concerns here.

While perhaps the issue ended up mostly being due to a Wordpress core issue, I
question why this was an issue for a service that someone is expected to pay
$250/month for?

The OP was able to, without a team of engineers/admins get the same content
running on a VPS with no issue. I then question exactly what one gets when
they pay $250/month for this service? To expect to get any sort of scaling
capability out of a $8-$30/month shared hosting account is asinine and anyone
running more than a small amount of traffic under such circumstances deserves
what they get.

Why then if the end service was not capable of sustaining traffic/memory to
the same degree that some shared providers are willing to go, would one pay
$250/month? I think this is a question the creators of WP Engine genuinely
need to answer...

~~~
STRML
This is absolutely on the mark. It is well understood that scaling Wordpress
correctly requires a couple of core hacks (see this excellent comment:
<http://news.ycombinator.com/item?id=4693924>). Why WPEngine does not
incorporate these core hacks is beyond me.

------
ck2
WPEngine uses NFS/NAS which is a show-stopper. Dreamhost has the same issue,
and GoDaddy (still?)

You never, ever, use NFS on something with hundreds of files to load for every
page (ie. WordPress).

Every file takes 2-2.5ms to stat/load on NFS ( _from my tests on WPengine_ )
which seems small but adds up fast.

It means you instantly have 700ms or more of overhead on the SERVER side to
render a page (not transmit to the browser, just to render).

You can somewhat get around this by using an opcode cache and turning off file
stat but there are still some files that have to be checked like static data
read from the disk and turning stat off has other issues when editing code
like having to flush the cache.

~~~
dotBen
There's a fair amount of criticism flying around about us on this thread, but
that's one I can't make any apologies over.

There's all sorts of interesting things we're doing with NFS, along with
caching layers, that ensure this is never a bottleneck -- and even provides
benefits in other ways.

~~~
dotBen
Also, to add, most customers actually don't run via NAS - we have /nas/ in the
paths for other historical reasons.

------
cooperadymas
May as well throw in my own experience with WPEngine...

We run a relatively small member site (<1000 active members) that operates on
WordPress. We tried migrating the site to WPEngine, but could never get the
membership plugin working as expected. Over a course of about 2 months we
tried everything possible to get it working, and talked with their support on
a near daily basis.

Overall, their support team tried to be helpful. They weren't always
responsive (sometimes we wouldn't get a response for a day, or we would be
waiting on hold for a long time), and we ran into the problem of different
support people telling us different things about how their system was setup.
Eventually one of the co-founders got involved in the support, but we still
were not able to resolve the issue.

I managed to find 2 other people using the plugin that had run into the same
problem with us on WPEngine. WPEngine claimed that other customers of theirs
used the same membership plugin without any issues. I don't feel they lied,
but we clearly weren't alone in this problem.

In the end, we moved to another WordPress host and were able to get up and
running in no time. Unfortunately, WPEngine refused to refund us fully for the
2 months we wasted trying to get our site setup because we went past the 60
day money-back period. (We had paid for the 3rd month already, and they gave
us a partial refund of that month only.) It was a relatively small amount of
money, but after all the trouble we had with them it would have left a much
better impression if they would have refunded the entire cost we paid.

I'm sure that WPEngine has thousands of happy customers, and our experience
was largely unique, but there are many things I felt they could have done a
better job of.

~~~
STRML
Which membership plugin was this? I am on WPEngine running WP-Members,
crossing my fingers.

------
csomar
As a seasoned WordPress developer and entrepreneur, the OP is making wrong
assumptions. If I was the WPEngine owner, I won't be bothered by seeing him
go.

WPEngine provides WordPress hosting services. They are professional and they
do it for $250/month (which plainly means that their target audience is
professional bloggers). For $250/month, they don't provide consultancy service
as why your particular setup couldn't install in their server. This is your
responsibility.

Setting up a WordPress blog can be easy (5 minutes) and complicated
(Professionals charge up to $350/hour). What you are asking for is someone to
move your blog. Fine. You are responsible for that. WPEngine offers you a "6
hours coupon" from another service. That is, they are not responsible for
that.

Page.ly are probably doing this to get more clients. This is the _wrong thing
to do_ , because their support service can't scale this way. I have been doing
this to bootstrap my services and it had more negative consequences than
positive ones.

tl;dr: The OP is expecting WP consultancy services for signing up to WPEngine.

~~~
papsosouid
>As a seasoned WordPress developer

You realize that puts your credibility in the negatives right? Wordpress is
infamous for being one of the worst pieces of software ever created. The fact
that your software is terrible does not mean a company whose sole purpose is
to be experts at making that terrible software run is doing good by failing to
make it run.

~~~
justinph
Puh-leeze. Everyone thinks some other software is terrible. Wordpress might
have some funky bits, but a) it's gotten a lot better over the years, b) it's
pretty damn popular, and c) end users don't care if the guts suck if the UI
works and it does the job.

Get over yourself.

~~~
papsosouid
Did you have a point to make? Shitty software being popular doesn't make the
authors of that shitty software any less biased when discussing that shitty
software.

------
Tombar
We have a similar experience trying to move a large local newspaper in WP
(500k+ posts) from our architecture to WPEngine, after over 1200 U$D spend,
sadly we rollback to old setup.

------
brokentone
I run one of the largest WP installs outside of WP.com, and we've seriously
struggled with performance issues. Sounds like a lot of this complaint is a WP
design/performance issue. If you're looking to be create a WP serving
platform, it will require a huge amount of custom configuration, a huge amount
of hardware (even with the best caching), regular DB maintenance and
reconfiguration, and core hacks. Automattic redirects the core dev when they
need something, generally only enough to add their hooks, then they write a
plugin, release it to the community, but always keep it a few versions back
(HyperDB support for 3.4 anyone?)

The WP core team doesn't write code with performance, scalability, orthogonal
design, good standards or any such thing in mind and you regularly hit
gotchas. However... if you sign up to be a WP platform, you're kinda asking
for it.

Obligatory performance tips: 1\. Cache the heck out of it. CDN, varnish,
optcode (APC), query caching on MySQL. 2\. As has been noted, file stat'ing is
massive. You have to have an exclusive install as close to each serving node
as possible, even with optcode caching. 3\. Core hack - Modify admin comment
searching. Does 5 column wildcard lookups across the entire table. Not
scalable. (<http://core.trac.wordpress.org/ticket/20487>) 4\. Core hack -
Remove content reallocation on user delete. With large user tables, you lose
the ability to delete users (core fix pending:
<http://core.trac.wordpress.org/ticket/19867>) 5\. Clean and optimize your DB
regularly - Old post revisions are a huge gain 6\. Add indexes intelligently -
WP doesn't include all the indexes you need 7\. Horizontally scale your DB
(whether through MySQL clustering, or HyperDB + DBs with roles) 8\. Tune
everything. I've found that NGINX/Apache and Percona/MySQL make little
difference, but setting the right config for each daemon makes huge
difference.

------
Tyrannosaurs
I want a two word tl;dr summary of every article in the title:

How fast is... Apple.com? (tl;dr: not very); Wired's Review of the Microsoft
Surface (tl;dr: pretty interesting).

~~~
mryan
I sincerely doubt many reasonably interesting articles can be accurately
summed up in two words.

~~~
Tyrannosaurs
I was only being semi-serious but there are certainly a good many titles that
could be written in an ambiguous manner.

The original author may want to use that title but that's not to say the
person who posts it to HN has to.

~~~
Tyrannosaurs
could be written in a LESS ambiguous manner...

Oops.

------
qeorge
A hosting company without 24 hour support is not a hosting company.

Go with Rackspace. They're expensive compared to budget hosts, but they seem
to have an army of sysadmins available 24/7/365 that never say "that's your
problem" / "not in scope".

PS: that redirect bug is probably a mismatch of your site_url setting in
either wp_blogs, the wp_options table of your primary blog, or the wp-
config.php. If the domain set in any of those 3 places doesn't match you get
that endless redirect loop. Could also be htaccess sending you to www or no-
www, and your config is set the other way. Its an annoyingly common issue when
moving MU sites, and they should have been able to fix it.

~~~
killahpriest
I highly doubt it's something that simple, the OP had been self hosting a blog
network on Linode. There's no way he made that simple of a mistake.

------
graupel
For sites that are large enough/can afford it, I cannot say enough good things
about WordPress VIP - we have 20+ sites on VIP and could not be happier with
it.

Since they 'are' WordPress they can make pretty much anything that does not
modify core, work. It's not for everyone, but for the right sites (high
traffic/high availability/generating revenue) it's fantastic.

~~~
thenomad
Interesting, thanks. I suspect we're still too small, but I'm checking the
service out anyway.

------
typicalrunt
_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._

Until I came to this sentence, I was coming to the conclusion that CMSes fall
down fairly quickly once you add in large data, large traffic, or complex
installs. For the life of me, I can't see why people continue to use CMSes for
large projects anymore, when they could potentially code something up faster
in Django/Symfony/Rails and, here's the kicker, know the codebase inside and
out.

My client has simple marketing (read: 99% static) websites that are built on
Drupal. Sounds good at first, and it almost makes sense... and then you get to
the non-functional requirement that it needs to withstand a marketing event
that can bring 2k+ concurrent users for over 24 hours. Then you watch Drupal
meltdown the server.

~~~
ohashi
What doesn't make sense about it?

I can see a lot of scenarios where you start with a CMS because it does a good
job of doing what you need. Why reinvent the wheel?

Scaling issues is going to occur in all code, even code you write and know
inside and out. It just means you become entirely responsible for debugging
and re-architecting to improve its performance.

@Drupal specific comment, you could easily throw nginx as a reverse proxy with
a cache in front if everything is static and be done with it.

~~~
typicalrunt
Valid point. What I keyed on in the article is that it is a complex install,
and that tells me that maybe his CMS is working against him. In those cases I
like to remove the impediment and simplify the data model (which _should_
simplify the code).

~~~
ohashi
I can't comment on the specifics but he said it was something default in the
comments table and modules I think. For a big project like wordpress, I would
try to understand why a certain decision was made. Try to understand the
consequences of that decision vis-a-vis how I would want/expect it to work.

------
krmmalik
I've had a radically different experience with WP Engine and would happily
recommend them to others, and have done so.

I went through 3 or 4 different providers, and the only place that i was
really happy with setup, infrastructure and support was WPEngine.

As some of the other guys have stated regards the caching and their
suitability to vanilla installs, i think that is most likely the case, and yes
mine was a pretty vanilla install in the grand scheme of things, but i'd still
choose them over anyone else.

~~~
jacques_chester
Indeed, another blogger of my acquaintance (Joshua Gans, a really excellent
economics blogger) heard about my moving to WPEngine and moved several
independent blogs across. He's a fan of theirs.

------
dotBen
Ben, one of the co-founders of WP Engine here and as someone wrote below[1] -
yes, this isn't the most wonderful thing to wake up to in the morning and sort
out while still in your PJ's ;)

Ok, so first and foremost I am incredibly sorry, Jacques, for the experience
you had. I can say with confidence that your experience with WP Engine is out
of the ordinary, but no excuses. I’m writing this as a way of owning up to
mistakes that were made on behalf of our company, as well as transparently
engage the discussion here. There's a couple of points I'd like to make, if I
may...

We're in the process of moving to complete 24/7 support right now _(we do have
emergency 'site down' 24/7 cover)_ \- as any entrepreneur on HN will tell you,
getting your startup to take off is hard and scaling the human aspect is
perhaps even harder. With mostly US-based business customers it wasn't as much
of an issue to begin with but we're now addressing that.

Obviously if we'd had that 24/7 support in place we could have addressed this
more immediately.

However, one of the reasons that your site experienced problems was that there
were some aspects of the site development that simply didn't scale. Like any
scale-orientated PaaS, we can provide the infrastructure to enable you to
scale but your code needs to work in partnership to fully achieve that.

As Sean, my head SysAdmin wrote on a ticket to you, some of your pages were
performing a sort on 188590 rows in memory each time. That just doesn't scale.
From your post, I'm guessing this is the issue that also occurred when you
tried Pagely. While it's awesome that the good folks at Pagely were able to
work with you a little to try to address your problem, like most PaaS
providers (eg AWS, Heroku) we don't provide consultancy services - there is an
amazing WordPress community of consultants and dev shops out there and its
just not what we want to get into. Just like Heroku won't fix your Ruby code.

We have many, many clients who are very happy with WP Engine but as a growing
business there will always be customers who find that the service isn't right
for them, and even occasionally have a bad experience.

So lets try to make this right. I can see that we've already refunded you all
the hosting fees you paid for your account, and I'll also make sure we pick up
the $500 migration bill that you incurred. If there is anything else we can do
please let me know.

I will also take time once I've finished my coffee and out of my PJ's to
analyze your case further and see what else we can do internally to ensure
this doesn't happen again.

Bests,

Ben, co-founder WP Engine

[1] <http://news.ycombinator.com/item?id=4692775>

~~~
ryanwaggoner
While you're looking into this, you _really_ need to jump on your cofounder
Jason, who is currently making a complete ass of himself (and WPEngine) with
bullshit like this:

<https://twitter.com/asmartbear/status/261103840231825409>

<https://twitter.com/asmartbear/status/261103530855784448>

Ben, I really appreciate you taking the time to post this here and demonstrate
that you take this seriously, but your cofounder is currently _publicly
ridiculing customers who have paid good money and been dissatisfied with your
service_.

As a current customer of WPEngine (who has had issues), nothing makes me want
to bail on you guys as much as those two tweets. From the CEO.

Completely disgusting.

EDIT: This is more what I expected to see from Jason, though even this has a
weird tone: <http://news.ycombinator.com/item?id=4086553>

~~~
grey-area
I don't see what you think is _disgusting_ about these tweets, they express a
personal opinion, here they are in case they are deleted:

    
    
        @billmcneely yup, there's always someone bitter and hateful. Sometimes they even have a point, but choose to make it in a destructive way.
        @P_Doubleya @gozmike thanks guys. That's also why I ignore HN. There's always haters.
    

That's not ridiculing customers, and it's not disgusting or disrespectful,
it's just saying that there will always be people critical of your service
(not even necessarily customers), particularly when an online mob forms as in
this case, furnished with a one-sided story of how things went wrong.

Of course you may disagree with the tone, or the content, but disgusting is a
little strong isn't it? Can we dial down the hyperbole a little?

~~~
ryanwaggoner
No, he's basically brushing the OP and everyone in this thread off as being
hatful and bitter, and not really worth interacting with. It's incredibly
dismissive, especially since multiple people in this thread (myself included)
have mentioned that they've had issues and are or were _paying customers_.

I'll grant you that "ridiculing" is probably not the right word...maybe
dismissive or condescending would have been more accurate.

And yes, I do find it disgusting that he's publicly behaving this way towards
a customer.

~~~
grey-area
I'm not convinced a public forum is the best place for customer support -
witness Ben's _very_ reasonable statement above which is still accruing
negative responses, in spite of going well beyond the call of duty in
refunding money _paid to a completely different service_. It's quite hard to
interact with a crowd baying for blood - emotions run high, and people tend to
pick sides and pick holes in any argument. One response to that is to ignore
the crowd and try to deal with the particular customers - that's what I take
the tweets to mean.

It's fair to criticise those tweets and I don't feel they are appropriate
really, but I don't think they should be classified as disgusting - misguided
and inappropriate at this particular time, perhaps, but not disgusting. Isn't
it better to deal with situations like this without escalating emotions
further and degenerating into both sides insulting each other?

~~~
jessedhillon
_I'm not convinced a public forum is the best place for customer support ..._

I think a great heuristic here is this: your customers can be publicly
negative, but you cannot.

If you publicly flame a customer then, no matter how deserving the customer
was, some future potential customers will look at that and say "That could be
me." Most businesses, I think, can't afford to risk that.

There are some notable counterexamples, in my opinion they are the exceptions
which prove the rule, i.e. when the business _wants_ to fire the customer and
make an example of him/her for others.

The best example of this is the Drafthouse movie theater in Austin, who
created a great PSA wherein they ridicule a customer for insisting she had the
right to use her cell phone during a movie:
[http://adland.tv/content/drafthouse-movie-theatre-makes-
keep...](http://adland.tv/content/drafthouse-movie-theatre-makes-keep-
cellphone-psa-out-audience-member)

~~~
grey-area
_I think a great heuristic here is this: your customers can be publicly
negative, but you cannot._

I agree 100%, the tweets are not helpful, but I disagree with the "disgusting"
description and felt it was a little over the top.

~~~
ryanwaggoner
Sorry, it's just my personal opinion as a WPEngine customer, and I stand by
it. I don't want to see the CEO of a service that I pay money to publicly
behaving this way towards those customers and others who have had issues. It's
the opposite of good customer service, and a great example of biting the hand
that feeds you.

------
thenomad
Worth interjecting a counterpoint here, I think.

I've been running a site about the same size as the OP's (500k-ish visitors a
month) with WPEngine for nearly a year now, and so far I'm very impressed.
It's smoother and faster than it was before, we've only had one outage of more
than an hour (and they responded by crediting me with a full month's
hosting!), and I've found their support to be absolutely top-notch.

I wrote a review of their service after a month - which I don't think I ever
submitted to HN, d'oh - and all the points I make in it still stand:
[http://www.mmomeltingpot.com/2012/03/wpengine-review-
after-1...](http://www.mmomeltingpot.com/2012/03/wpengine-review-
after-1-month-and-250k-visitors-is-this-the-best-wordpress-hosting-money-can-
buy/) . My key point there, which I stand by, was that moving to WPEngine
saved me money over an apparently cheaper self-hosted solution, because I no
longer had to spend 2-3 days a month faffing around with server problems. (I
believe Patio11 had a similar experience.)

(Note - there's an affiliate link in there, because I find that with money I
can buy goods and services, but I added that after writing the review.)

Just recently I've had an extremely helpful dialog with one of their support
engineers which ended up troubleshooting a problem I didn't even know my blog
had - which subsequently boosted my available ad inventory by about 25%.

Overall, WPEngine aren't perfect - and I'm still checking out other options
from time to time - but I've found their support and general solid hosting
more than worth the admittedly pretty significant cost.

------
gozmike
My experience with WPEngine : Jason Cohen saved my ass.

We went live on a WebbyNode VPS, thought we had configured our system well and
suddenly we hit the top spot on HN. The server was on fire and Jason
personally showed up and worked on migrating our site over.

Your configuration may have posed problems, you may have had what seems like a
shitty support experience, but this public bashing doesn't help anyone in the
startup community and reads as if it's motivated by emotions rather than a
real problem-focussed attitude.

Give these guys a break and work with them one on one to find a solution to
your problems. I'm SURE they'll move mountains to make you happy because
that's in the team's DNA.

~~~
jacques_chester
I worked "one on one" with them for weeks.

 _Weeks_.

They did _not_ move mountains. It was a parade of apathy. As soon as they
could flick pass me to WebSiteMovers, they did.

Your positive experience is every bit an emotional one as my negative
experience was.

~~~
gozmike
I can totally understand your negative experience, I have email threads
between myself and WPEngine as well as between common customers and WPEngine
that prove quite the opposite.

It really sucks that you went through this. I'm just suggesting that you
refrain from the public flogging and find another solution. I'm not affiliated
with these guys other than as a client and I can tell you that I respect what
they bring to the market.

~~~
jc4p
>I'm just suggesting that you refrain from the public flogging and find
another solution.

If you've spent more than a day in any online community you should have
already learned that this, although it may not be preferable for the company
at fault, is the fastest way to get something fixed or something changed.

It'd be irresponsible for Jacques to stand by silently and suck up all the
time and money he wasted days after there was a great PR piece for WPEngine on
the front-page of this site because it would lead to others having his issue
which he could help prevent.

This is a community. It's not an advertisement source. People vote on things
they find interesting and discuss them, it's not a place to only post positive
things about up and coming companies and hide all sources of negative news.

~~~
gozmike
Fastest != Most appropriate

You're advocating revenge. I'd just like discussions to be discussions. Not
attacks.

The blog post read (to me at least) like an attack on a company with some
obvious growing pains.

There are ways to write a complaint that doesn't involve pointing out Cohen's
self congratulation. The way the post is ended wreaks of jealous hatred. That
is not the way you constructively criticize.

~~~
jc4p
Are we reading the same thing? I really don't think this post was an attack.
It was someone describing a disappointing experience with a service that was
supposed to make his side-projects easier to manage and having the exact
opposite happen. It's a post about disappointment with a service written on
his personal blog, I don't see any pitchfork calling or attacks or jealous
hatred. Are you projecting something here?

------
ry0ohki
I posted my own reason of why they sucked (and WP-Engine responded) the other
day [http://jamespanderson.tumblr.com/post/34114537491/why-i-
cant...](http://jamespanderson.tumblr.com/post/34114537491/why-i-cant-
recommend-wp-engine)

------
dugmartin
This is a bit of a meta comment but it must really suck to wake up on a random
morning and find a blog post like this about your service as the top story on
HN.

~~~
highace
Pissing off bloggers is probably the worst thing you can do, given that
they'll likely blog about it..!

~~~
dugmartin
I wonder if being proactive and adding a message board on your site where
people can vent would mitigate some of this.

Here is a great example from a radio personality I used to listen to:

<http://mb.clarkhoward.com/forumdisplay.php?7-Clark-Stinks>!

------
caleywoods
Posted by Patrick Mckenzie almost a year ago:

[http://www.kalzumeus.com/2012/02/09/why-i-dont-host-my-
own-b...](http://www.kalzumeus.com/2012/02/09/why-i-dont-host-my-own-blog-
anymore/)

I haven't tried it but it seems to be a good experience for some people.

~~~
jacques_chester
This is the exact blog post that planted the seed of my interest in WPEngine.

I read it again before I signed up with them and googled around for reviews.
Everyone was very positive.

------
sgdesign
I've been hosting a couple WordPress sites on PHPFog (<http://phpfog.com>) as
well as DreamHost. For some reason DreamHost is faster, but the PHPFog UI is
much nicer. Both have great support (DreamHosts' is 24/7 if I'm not mistaken)
and relatively cheap.

That being said, once you have the sort of requirements that the original
poster seems to have, I don't know if any of those companies would be
suitable…

~~~
jacques_chester
Dreamhost is, like every shared hosting provider, hit-and-miss.

I used to host Club Troppo there. When it got slow they basically shrugged and
said ... it's shared hosting, what did I expect for $8/month?

~~~
the_bear
I had the exact same experience, but I was paying for their VPS service. I
believe it was over $30/month, and it went down all the time with very little
traffic. Dreamhost is a tempting host for a new site because it's so easy to
set up, but I think you save time and headaches in the long run starting with
someone else.

------
heliodor
The typical customer support process is bad for the complicated edge cases,
which sometimes end up in threads like these. But it's good for business. You
don't want your engineers attending to one person's problem. That's called
consulting. You want them building product. Building perfect software is bad
from a business point of view. In WPEngine's case, the takeaway from all this
is to add a line to the customer requirements list on their website (useful
for filtering out the undesirable bottom 5% of customers) that says they will
not accept any of the few potential customers that use the native WP
commenting system because it's poorly built.

I'm not sure if it's true, but based on the poster's description of WPEngine's
customer support experience, it sounds like their customer service is the
typical poorly structured (from the customer's point of view) customer service
experience I've encountered and/or witnessed many times from companies both
large and small.

Some startups don't provide phone support. It's nice to see WPEngine does.
Sometimes you just have to talk with someone to beat it into their heads that
you have a complicated problem. They can't email email you back a link to some
topic-related doc page and move on. They're on the phone with you and they
have to make meaningful progress before hanging up.

In the case of email support, 95% of the tickets are answered with a link to a
doc page and that's the end of the case. The metrics are excellent and every
pats themselves on the back. 95%! And the volume was soooo high! Acknowledging
positives is necessary, but measuring failure requires different metrics and
95% success does not necessarily imply 5% failure because each one uses
different metrics. You think the the metrics on their dashboard will take into
account this thread, for example?

The system breaks down when the customer has a more serious problem. It takes
support a few emails back and forth to realize it. The case is handled by
random folks based on availability, further degrading the experience. The
person who'll pick up your latest reply to the thread isn't going to
thoroughly read the whole thread, and by this point you've interacted with
five support staff already. Finally, they realize it's outside their control
and pass it off to Engineering, where it languishes for a month. Creating a
system where the engineer is not allowed to reply directly to the customer but
instead has to reply to support who then replies to the customer only removes
the stress off the engineer, so they can care less and not solve the problem.
Meanwhile, the support staff learn to drop lines like "Sorry for the delay. We
appreciate your patience. The engineers are still looking into it." without
any second thoughts.

~~~
jacques_chester
I agree that complicated edge cases are hard.

My case was not an edge case. WPEngine explicitly mention that they support
Multisite, which has been part of the Wordpress mainline since 3.0. I haven't
modified it at all.

Otherwise, I agree with your post. Support _is_ hard.

------
destraynor
My least favourite part of this type of sharing is when all the competitors
come along to now try to pitch their wares. It's not clever, it's not classy,
it's just lame.

I don't doubt this was a shit experience, it certainly sounds incredibly
infuriating.

Jason & his team work super hard, and have thousands of happy customers, so
they're doing lots right. Even the greatest of companies can screw things up
now and then, especially in non-straight-forward situations. I'm sure he'll
put it right.

------
_neil
+1 for Page.ly. We had a slightly awkward setup (for a multisite blog) but
their support was excellent.

------
betageek
"After a few hours of copying files, I flip the DNS switches"

WAT! Just add the domain to your hosts file with the WPEngine IP and test the
site first, it's crazy to change your DNS without checking the site works
first.

~~~
STRML
Absolutely, why would you ever do this without testing?

~~~
jacques_chester
Yep. Mea culpa.

I've learnt this lesson well.

------
vampirechicken
I'm curious for a side-by-side comparison of your linode vs the wpengine host:
cpu, ram, etc.

If you can perform the comment sort in memory without hassle, what is is about
the size of RAM provisioned by wpengine that makes this impossible?

My opinion, but for for $3000 per year, you should have been provisioned with
as much ram as a linode VPS.

~~~
bigiain
I was curious about the too.

In case you missed it up-thread:

<https://news.ycombinator.com/item?id=4695810>

two 512mb linodes, one for nginx/php, one for mysql.

~~~
vampirechicken
Thanks for that!

------
ashray
From the article comments:

 _> It’s a quiet backwater. Collectively the sites would have maybe 20k unique
visitors a day. 50k is a big day hereabouts._

I'm not quite sure why this blog is such a huge problem to host. It appears
that the author has some customizations (plugins..) that are really slow. In
fact, I would suggest to the author to hire a good developer, fix those core
issues (say slow SQL queries, etc.). It might cost him a few thousand dollars
upfront, but he can continue running the site on $20-$60/month hosting.

Paying $250/month for that kind of traffic sounds over the top to me.

I know that Wordpress can be slow but it can also be quick. Why not route your
traffic through cloudfront ? Why not leverage full page caching for anonymous
users ? These are things worth looking at IMHO :)

~~~
jacques_chester
> It appears that the author has some customizations (plugins..) that are
> really slow.

The slowest piece of code on the network today is the Recent Comments Widget.
That's not a plugin, that's right there in the base install.

I worked this out myself, based on preliminary detective work by Page.ly. And
then Page.ly went the rest of the way to ask a Wordpress core contributor for
their opinion. The key issue is that this widget performs a query on the
wp_comments table which becomes slower and slower as the number of comments
rises. The only real fixes are either to move to Disqus (my bloggers said
"no") or partition the table (Page.ly politely said that this was outside the
scope of anything under their enterprise plans).

> Why not route your traffic through cloudfront ?

I do.

> Why not leverage full page caching for anonymous users ?

That too.

I also have memcached for the object cache, I use a tuned copy of PerconaDB
and nginx is configured to serve static files and supercache-generated whole
pages without ever touching PHP.

The blog post you read was served from a blog on that very blog network, on
Linode servers in Tokyo that I once again personally managing.

~~~
ashray
_> The key issue is that this widget performs a query on the wp_comments table
which becomes slower and slower as the number of comments rises.._

I dont' see why a selective read based on primary key indexes is taking so
long. How many rows are we talking about here ? I'm sure it's under a billion
rows - right ? Partitioning it may help but I think there's something
significantly wrong with the way the lookup is going through.

The recent comments widget is probably doing things the wrong way around. Is
it caching the returned values ? Does it matter if the recent comments widget
is based on data that is.. say 2 minutes old ?

I really don't agree with your performance bottlenecks. I run several sites
much larger (at-least 20x traffic per day) and granted that they do not all
run Wordpress, I know from experience that your system should not be grinding
to a halt with just 50k daily uniques.

Even imagining that the comments lookup is like "get all comments for post ID,
2966 --" - that can't possibly be slow enough to destroy your entire server
setup. Maybe you just need more RAM ?

Get a dedicated box and get someone to optimize it. If your entire database
can be in RAM (Get a box with 16GB of RAM ?), that should work well. That
won't cost you $250/month even.

EDIT: I see from another post: _As Sean, my head SysAdmin wrote on a ticket to
you, some of your pages were performing a sort on 188590 rows in memory each
time._

Was that the recent comments widget doing that ? Well, that can be fixed with
some clever caching or even a clever fetch technique!

Is that necessary for every load ? Do you have a particular blog post with
that many comments ? The right way to go about that would be to pick out
comments for a particular post and then sort them - query-wise. Again, your WP
install probably needs some (much needed) tuning.

I understand your desire to have someone else worry about your servers, but
someone also (apparently) has to worry about your code, and as I understand
right now - that person is you. Well, you could definitely make some code
level improvements and save on the 'server management' department.

~~~
MattRogish
I think it may be this "widget" (I don't know the WP ecosystem, but this seems
reasonable): [http://wordpress.org/extend/plugins/recent-comments-
widget-w...](http://wordpress.org/extend/plugins/recent-comments-widget-with-
comment-excerpts/)

I only see one query in there: $comments = $wpdb->get_results("SELECT
$wpdb->comments.* FROM $wpdb->comments JOIN $wpdb->posts ON $wpdb->posts.ID =
$wpdb->comments.comment_post_ID WHERE comment_approved = '1' AND post_status =
'publish' ORDER BY comment_date_gmt DESC LIMIT 150");

I'm not sure why they are fetching 150 (why would you use that many?) but this
query could be slow if you have many posts and many comments. Also, the goofy
thing is that they are wiping out the cache every time and regenerating it
instead of (say) incrementally adding to it.

I'd re-write it with an exists, which may help performance instead of a join
(I've seen MySQL be pretty dumb with joins when you basically want an exists):

SELECT whatever FROM comments WHERE EXISTS( SELECT * FROM posts WHERE ... )
AND comment_approved = 1 ORDER BY LIMIT xx

In this case, MySQL may be having a problem where it can't read a multi-column
index on post_id and comment_date_gmt DESC (I'm not sure if you can specify
ordering in MySQL indexes, been a while), thus it's basically doing an in-
memory sort of every approved comment (on a published post, which is likely
all of them) in the system, which in his case was about ~200K. This could
definitely take several seconds if there isn't enough memory to do it all at
once (lots of swapping).

Personally, I'd try and modify the logic to be more conducive to indexing - do
you really care if a comment was on a post that you made 10 years ago? MySQL
also (IIRC) doesn't have bitmap indexes, so that "comment_approved" thing may
or may not invalidate an index usage unless you add it to the index.

I'd probably do something like: the "n" (where n is < 150) most recent
comments to a post made within the last n number of days, so you can really
cut down on the number of rows you need to sort.

------
tedchs
As my two cents, although I am a Linux engineer, I don't want to manage a Web
cluster just for Wordpress, so I use WPEngine in production for about 10 sites
and it has worked very well and support has been sufficiently responsive.

Reading about this, I get concerned when people conflate "performance" and
"scalability". Performance is about time-based metrics such a requests-per-
second. Scalability is about the question of whether I can add more hardware
proportionately to my request load and continue to perform. WPEngine's
marketing claims are about scalability, not performance.

This guy's WPEngine code was apparently doing a 189k row sort when serving
certain requests, which is not going to perform well on any hosting platform,
including DIY.

------
saltcod
All of these sites have fairly standard themes. All could be hosted, worry-
free, at WordPress.com.

~~~
jacques_chester
My bloggers have several non-standard plugins and non-standard theme tweaks.

Edit: and oh yes, 2.5Gb of media.

The big kicker is that my migrations can only occur by SQL. Using WXR is fine
for any blog that can be turned from XML into PHP objects ... inside the
execution-time limit.

Otherwise Wordpress thinks it's just _hilarious_ to silently fail to import
anything that doesn't make the execution-time cutoff.

And I don't think I am a big enough fish for wordpress.com to bother to help
me do an SQL migration.

~~~
sgdesign
Any reason you're not hosting media on S3? That makes it a lot easier to move
hosts, too.

~~~
jacques_chester
Put simply: cost. Collectively it's a few hundred Gb per month of traffic
which is completely covered by my Linode plan.

These days I've put most of the sites behind Cloudflare, which has the effect
that a lot of my media is being mirrored in their Sydney DC, which is nice
because most of the readership is Australian -- the same reason I went to the
Tokyo centre this time.

~~~
andrewf
The Tokyo DC isn't a universal win for Australia. The results are actually
pretty bimodal depending on your ISP.

From Perth, iiNet routes directly to Asia, and it's a big win. But Amnet
routes AU -> US -> Asia and it's a big loss.

It's a big enough issue Australia-wide that Blizzard sells a dual-region
Starcraft 2 in Australia, because (ping to battle.net Singapore for some) >
(ping to battle.net US) > (ping to battle.net Singapore for others) to a
significant degree.

~~~
jacques_chester
Fascinating, I didn't know that.

So, being in Perth, I've picked the DC that serves me best. Hmm. I guess I
will ask my bloggers how noticeable it is.

I tossed up hosting in Australia, but the bandwidth is just so utterly
ruinous.

------
ssharp
There appears to be a huge gap (maybe sweet spot?) in WP hosting. The lower
end is well covered by companies like WP Engine, Page.ly, and ZippyKid. The
high end is covered by Wordpress.com.

Somewhere in the middle, and probably closer to the low end, exists a need for
less commoditized services to support more complex installations.

It doesn't appear like WP Engine is really positioned or resourced to actually
support these needs and this is not the first time I've heard of these
troubles.

~~~
jacques_chester
Actually, I would characterise WPEngine, Page.ly and ZippyKid as mid-tier. The
low end is served by thousands of shared hosts and resellers.

Look at the pricing: Wordpress VIP starts at $500; WPEngine is selling a $250
plan.

~~~
scottscanlon
I agree, but the gap exists for "fully" managed WP hosting for someone who
isn't quite there yet but needs more power, etc.

We recently chose not to go with WpEngine because of the confusing help
solutions we could see, a few reviews we saw. We ultimately went with ServInt
and have been really happy with the move and support.

And to your point the pricing didn't feel right, it didn't make sense compared
to similar options (or what we thought was similar)-- maybe I am off base
though, it just what we discussed at the time.

------
hippich
For what it worth - they are hiring. Probably to this exact reason - to bump
up quality of their service (although their recruiter was not responsive, I
guess I did not fit their requirements :))

------
m0th87
Anyone have experience with ZippyKid? How are they?

~~~
jacques_chester
FWIW, I spoke to ZippyKid. They (perhaps wisely) don't handle multisite
installations.

~~~
zippykid
Thanks for mentioning the email Jacque. And you're correct, currently we don't
handle multi site installs due to some issues with MU and our clusters.

------
nakodari
I am using <http://presslabs.com/> to host two of my blogs, one of them is a
tech blog that gets a high amount of traffic every day and there has been no
migration or downtime problems so far. I couldn't be happier.

------
jaequery
what an eye opener

------
Uchikoma
Uh uh.

------
wyck
Why did this get so much traction on hackernews?

This was posted on Reddit and killed with one comment the tl;dr of it : The
client was incompetent and irresponsible and likes to blame people when things
go wrong.

------
jasonkester
The important lesson to be learned here is that even though higher price
points tend to shield you from the bulk of toxic customers, you'll still find
the occasional toxic customer at even the highest price point from time to
time.

As nice a guy as this blogger probably is, he's the bane of services like
WPEngine. There is no way to service the needs of his complex edge case of a
system for anything like $250/month. They are guaranteed to lose money on him,
and the only hope they have is to convince him to leave the service as rapidly
as possible to avoid being sucked into the time sink that dealing with him is
going to become.

This is the reason you have a "refund" button on the customer page of your
admin console. A quick email apologizing for not being able to meet the needs
of his unique setup and a refund of his payment, as soon as it became apparent
just how impossible things were about to become would have solved this
completely.

Or at least one hopes so. The tough thing about dealing with toxic customers
is that they grow on you slowly and you don't notice at first. Then one day
you realize you've spent four hours just digging into issues and writing
emails to this one person who you're probably going to have refund eventually
anyway.

I've never met the guys on the WPEngine team. But I feel for them after
reading this.

~~~
dangrossman
Jason, what's up with this comment?

Where did you find this 'complex edge case of a system' in his post? This
'unique setup'?

Why do you think 'impossible things were about to become' when he was able to
easily move the sites to WP Engine... after paying a 3rd party to do it?

He didn't describe a single special requirement that I can see. Just plain old
WordPress with some existing data to move. Not even a large network or a large
amount of traffic. This is supposed to be WP Engine's bread-and-butter
customer.

All of WP Engine's plans other than "Personal" say "Hey WordPress MultiSite
customer, come here! This plan is for you! Hundreds of thousands of visits a
month and 20GB+ of storage!" <http://wpengine.com/pricing/>

Why are you calling him a 'toxic customer'? He's been running this WordPress
install himself on an unmanaged VPS. He wasn't wasting their support staff's
time on unnecessary questions -- they were wasting his! That's not a 'toxic
customer', that's a 'toxic business'.

I'm having a hard time connecting this comment to the HN submission at all.

~~~
kordless
He also didn't describe much of any of his technical requirements. I'd say
it's a fair assumption his setup was enough different to cause an issue.
Whether or not that's a fireable offense is up to the company.

~~~
techtalsky
He did, however describe the eventual problem: his comments table was larger
than what Wordpress's out-of-the-box feature (Recent Comments) was able to
sort. He had very overpowered hardware in his custom situation. It strikes me
that this was an extroardinary but still within band problem that WPEngine
should have eaten the cost for solving OR tell him MUCH more swiftly they
couldn't.

~~~
jacques_chester
The eventual problem was just the straw that broke the camel's back.

The weeks of shitty service _beforehand_ are what really did it.

