One of the most asked questions that we receive daily is: why is Magento so slow, and how can I make it faster? Magento is the worlds most advanced shopping cart CMS with almost unlimited functionality which is one of the reasons thousands of store owners use Magento. However, these functionality’s come with a big price: site speed. Often times Magento stores are loading very slow, moving through the backend is a tedious experience and you are losing business because visitors are exiting your website because it’s simply too slow. There are several reasons that make Magento a very slow system.
The immensely huge database of Magento uses the EAV database system implemented on top of MySQL. When you query a simple “thing”, more often than not you are actually querying multiple things. This is of course very resource intensive and therefore more time consuming.
Optimized Magento Server
A huge part of a websites loading time is attributed to the hosting the site is on. If you really want to improve your loading speed by a noticable time you should definitely get a optimized magento hosting package. These servers are not your average servers that are able to host any CMS you want. They are specifically designed and optimized to only host this online shopping cart platform thats built on the ZEND framework. It has specific caching methods enabled that you normally wouldn’t find on a server. This is probably the most important tip on this page, so you should seriously put some tought into this.
Big XML Files
Magento has loads of things going on behind the scenes (application configuration, system config, layout config, etc.) that build gigantic XML trees in memory and use these same files to get information. This takes a lot of memory to store these XML files, but it also takes a significant CPU usage to parse these files. Some XML trees like the layout.xml file you’ll find in every major extension are huge. If your store is loaded up with big extensions and templates you’ll notice a big decrease in site speed. Its even worse if caching is not on: the XML trees are built up from files on disk and on each request.
One of the great things about Magento is it’s use of the Zend framework which allows you to easily override classes and core code without editing the core itself. However, anytime a model, helper, or controller is instantiated, extra PHP instructions need to run to determine if an original class file or an override class files is needed. This adds up and can take a significant amount of server resources.
Magento’s template system involves a lot of recursive rendering. This takes time which in the end also takes server resources.
Now that we know what the main reasons are that make Magento a big slow system, we can tackle these points to make your Magento shop blazing fast. Below are a few steps you can take to significantly improve your Magento site speed. Not only will this increase the usability of your website, it’ll also increase your rankings in Google as they use site speed as a ranking factor.
Make sure your store has cached turned on and uses memcached instead of on disk as the caching method. Memcached performs a lot better and loads much faster. It’s very easy to change the setting from on disk to memcached and any Magento certified developer can do it for you. Alternatively you can look for advanced caching systems like Full Page Cache for Magento.
Catalog Flat Data
Magento has a built in option to store product and category data in EAV flat tables for faster loading. Enabling this option increases your loading speed as Magento doesn’t have to run multiple query’s anytime you view a product or category. You can enable this setting in the admin backend by going to System -> Config -> Catalog -> Frontend. Find the options “Use Flat Catalog Category” and “Use Flat Catalog Product” and set them to yes. Reindex your store and the flat tables should get filled.
Remove unnecessary extensions and themes
If you have multiple extensions in your Magento store its best to evaluate them all to see which ones are really necessary for your store to function properly and which ones are just taking up resources. We recommend that you should at least do a big clean up of your store once a year. During this cleanup you can remove plugins and themes that are not necessary anymore. You can also clear the cache, reindex data, delete logs and clear the sessions.
We hope that we have helped you to make your Magento shop a bit faster with these tips. If you have some tips of your own you want to share with the community, please leave a comment below and we’ll include it in the article.