Improving the speed and performance of your Magento store is critical. Patience is short lived on the web and every second that ticks by while your store is loading, you are losing sales.
We all know how painful it is waiting for a page to load. This was reinforced by a survey by Kissmetics which suggests almost half of web users will abandon a page that takes more than 10 seconds to load. A third of those people are unwilling to even wait for more than 5 seconds. This impatient attitude is reflected by Google’s push to ‘Make the Web Faster’. Page speed is taken very seriously by Google, so a slow eCommerce store could not only leave your customers unimpressed but also affect your Google search ranking.
Being the powerhouse that it is, Magento has earned a reputation for being cumbersome. During it’s inception, the creators of the platform prioritised flexibility over performance, so it’s no surprise that speed has been an issue. This is not an excuse for a slow Magento store though. There’s a wealth of ways to tweak your eCommerce store to improve its speed, and the benefits of doing so are limitless.
So let’s start with some quick changes that can be made in the Magento admin area to improve load times
- Enable Magento cache storage management – this should already be enabled, but if it’s not, things will likely be sluggish
System > Cache Management > Select all cache types and enable them
- Enable Flat Categories and Products – merges product data into one table, thus reducing SQL queries and improving speed
System > Configuration > Catalog Panel > Catalogue > Frontend > set Use Flat Catalog Category / Product to yes
- Disable logging – logs can be useful for fixing problems, but they can also waste space and resources
System > Configuration > Advanced > Developer > enable Log Settings
Here’s some more tips that can help speed up Magento, but require a little more work
- Update Magento – Running the latest version of Magento will improve performance and security
- Uninstall unused extensions – any extensions that are installed and not being used are wasting resources. Also, be aware of what impact the extensions you require have on your site and what assets they are adding to your pages
- Disable unused modules – unused modules also take up valuable resources
- Install Varnish and Turpentine – with Varnish running on your server in conjunction with Turpentine setup on your Magento store, dramatic speed improvements can be achieved
- CSS at the top, JS at the bottom – putting scripts at the bottom of the page ensures the html page will load first so we aren’t left with a blank screen while scripts load
These final recommendations are less like quick fixes and more like overhauling the assets of your Magento site and how they are delivered to the user
- Asset compression – Most of your text based files can be compressed too
- Minification – removes the white-space and optional characters from your CSS files. Use grunt-contrib-cssmin
- Uglification – convert your JS code into an unreadable and leaner version of itself. This can be done with grunt-contrib-uglify
- Concatenation – append CSS or JS files into one large file to reduce http requests
- Gzip compression – enable gzip on your server assets are further compressed before they are delivered to the user. Be aware though, files that are already well compressed could increase in size when ‘compressed’ by gzip. Make sure a minimum filesize threshold is set to help prevent this
- Image compression – Make sure those banner and product images are web friendly- Lossy compression – compress your jpg, png and gif images using tools like TinyPNG, TinyJPG or Compressor.io
– Lossless compression – further compress your image files with the help of the Grunt task imagemin
– You can even get tricky and combine your images as sprites to cut back on those nasty http requests
- CDN – Content Delivery Networks – Use CDN service like CloudFlare which distributes your website content around the world to make it closer to people visiting and thus improving the speed- Google Hosted Libraries is great for serving common libraries like jQuery or Prototype. This will serve the files from the closest server and also avoid downloading it if it’s already cached
- Caching – Storing data so that it can be served faster in the future
Set the expire headers for your images, CSS and JS so they are not being reloaded every time a user revisits the store
As you can see, there are endless ways to speed up your Magento store and the benefits of doing so cannot be overlooked. As many of the tips above would suggest, it’s best to have speed in mind from the very beginning of development rather than trying to overhaul your site later. But it’s never too late to get started!
If you make performance a priority on your Magento store, visiting it will be a much more enjoyable experience and you can stress less about losing customers due to load times.