Enhancing Magento Performance

Magento is fast becoming an industry leader in open source ecommerce. Its native ability to administer multiple stores from a common backend and powerful built in features makes it a popular choice for medium and large scale businesses. However, the gain in power comes at a substantial price: performance.

Magento’s complexity requires a great deal of resources to perform its numerous operations. For most default installations, this leads to a very slow website, which can both frustrate users (leading to decreased sales) and have negative SEO impacts. Thankfully there are a wide variety of methods to enhance Magento performance to create a better user experience. The web is full of articles about Magento performance, but we will share a few specific tips that have worked well for us.

Optimize The Server.

Hosting with a company that optimizes their servers for Magento and is experienced with setting up multisite configurations is a fundamental must-have for a top-notch Magento site. You can throw every trick in the book at your site, but if the server cannot handle the Magento load, your site will be like a car with gold-plated rims and clogged fuel injectors. It is always tempting to go with the $3/month budget hosting company, but, as in all aspects of life, you get what you pay for. Magento has several recommended vendors, but be sure that the host offers an account management solution (such as cPanel), which will make site administration much easier.

Use a CDN

A Content Delivery Network (aka Cloud Storage, or CDN) will greatly increase page load times. It is the single fastest way to increase site speed without aside from changing the server settings. Setting up a CDN on Magento is actually quite straightforward:

  • Sign up with a CDN service, such as StackPath CDN, Cloudflare, or a variety of others. Make sure that you sign up for a plan that offers SSL as well. Set up your account to pull from your site’s IP address.
  • You will now have 2 CDN domains, one without SSL and one without. This can likely be something like cdn.yoursite.com or cdn_provider-yoursite.com. In the magento admin, go to System->Configuration->General->Web->Unsecure and replace {{unsecure_base_url}}skin/ with http://your_cdn_domain.com/skin/. Do this for all Media and JS as well. Do the same for Secure section, replacing {{secure_base_url}}skin/ with https://your_secure_cdn_domain.com/skin/ etc.
  • Once this setting is activated, you should then see the images on your site being served from the CDN domain, and they will load much faster. This is quantitatively seen when using a web site speed service such as Pingdom.
  • A drawback to CDN is that the CDN cache must be cleared after making CSS changes in order for those changes to be immediately visible. Follow the instructions for your CDN provider to flush the CDN cache.

Enable System Caching

This will cache the Layout and Template files, which will decrease load times. This is also very simple to set up: System->Cache Management. Select All the boxes then choose Enable from Actions and hit Submit. One thing to keep in mind is that an active cache can cause issues when installing new extensions, moving servers/domains, or making any other structural changes to the site. It is best to disable the cache and purge it before making those system-wide changes.

Merge CSS and JS Files

This is another very simple step that can help realize performance gains. Setting this up will allow for single optimized CSS and JS files to be served as opposed to multiple smaller files, reducing load times. To active this feature, go to System->Configuration->Developer and you will see settings the bottom to merge CSS and JS files. One word of caution: before you change these to Yes, change the Current Configuration Scope from Default to one of the Websites. We have seen merged JS files cause significant issues in the Magento admin, and using the Default setting also affects the admin. In addition, if you have a customized template be sure to include CSS and JS files using the Layout files as explained here or else the included files will not be compiled into the merged file.

Disable Unused Extensions

It is common when setting up a new site to try out some new extensions, only to find that they are not particularly useful or that the original requirement has shifted. However, those active extensions are still consuming precious resources in the background will providing no discernible value. Go into System->Configuration->Advanced and disable all extensions not currently being used.

Another common way to speed up a site is to use Compilation mode (System->Tools->Compilation), but we do not recommend this. We have not experienced any significant improvement in performance, and it drastically reduces the site’s stability. A site using Compilation is far more prone to crashes and unexpected errors, which is far more damaging to reputation than an extra quarter of a second to load a page. With that said, some Magento developers claim to have seen dramatic performance improvements, so proceed at your own risk.

Performing the above simple tasks will definitely increase site speed, enhance customer satisfaction, and probably increase SEO ranking.

Work With Us

We've been building websites for over twenty years, and have learned a thing or two about how to make web projects go smoothly.