We all know how frustrating it is to surf a slow website. Particularly if you are a owner of an ecommerce store you can not convert your visitors into customers if your website is slow. Research has shown that your customer is likely to abandon your store if he is unable to get fast experience on your website. Hence faster website means more business! This means if you are able to decrease the loading time of your website by even a second then you have better chances of earning more! So, if you have a Magento store and you want to optimize its performance then please continue reading to know how to speed up your Magento store. These tips are based on our best practices, years experience and hacks which we are performing daily while optimizing our client's Magento stores.
1. If working with scripts and server settings is not your cup of tea then you can achieve considerable results by using two Magento extensions like Fooman Speedster (http://www.magentocommerce.com/magento-connect/fooman-speedster.html) or GTspeed (http://www.magentocommerce.com/magento-connect/gtspeed.html) otherwise go to point #2 to start.
3. Optimize images:
You should minify images in your website to save the bandwidth during web surfing. There are several image compression tools available like hjpeg-optimizer.com, JPEGMini.com, imageoptimizer.net, smush.it etc
4. Specify image dimensions:
It is always a good idea to specify image dimensions wherever possible in your store. It helps the browser to understand and render things faster.
5. Remove unused blocks:
In order to render page faster in Magento, you should remove all unused or not needed blocks from layout xml file.
6. Load images on demand:
If we can somehow load only those images which are visible in the user's active browser area then it will gonna save lot of bandwidth for the user. This can be achieved by using Lazy image loader extensions in Magento. This way the images not located in the viewport, are not loaded until when the user scrolls down.
7. Enable GZIP compression:
9. Use CSS sprites:
We can reduce the number of server requests by using CSS sprites in our website. With the help of CSS sprites, number of images can be reduced by combining them into one image sprite file.
10. Use expires headers:
By using the expire headers or cache control headers, you can reduce the the number of HTTP requests, which can help to load page faster.
11. Enable KeepAlives in Apache:
By enabling the KeepAlives feature in Apache settings, we can keep the connection between browser and server alive, which can help in enhancing the communication speed between them.
12. Reduce DOM elements:
There are many tools available for inspecting & optimizing DOM elements like DOMMonster, DOMinspector etc. If we have very high numbers of DOM elements then it can make increase the page load time & size.
13. Enable all Magento caching:
Enabling all Magento caching can speed up the load time of your pages. You can enable all of the accessible cache from the Magento admin panel (System –> Cache Management).
14. Enable Memcache:
Memcache is a memory caching system for speeding up dynamic web applications by alleviating database load. Magento supports Memcached but it is not enabled by default. You have to manually enable it in configuration file.
15. Install Varnish caching:
Varnish is a HTTP accelerator which caches the HTML and serves it to a user instead of making a call to the Magento Framework. So, it can reduce the page load time drastically.
16. Set expiry for static files:
In Apache, we can enable the module “mod_expire” to set expiry of the static files to a longer duration.
17. Enable MySQL Caching:
MySQL has its own “query cache”, which is quite helpful in generating dynamic pages and content. You should enable the MySQL query chache for increasing the speed of executing database queries.
18. Enable flat catalog:
If your store has more than 1000 products and categories then it is better that you enable Flat catalog feature in Magento. Enabling the Flat Catalog for Categories and Products merges product data into one table, thereby improving performance of your Magento store. Go to System > Configuration > Catalog.
Under Frontend, change "Use Flat Catalog Category" to YES.
Change "Use Flat Catalog Product" to YES.
More tricks to optimize Magento speed:
a. If you are big store and have budget, you should consider using a Content Delivery Network (CDN)
b. Its better to keep logging turn off in your Magento, if you don't actually require it:
Go to System > Configuration > Advanced > Mage Log > Set Disable and Save
c. You should consider splitting the MySQL database and web server to increase the performance of your store.
d. Considering using NGINX in place of Apache web server.
e. Use a light weight template which can render pages faster in browsers.
f. Uninstall any Magento extensions that you are not using in your store.
We hope that by these above tricks you can optimize the speed of your Magento store and can sell more to your customers. Please feel free to contact us if you want us to optimize your Magento store.
Have a happy & faster Magento store :-)