Ensuring that your Magento eCommerce website is performing optimally is important, not only to yourself as an owner, developer, and/or other stakeholder, but also to your users and customers. Better performing and faster Websites lead to happier users. When a site responds slowly, visitors spend less time on that site – that is less of their time at your Webstore looking at products and making purchases! In 2009, Google and Bing, together, examined how site speed and performance related changes impacts end-users.
Among their findings, they determined that:
Delays of under even just half-a-second can negatively impact business metrics
The costs of persistent delay and slow performance increases over time
In short, it is desirable to decrease the time it takes a visitor to your site to click on what they want. Increased latency leads to an increase in site usage abandonment – or when an end-user decides to stop interacting with your site before they find what they are looking for. This, ultimately, leads to dissatisfaction among your customers.
With this in mind, there are a handful of simple solutions you can realize right now to help increase your Website’s speed, improve its performance, and enhance the end-user experience for your customers.
1. .htaccess Optimizations | Enable Apache Served Files Compression (GZip)
Web browsers make use of a cache to reduce the number of HTTP requests required to download a page and render it; thereby enabling those cached Web page elements to load faster on subsequent visits. Browsers make use of Expires headers to determine for how long a component can be cached. We recommend the following settings:
ExpiresByType application/x-shockwave-flash "access plus 1 day"
ExpiresByType application/x-httpd-php "access plus 1 second"
4. Magento Configuration Settings | Use Flat Catalogs
Magento makes extensive use of an “Entity Attribute Value” (or EAV) data model. For the purposes of flexibility and efficiency, Magento stores all category and product data across multiple database tables. By enabling the use of flat catalogs, all of that catalog data across multiple tables is aggregated into a single ‘flat’ table to conserve on SQL queries when Web pages are being served.
Flat Categories are recommended for any Magento installation to help improve performance. Flat Products, however, are beneficial only in instances where there is a very large catalog of products in use (i.e., thousands of SKUs).
To enable the use of flat catalogs, in your Magento Admin Panel, navigate to “System > Configuration > Catalog > Catalog” and ensure that either or both “Use Flat Catalog Category” and “Use Flat Catalog Product” options are set to “Yes” under the “Frontend” section as desired.
5. Optimize Images
Images are often the leading culprit for consuming the largest proportion of Webpage content. While larger Webpages, “heavy” with bloated image files to download, take longer to load and hurts performance for all users. Mobile customers in particular are especially impacted by the prevalence of large images. The Etsy marketplace, for example, found that eliminating just 160 kilobytes of an image’s weight reduced mobile bounce rates by 12%!
Images that are too large, not compressed enough, or have too high of a quality setting can have a direct impact on the loading of your site and your customers’ experience. Avoid this costly mistake by making use of the following tips:
Eliminate unnecessary image resources
Leverage CSS3 effects wherever possible
Use Web fonts instead of encoding text in images
Remove unnecessary image metadata
Serve scaled/resized images at “display size”; larger assets are an unnecessary overhead
Compress images with the right format at the lowest acceptable quality level (~75%)
Save your images with progressive encoding to improve user perception of load times
Crop/trim unnecessary additional pixels from your images (e.g., padding or white-space)
Save images “for the web” in your graphics editor of choice
This is an effective method of increasing the speed of delivery for Web content on high-traffic or globally serving eCommerce stores. Using a CDN also offloads some of the stress and workload from your own server – which leads to less processes being required per customer, reducing your bandwidth costs and improving your response times.
While selecting and implementing a CDN for use with Magento is beyond the scope of this article, for ease of use, be sure that your CDN service allows for caching control. The purpose of using a CDN on your Magento store is to serve content to your customers with high availability and high performance.
7. Magento Cache Storage
Using Magento’s built-in cache management system is an easy and effective way to improve the performance of your Website. The system consists of several different cache types:
System and module configuration files
Page layout building instructions
Language translation files
Files that contain data that is the result of a query
Attribute entities, types, and values
Web Services definition files
It is recommended to enable caching of all available cache types on a Production environment. The benefit of enabling caching is that it eases the load on the Webserver by serving cached elements from the file system, when available, instead – thereby, speeding up your site.
In addition, if you are on the Magento Enterprise platform you have an additional cache type at your disposal – Full Page Cache. Through full page caching, Magento can load content for a user, from cache, without having to fully initialize the Magento application. An entire previously rendered Webpage can be cached to a temporary container for later use. This helps to alleviate bandwidth usage, CPU load, memory consumption, database stress, and perceived lag by the end-user.
Ensure that any of your active in-house or third-party Magento modules and extensions are not set to use a “Debug Mode” or similar while on your Production environment. If you are not currently testing the module, please consider disabling such modes. These “debug” modes often include additional logging functionality that frequently write to files on your server. Disabling these methods can reduce the disk write load on your server.
The impact of Site Speed
Speed, as observed by visitors to your Website, is how quickly results are returned and how long it takes their Web browser to display the content for them. It is especially important to maintain a consistent degree of speed across your entire site as when a user’s experience is negatively impacted, even if briefly, it takes them longer to return to their previous usage level upon returning to a faster state.
Improving your Website’s speed does not only improve the customer experience of your eCommerce store, but also helps to reduce its operating costs. Having speed on your side is definitely a competitive advantage. Facilitating increased site usage indicates more satisfied users and, ultimately, customers.