EDITOR’S NOTE 03/10/15: The WP Engine Labs team has cancelled the Detailed Caching project in order to concentrate more heavily on existing projects. Thank you for your interest in WP Engine Labs. Keep an eye out for other exciting things to come!
Here at Labs we are always working to build state-of-the-art projects for WP Engine customers. Today we would like to announce the opening of alpha for WP Engine’s Detailed Caching.
Imagine being able to decide whether or not a page is cacheable based on almost any criteria—geography, time, pages, cookies, the content of cookies, etc. This gives you fine-grained control over Page Caching, thus maximizing the number of pages that can be cached.
Also, you can define any number of “cache buckets,” which are types of requests that can be cached together. This might mean one bucket for each web browser device for which you have a different web layout, or one bucket for each geography for which you have specialized content, and so on.
Existing Page Caching systems aren’t smart enough to handle all these cases properly. As a result, site owners are forced to simply disable Page Caching for some or all of their site, thus losing all the benefit of speed and scale. This is the “curse” of Page Caching.
For those not familiar, an effective page caching strategy is critical to scaling any WordPress site. “Page Caching” means keeping a copy of a page after the server renders it, and delivering that copy to the next visitors who request that same page. Whereas rendering the page could take between 1/2s and 4s, delivering the cached copy can be done 10-100 times faster—in 30-70 milliseconds—and our servers can do that thousands of times per second.
That’s the “blessing” part of Page Caching. But here’s the problem: Not all visitors ought to see the same page.
For example, you might have one version of your home page for people using laptops, but a different version for tablets and yet another version for smart phones. Or, you might have one version for folks coming from the UK, but another for folks in the USA. Or maybe you’ll have something much more complex, like putting city-specific information on your home page for the twelve cities in which your business has a local presence, and another version for all other visitors, and also a special version for people using the new iPhone 6+.
Alternatively, you could have an eCommerce site or a community site, where content needs to be cached differently based not only on the existence or absence of a cookie, but also the value of that cookie. For example, an eCommerce shopping cart is usually empty, and you can display the same page to anyone with an empty cart, even though all those visitors in fact have unique carts. It’s only when the cart is filled with something that the page renders uniquely.
We at WP Engine are happy to announce the solution to this issue—a smart Page Caching system that can easily handle all of the cases above.
To begin, Detailed Caching will only be available to WP Engine customers who are accepted into the Labs program.
For consideration, please contact the Labs team via the signup form.
Tomas Puig is the head of Labs for WP Engine. His career started at NASA Ames Research Center where he worked on computer security and web development. Tomas then worked in the digital ad agency industry with firms LEVEL, COG1, Rosetta, and Propane—notable clients included Facebook, New Relic, Kaiser, Cisco, and Google. Projects under his direction have won 4 Gold National ADDYs and several Cannes CLIOs. Tomas loves video games, Legos, and playing with his dog Éowyn.
Lorenzo says
This definitely looks helpful for various ecommerce plugins. Just completed the form!
—
Lorenzo
Mark Skeet says
Awesome work guys – we’ve been waiting for this level of granularity over caching. I know a number of our installs and upcoming projects will benefit hugely from this.
Christian Virtsetti says
Thanks for your interesting and useful review. It helped me a lot.
Brian says
wow! you guys is always setting the bar. best decision ever was to use you guys 🙂
Nabha says
This sounds like a great feature. It’s nice to read about the Labs projects.
For consideration: It would be nice to be able to turn off caching on a page during a particular time period. We have live broadcast content at certain times on our homepage, and page caching has been making that appear in unpredictable ways.
Thanks!