The TRUTH about Magento 2 performance


Magento 2- Performance Expectations

With the first news about Magneto 2 platform, there was a lot of hope because the new version of the platform is using a stack of modern technologies which are better optimized for high-loaded systems. Indeed, now service-contracts can be used as web APIs in forms of SOAP & REST API. The platform also uses LESS compilation and is compatible with HHVM 3.6+ (open source virtual machine, based on the principle of just-in-time compilation). Moreover, now the platform comes with full Varnish support and even a built-in Full Page Cache module. In other words, the developers of the platform tried to do everything that had to do with the first version of the platform for a long time, because, as we remember, the low performance of Magento 1 platform was one of the main limitations that prevented the platform from achieving even greater success.

However, the Magento 2 platform has not become much faster. Moreover, on low-performance servers, M2 works even slower than M1.

Magento 2 – frustration 

A lot of bugs in the published versions of Magento 2, slowness in fixing bugs, slow growth of Magento 2 popularity, horrible in terms of UX and business processes Magento Marketplace, and some general frustration from the platform even led to the fact that Magento ceased to be the most popular e-commerce platform. Back in 2016, it became clear that Magento is now only the third platform on the market, which was overtaken by Woocommerce and Shopify.

However, the Magento 2 platform has an undeniable advantage over Woocommerce and Shopify and it’s open source and extensibility; after all, Magento 2 can really be really fast on high-performance servers (for example, Amazon, etc.). The keyword here “can”, because to achieve this result, you need to use the techniques to optimize the performance of the Magento 2 platform.

The techniques to optimize the performance of the Magento 2 platform

The Internet is flooded with copycat articles which say that it’s enough to enable Varnish, optimize Javascript and CSS, and the platform will become faster than The Flash a hero. In reality, everything is not that simple.

First, we need a really fast server hardware. Magento 2 documentation does not say (for some reason) anything about CPU, but according to our observations, Magento 2 requires at least 4 or even 8 processor cores, so that heavy processes such as cron and mysql do not become a problem. Also Magento for some reason does not say anything about SSD, although today it is not just a recommended type of hard drive, it has long become a standard, without which it is simply impossible to achieve high performance.

Secondly, the use of native optimizer of Javascript and CSS at best works inefficiently, and in the worst case is useless. The thing is that in Magento 2 platform require.js is used, which loads more than hundreds of other JS files which the native script optimizer does not merge into a single file. As a result, the platform will continue to perform more than a hundred requests to the server for downloading JS and CSS files. As for the option “Enable Javascript Bundling” option, it is also harmful, because it combines all the module scripts into one file, regardless of whether they are used on the page or not; and this leads to an increase in the page size. Also M2 cannot do defer parsing of javascript.

The solution is the Performance Optimization Tool from PotatoCommerce. This extension is designed to solve all of the above problems. Besides, it has feature to minify Javascript, CSS and HTML.

Third, you need to optimize images because images are about half of the total page size. What is image optimization? Image Optimization is the process of changing an image file in such a way that the file still looks good, but the size of its file can be reduced, sometimes even several times. Image optimization is quite a laborious and time-consuming process, so nobody manually optimizes images for large stores. We recommend using a proven and reliable Image Optimizer tool.

Fourthly, the Magento 2 theme itself is also often a problematic area, which is badly developed: a lot of built-in modules which are using slow algorithms, ignoring the basic concepts of fast code, external resources (scripts and other files) that can’t be optimized; unnecessary and obsolete libraries, etc.. When choosing a Magento 2 theme, we recommend paying attention to how quickly they work in comparison with the default Magento theme.

Fifthly, it is necessary to use Redis, which significantly accelerates the work of the platform with the cache.

Final words

We hope that this guide will help many merchants to improve the performance of their Magento 2 stores. If you have any questions, please contact PotatoCommerce, who knows everything about Magento and Magento 2 performance improvement.