Page loading time is one of those factors that greatly impacts user satisfaction and, therefore, the success or loss of conversions, especially in eCommerce.
Users are not the only ones favouring fast websites though, as search engines usually rank them higher than their slower counterparts.
High traffic businesses with large catalogs will reduce the number of servers considerably.
Evozon’s Full Page Cache was designed from the ground up for high performance, stability, scalability and extensibility.
USERS |
||||||
---|---|---|---|---|---|---|
700 |
900 |
1000 |
1100 |
1200 |
||
Home Page View |
16 | 19 | 21 | 21 | 22 | |
Category View |
19 | 22 | 25 | 24 | 26 | |
Simple Product 1 View |
19 | 21 | 22 | 20 | 22 | |
Simple Product 2 View |
19 | 20 | 23 | 22 | 23 | |
Configurable Product 1 View |
19 | 22 | 24 | 23 | 24 |
USERS |
||||||
---|---|---|---|---|---|---|
700 |
900 |
1000 |
1100 |
1200 |
||
Simple Product 1 Add To Cart |
1441 | 9010 | 13495 | 17541 | 20790 | |
Simple Product 2 Add To Cart |
1502 | 8752 | 13356 | 16858 | 20224 | |
Configurable Product 1 Add To Cart |
1663 | 8882 | 13607 | 17083 | 19773 |
Tests do not compare against Magento without cache or Magento EE with FPC because they failed faster than expected.
All test results are expressed in terms of 90% Line (90th Percentile), the value below which 90% of the samples fall.
Many Magento benchmarks test against a maximum of 50 simultaneous users. Our test suits had a ramp-up of 100 seconds and ran up to 1200 users with no prior cache warm-up.
Nginx + PHP-FPM
MySQL
Redis
Most other Full Page Cache extensions on the market, including Magento EE, still use PHP to serve cached content. We consider this to be the worst approach because it’s the wrong place and technology, it’s still slow and consuming a lot of resources. Varnish solutions take a better approach, but it’s lacking some important features like SSL support, needs an additional web server and invalidation is too complex.
Our solution is based on Nginx and Lua, using Redis or Memcached for storing cached content. This makes every node scalable and extensible. All of these technologies are mature, industry proven and extremely fast. In this case, Nginx can replace the full technology stack in front of PHP (web server, reverse proxy, SSL terminator, load balancer, cache server, etc.) but can also be hooked just in front of your existing web server.
Once cached, the content doesn’t even require PHP anymore to fetch and render the page.
The extension will cache the most important pages (category, product, cms) of your Magento web store out of the box. You can easily add or exclude page types according to your business needs, be it your own or from 3rd party extensions.
Hole punching is an important feature of any Full Page Cache solution. This allows “injections” of small blocks of dynamic content into already cached pages. All required default Magento blocks are already configured, but adding or removing any other blocks to meet your needs is easy. As a bonus, hole punched blocks are cached too.
Depending on specific customer or system actions, cached content needs to be cleared/flushed. The extension will automatically clear from cache only relevant content and take user sessions and indexing in consideration. Rules can be added or removed according to your desired flows.
There are times when a business needs to prepare for high traffic spikes with pages already loaded in the cache. There is a built-in feature that can be customized to crawl and load the cache when site traffic is low and be fully prepared when it’s high.
All standard Magento features are supported by default. This includes multi-store, multi-currency, multi-language and multi-customer groups. No matter if it’s Magento CE or EE.
One of the core requirements for the extension is to keep it easy for customization according to any business needs. Most changes are just a few lines of configuration or code away.
Make sure the extension is installed correctly according to the manual. Check Nginx and PHP error log as well as Magento's exception log.
Event observers cover most use cases for cache invalidation.
Adding new page types to cache, or holepunches with custom blocks is super easy. Just a matter of configuration. For more advanced business flows, you can even write your own rules and customizations.
We do not support and do not recommend it because both solutions would be slow. If you really want to, you can easily write your own cache backend adapter. Similarly, you could do it for something like Tarantool.
We recommend using only Nginx and PHP-FPM. However, our FPC solution works using Nginx as cache server and reverse proxy in front of your existing web server (just like Varnish would).
Most Full Page Cache extensions, including Magento EE, use PHP even for serving cached content. While this works for smaller websites, when traffic grows even simple page views will drastically increase server load up to the point where PHP can not handle any more requests.
A better approach is to use Varnish, the problem is only that it's lacking some important features like SSL/TLS. It's also painful to configure and extend.
Our solution was designed to cache aggressively but smart, support all Magento features and still be easy to configure and extend. Cached pages will be served directly from cache without using PHP.