5 ms·
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 n
by alexandros 14y ago
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.
- jacques_chester 14y ago> Their solution? Buy another production site to test on. ... wow.
- pwenzel 14y agoI've had the opposite experience of WP Engine, and appreciate leaving caching and performance issues to somebody else, given that my company has a somewhat limited staff for supporting servers and CMS upgrades. I am building a semi-complex Multisite installation with multiple domains. So far, it's been pretty decent. Your frustration with their caching "secret sauce" is understandable. However, you can get a rough idea of their caching back-end by poking around in the WP Engine config files and plugins bundled with your installation. They also provide a nice little overview here: http://wpengine.com/our-infrastructure/ http://wpengine.com/our-infrastructure/. If you are staging out anything more complex than a single blog, you will definitely want to have two production instances to test on. For some, this is a raw deal. I personally don't mind. I am also not a huge fan of their CDN feature, which works by rewriting URLs in your page source to point files and assets to NetDNA servers. However, I am hopeful that they will improve upon it. That said, I have enjoyed a platform that keeps my Wordpress installations secure with automatic upgrades. Comparing WPEngine to other hosting providers like Linode or Dreamhost is really unfair. They offer completely different services, and specialize in Wordpress-optimized hosting only. I also have to say that it was really nice to not be part of Amazon/Heroku's outage this week. WP Engine has a control panel hosted on Heroku, but all their sites live in the Linode network, evading downtime.
- jacques_chester 14y agoThen compare it to Page.ly. Same basic proposition: fully managed Wordpress. They cost less. And their service roflstomps WPEngine's.
- armandososa 14y ago…and they never accepted my credit card. Just because you have a bad experience it doesn't mean that it sucks. My experience with WPEngine has been fantastic.
- jacques_chester 14y agoI suspect that for 99% of customers, WPEngine is fine. Excellent, even. Certainly better than barrel-bottom shared hosting outfits. But I wasn't asking for anything exotic. A multisite network, not very large, not much traffic. It says, right there on their site, that they support multisite networks. So I guess I ... well ... expected that they would be able to support a multisite network.
- georgemcbay 14y agoBasically all services have a group of satisfied users and a group of unsatisfied users. What blows a story like this up (as much as hitting the front-page of HN is 'blowing up') isn't that a service failed to meet the needs of one blogger, but rather that the people running the service respond to criticism (in public) sounding more like petulant children than professionals. As someone not into blogging, I'm not that familiar with WPEngine, but based on comments here that link to various twitter comments now I suddenly have a negative-leaning opinion of them. Primarily because they couldn't take a negative review without calling the poster a "hater". (FWIW, a lot of my negative opinion is tied up in this stupid word, which IME comes out as a last resort when the person using it knows there's a lot of truth to what the other person is saying but they refuse to acknowledge it for whatever emotional reasons).
- itsmicks 14y agoI had the opposite experience as well -- I tried Page.ly first but could not import any of my sites (which all use a variety of custom post types). Their import process seemed more attuned to vanilla installs. Closing out my billing with them was also somewhat arduous. WPE has been great so far -- very responsive support -- and their caching handles about 8 million pageviews a month with 600-800 simultaneous visitors and very little downtime.
- millennia 14y agoTo be fair, any WP hosting company is going to run into issues with non-standard installs, and they're not going to be able to accommodate any setup. If you have a customised WP install, it might not work on this sort of provider, they're optimising for speed, not dealing with, and they probably don't want the headache of trying to support any plugins or modifications that you might bring to WP. It would make sense for them to offer a dev plan with every production plan though, and let you upload your site, and serve it to a limited no of people as a testing ground. Given their 'Power Tools for Power Users' stuff on their website, they really should consider at least offering staging servers for testing. I guess at present they're just not a good setup for developers trying to modify WP, and are instead trying to capture the market for hardened WP hosting for mostly vanilla installs.
- jacques_chester 14y agoMultisite has been part of the base Wordpress install since 3.0.
- hluska 14y agoJust curious, why do some pages sort 189k db rows?
- STRML 14y agoThat could very likely be the "Recent Comments" feature, which is incredibly inefficient.
- jacques_chester 14y agoThis is basically what I found with some preliminary detective work from Page.ly.
- hluska 14y agoWow!
- dotBen 14y agoSo 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 14y agoThe 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.
- haldean 14y agoThis is not true for App Engine. You can create a "staging" version of your app and access it at staging.my-app.appspot.com. It all runs on the same infrastructure that your main version runs on, and it's easy enough to make it admin-only. Once your satisfied that it's safe to deploy, it's two clicks to change which version is serving. You may be the only managed Wordpress platform to do so, but App Engine has had this functionality for a long time.
- ohashi 14y agoI was helping a friend debug something on WPEngine. We learned that the caching doesn't allow you to set cookies it would seem (from PHP). Had to do it all using JS instead. I thought I was going crazy trying to debug the code when it was definitely an issue with the way they cache. Not saying it was right or wrong, it just wasn't a fun experience thinking I was going crazy. And hopefully if anyone else is trying SETCOOKIE() and it's not working they also realize they will have to use JS.
- STRML 14y agoThat was my issue, and yes, it absolutely is one of the many reasons why staging instances should have a caching on/off switch that mirrors production. It is absolutely 100% feasible that WPEngine's caching will break your site, and you need to know this before you push to production. Don't get me wrong, as a contractor to a company that uses WPEngine, we have had a great experience with it - but e.g. in the case of setcookie() being completely useless for unauthenticated users, some documentation / warnings / big red flags would be nice. In my case I was trying to build a simple site selector for unauthed users that would forward them to their selected site every time they hit the main domain. Nothing exotic by a long shot.
- driverdan 14y agoIt sounds like you and ohashi don't understand how caching works. WP caching serves up static copies of your pages, bypassing the code and DB calls that would normally be required. Since your code is bypassed cookies won't be set. This isn't something specific to WPEngine, this is how all the good WP caching plugins work.
- WillyF 14y agoI had an issue where an API call was failing for Googlebot and other crawlers. I was worried about this being seen as "cloaking," so I was trying to figure out what was causing. Couldn't be my code. The API provider said it wasn't them. I finally realized that it was WPEngine when I visited my staging server as Googlebot. The content that was supposed to show up showed up! Part of their caching setup was causing the API request to fail for a select list of bots. The issue was escalated to a Sys Admin who figured out what the problem was. He tweaked my server and fixed the issue for me within a day. I think that is pretty good. My point... if something is broken and you think it might be WPEngine's caching. Try it on your staging server.