13 August 2015

Why should you buy Evolved Caching?

If you are on the search for a full page caching solution for your Magento store you should you will probably have seen there are a wide range of solutions with more on the way seemingly all the time.  With Evolved Caching being at the higher end of the price range why should you pick it over other solutions?

Evolved Caching offers not only the best performance in the market place, but it's also a significantly more advanced solution than competing products.  In performance terms Evolved Caching is comparable to Varnish so you are likely to achieve the same time to first byte (TTFB).  If you want to use Varnish, then you can integrate directly and have both Varnish and Evolved Caching serve your cached pages.  Evolved Caching will also allow Varnish to cache many more pages than other Varnish only extension solutions - PageCache powered by Varnish for instance stops serving cached content altogether as soon as you add a product into the cart.

Evolved Caching is able to achieve the same TTFB as Varnish because of the way in which it serves cached content compared to other solutions. Most pull the cached content, then populate the cached page with dynamic data (i.e. mini cart, header links) before delivering anything to the browser.  Doing this however means you have to enter the Magento framework to generate the cached content and this is always going to be slow as every time you do this you need to run many thousands of lines of code and execute a large number of database requests.  This has a direct impact of how long it takes the server to deliver content to the browser and therefore your TTFB.

Evolved Caching is different because it delivers the cached content to the browser immediately giving an excellent TTFB and then populates the page with dynamic content after it has been delivered to the browser. It can populate the page with dynamic content in 2 ways, either via an AJAX request, or via BigPipe. It was the first solution to use AJAX, and the only solution to offer BigPipe as an option.

Whichever method you pick you are going to have the cached page content delivered to the browser quicker and therefore achieve a better TTFB.  To give you an idea of how much quicker, looking at some of the demo's for other solutions you might see the server taking something like around 30% of the time to generate HTML for each page (say 600ms without caching, 200ms with).  If you have a look at our benchmarks you will see you are looking at less than 0.5% of the time to generate HTML for each page.

So performance and TTFB is one reason to buy Evolved Caching over other solutions, but the benefits cover much more than just performance.  Evolved Caching has a totally different approach to keeping the cache up to date. Many other solutions rely on a cache purge and crawl cycle to refresh the cache - so this means that the entire cache is cleared and rebuilt on probably a daily, or more regular interval.  When making updates to your sites content you may not see those changes reflected until this cache purge and crawl cycle has been completed.  Evolved Caching is totally different in it's approach as the aim right from the start has been to make it a very much a hands off solution that just works while keeping your cache always primed and up to date. So just the relevant cached pages are rebuilt for instance when saving a product, category or CMS page. It also caters for caching scenarios that other solutions don't like rebuilding the cache for time limited design changes which are store wide, or just apply to a product, category or CMS page. The same is true for other time limited features such as product special prices.

Basically once a cached page has been created, there should never be a reason to have to delete it, and it should always be kept up to date automatically. Having said that, should you find for whatever reason you do need to clear your full page cache Evolved Caching does include functionality to crawl your site to create a good basic cache as a starting point (product, category and CMS pages are created). It also allows you to regenerate your entire cache should you, for instance, want to make a site wide design change that affects every page, i.e. in the header or footer.

Another reason to favour Evolved Caching over other solutions is the options it gives you in how you want to store your cached content.  You can store to files, APC, Memcached or Redis with memory based cache storage being faster on average than files.  Although some solutions offer different caching backends, many don't and only cache to files.

Evolved Caching was also developed to make it easy to configure for your install.  Other solutions require some development knowledge to holepunch any but standard blocks from caching - so you need to create an XML configuration file defining extra blocks to exclude.  Evolved Caching instead provides a frontend URL helper argument, ?shownames.  Append this to any frontend URL and the block names will be displayed, just add any of these names into the extension config in admin and that's it - no development knowledge required. You can equally add in pages by URL to be excluded from caching from admin, i.e. cart, checkout, customer login area etc.

These things are really just touching the surface of what the extension can do compared to competing, you can read a lot more in our documentation.

6 August 2015

When to use Magento full page caching

Caching, and particularly full page caching in Magento is a hotly debated topic.  If you have a developer working on your store or you are a developer, you probably know the phrase "have you cleared the cache" very well.  You probably also know the famous phrase
"There are only two hard things in Computer Science: cache invalidation and naming things."
Put together the pieces and you can quickly ascertain that caching is a tricky area to deal with and something that should be carefully considered, and properly implemented for your Magento store.

So with this being such a difficult area to address, should you even bother implementing any kind of full page caching solution for your store?  Well the short answer is yes, simply because by caching pages you reduce the work the server has to do with the end result being web pages get served to your customers faster.  So even though the hardware your site is running on has not changed, you still 'boost performance' by using caching - and I put that inside quotes because actually the server is not working any faster, there is just less work it needs to do to serve a page.

The long answer is yes, but...  To implement caching properly you need to first and foremost have a good foundation for your store.  This means that your hosting must be sufficiently powerful to run your store well with no caching enabled.  This is a key point that many people miss when thinking about a full page caching solution for their store.  Full page caching is not a quick fix for poor store performance, it's a tool that should be implemented on a store that is already performing well, in order to take that performance to the next level.

When thinking about which of the wide range of full page caching solutions you want to implement, you should consider that Magento is a complex framework, and that caching Magento's pages effectively is not a straight forward task.  You should carefully consider and research the available solutions.  Firstly go for a solution that is mature in terms of development - so it's not a recently launched product (believe me there will be bugs!), and has a good number of releases over it's development cycle.  At the time of writing this, our own solution Evolved Caching has been in constant development since February 2013 with 58 releases, so it's a mature and highly capable product which can be used on any store, however much it has been developed.

Also review the capabilities of the full page caching solution you are considering.  Although there are a lot of options out there, remember that Magento is highly complex software which presents a very wide range of possible caching scenarios.  Unfortunately you will probably find that many of the solutions don't cater for many of these scenarios, for instance, does the cache get updated when a time limited design on the store, category or product page starts or ends? (yes Evolved Caching does!)

You should also definitely contact the extension developers for the solution you are interested in to ask them any questions you may have.  From the responses you get back, you can often get a good impression of the quality of the extension they produce.  If they can explain technical details in a clear, informative way that a non developer can easily understand, then they probably have a pretty good idea of what they are doing and therefore a good product.  Remember this quote?


Well that applies here too.  If the developers can't explain what the extension does in simple terms then they probably don't have a great understanding of the concepts themselves, in turn the product is unlikely to be as good as it should be so steer clear.

Finally, get a trial!  As a company we truly believe that if you are asking people to part with a reasonable amount of money to get hold of your code, you should give them the opportunity to trial the software first - so that's exactly what we do.  If a company refuses to allow you to trial their software before purchasing it then you might want to think about the confidence that means they might have in their product.

If you have any questions about anything here, or want to get in touch with us about Evolved Caching, you can easily contact us from our store where you can also find complete documentation about our own full page caching solution, Evolved Caching.