9 Tried and Tested Tips to Increase
the Power of your Magento Store
Table of Contents
Introduction...03
Enable Caching...04
01
02
Use PHP Accelerators like APC...05
Use Magento Full Page Caching...06
03
04
Compiling Magento...07
Integrating Solr Search...08
05
06
Apache, MySQL Environment Optimization...09
Number of HTTP Requests per Page...10
07
08
Implementing Redis...11
09
Others...13
10
10.1 Flat Catalog Enabling
10.2 Fewer Extensions
10.3 Theme Selection
10.4 Use Content Delivery Network
10.5 Enable file Compression in .htaccess
10.6 Disable Entity tags
10.7 Remove unused code from the Home Page
10.8 Independent Hosting
10.9 Some of the Cache Extensions
10.10 Summary
9.1
Redis Outsets with Memcache
9.2
Benefits of Redis
In today’s world people do not want to wait for anything. The reason the Internet is so popular is because it is fast and convenient. One reason online shopping is booming is because people love the convenience of turning on their computer or mobile device and, within a few minutes, purchasing whatever they were looking for. Consumers in the online world have increasingly become impatient, and slower response times can seriously affect conversion rates. This means that you could lose a potential customer to competitors. Many people take for granted just how crucial this is, but a lengthy load time is one of the main reasons for a high bounce rate on websites.
If you suffer from slow Magento performance, we can help you with Magento optimization to speed loading time. In this article, we share some suggestions on how you can dramatically increase the performance of your Magento with just a few configuration changes.
Some of the best practices that we suggest are:
02. Enable Caching
This is one of the simplest and most basic ways to optimize the performance of your Magento store. Once Magento caching is enabled, you can see your website immediately serving pages to visitors at a faster rate.
Caching Disabled vs. Caching Enabled
0 10 20 50 100 10 20 50 100 sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k 5 10 15 20 25 30 35
40
Caching Disabled
Defualt Magento Setup
(Caching enabled)
Concurrent Connections, num
Per
for
manc
e, T
ransac
tions/sec
URL List HomepageAdding a PHP accelerator is another important aspect of configuring your Magento Enterprise Edition. eAccelerator shows good results with up to a 100% increase. According to tests, APC is even more efficient, showing a performance boost of 3-5% better than eAccelerator.
03. Use PHP Accelerators like APC
0 10 20 50 100 10 20 50 100 10 20 50 100 sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k 5 10 15 20 25 30 35
40
Defualt PHP Configuration
APC
eAccelerator
Concurrent Connections, num
Per
for
manc
e, T
ransac
tions/sec
Byte Cache Performance:
Defualt Setup vs. eAccelerator vs. APC
URL List Homepage
Website performance is extremely important for bounce rate and conversions. Full Page Cache allows merchants to shorten Magento website loading time by caching product, catalog, and CMS pages. As a result, a website performance is boosted.
04. Use Magento Full Page Caching
Full Page Cache: Enabled vs. Disabled
0
50
100
200
500
50
100
200
500
sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k 50 100 150 200 250 300 350 400 450 500 550Full page cache Enabled
Full page cache Disabled
Concurrent Connections, num
Per
for
manc
e, T
ransac
tions/sec
HomepageBring all the important components of your Magento store to the forefront of your server to enable much faster loading for your visitors. Before you compile, however, you should make sure that you have the version of Magento you desire because you cannot upgrade once compilation is complete.
05. Compiling Magento
Compilation : Disabled vs Enabled
0
10
20
50
100
10
20
50
100
sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k 2 4 6 8 10 12 14 16 18 20Concurrent Connections, num
Per
for
manc
e, T
ransac
tions/sec
22Defualt Setup (compilation
Disabled)
Compilation enabled
URL List Homepage
We also recommend you have the Solr search engine support enabled in the catalog search configuration options. The search quality increases significantly even in cases where the product list is short and it gives only a small performance increase (not more than 30% on catalog navigation and 30% on search).
06. Integrating Solr Search
Search Engine Performance for Catalog filters:
Database search engine vs Solr
0
10
20
50
100
10
20
50
100
sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k 5 10 15 20 25 30Defualt Setup (solr disabled)
Solr Enabled
Concurrent Connections, num
Per
for
manc
e, T
ransac
tions/sec
It is strongly recommended to optimize the MySQL and Apache configuration because this provides a 40-45% performance increase, especially on dynamic pages. The default MySQL and Apache setup is configured to use far fewer resources than the average hardware can provide. The default setup is not able to handle a high number of concurrent customer sessions, which may result in an unpredictable and sometimes erratic server load.
07. Apache, MySQL Environment Optimization
URL List features
Defualt Environment and Magento Enterprise Edition
setup vs optimized MySQL and Apache Configuration
0
10
20
50
100
10
20
50
100
sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k 2 4 6 8 10 12Defualt Environment and magento
Setup
Optimized MyAql and Apache
Configuration
Concurrent Connections, num
Per
for
manc
e, T
ransac
tions/sec
In order to improve page load time & processing time, it is important to reduce the number of HTTP requests per page. This can be done by combining multiple JavaScript files and style sheets into a smaller number of files.
08. Number of HTTP Requests per Page
Merge JavaScript Files
JavaScript Settings
[STORE VIEW]
[STORE VIEW]
Enable Prototype Deprecation
Log
Yes
No
Merge CSS Files
CSS Settings
[STORE VIEW]
Yes
Redis is an open-source, scalable, high-performance, key-value store that can be used as a next-generation cache backend for Magento. It is referred to as a data structure server since keys can contain strings, lists, hashes, sets & sorted lists. Redis has already been tested on high-traffic Magento Stores with over 500,000 visitors per day. We have first-hand experience with using Redis for Magento. The key differentiator is that Memcache doesn't support cache tags. Right now, it seems that Redis is the key-value store that's surpassing competing products and is increasing in popularity. We're using it for sessions, object cache and full-page cache.
09. Implementing Redis
9.1. Redis outsets with Memcache
While working on the Magento Backend or editing product data in the backend, Magento has to invalidate certain part of the cache. The Keys & value that belong to that part are defined by their tag. If you use Memcache as backend storage, you must realize these tags are not in Memcache. Therefore, if you have to invalidate the tag ”store_GR”, Magento will start looping over every entry in the /var/cache folder and retrieve the tag-data from the entries. This entire process is time-consuming and going to be slower for every additional product you have in your store.
Redis is far superior in supporting tags, which makes it faster for tag-related operations. You can just ask Redis to search all keys that are related to tag STORE_GR” and Redis will return a list of keys. So if you’re working in the Magento backend regularly, Redis will be the best option to work with.
9.2. Benefits of Redis
Fast cache backend withexcellent support for cache tags
1
Using Redis as a caching backend reduces overhead and improves
performance
6
Suitable for handling high-traffic Magento Stores with more than
500,000 visitors a day
5
Zero Downtime
4
Rich API and low Latency
3
Efficient inMulti-server environments
2
0 10 20 50 100 10 20 50 100 10 20 50 100 sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k sd 10k 80k 5 10 15 20 25 30 35
40
Default(File system)
Memcached
Database
Concurrent Connections, num
Per
for
manc
e, T
ransac
tions/sec
Session Storage on Single Server :
Filesystem vs Memcached vs Database
10. Others
10.1. Flat Catalog Enabling
Magento inherently uses the EAV database module. This means that each product or category has information stored across many tables. Every time a product or category page is requested, a join query is executed to gather all the information and build the product object. While extremely flexible, this feature is a huge bottleneck for performance. In order to create a simplified version of the catalog, especially those with many products, it is vital to enable flat catalog to store customer and product data
It is important to uninstall extensions that you don’t use. Also, take care when adding any extension to your website; these extensions can cause issues which could potentially negatively affect your website speed. Installing a Magento extension is simple enough, but the problem is that majority of these extensions may not be programmed with performance in mind. Sometimes they are a hindrance on the website performance. Even worse, some extensions may introduce security holes that you may never know about until it is too late. Hence, it is always a best practice to use fewer extensions designed with proper coding standards to avoid any issues.
10.2. Fewer Extensions
There is a multitude of Magento themes to choose from, one can even create a customized theme for the WebStore. For optimizing the performance of your Magento Store, it is always best to use a lightweight theme.
10.8. Independent Hosting
Besides the fact that increased user involvement and conversions are the result of faster websites, one of the parameters that search engines use for ranking is page load time. Therefore, it is advisable to address your website hosting. Because your Magento store is likely to run slowly if you put it under shared hosting, look into a dedicated hosting or even a better hosting service like cloud hosting solutions.
10.4. Use Content Delivery Network
Content delivery networks or CDNs are gaining popularity as they help reduce the stress of serving static files to your website visitors. They are cost effective and can significantly improve the performance of your Magento store, especially to visitors who come to your web store from different parts of the world, giving you a better chance to win over your visitors.
10.5. Enable file Compression in .htaccess
A large portion of Magento pages are simply text like html, JavaScript and CSS. Text content is perfect for compression and really has excellent compression ratios. Magento already provides an option to do this by using the .htaccess file to configure it to turn on the sections in this file that enable faster speed.
10.6. Disable entity tags
Entity tags are basically used to match the cached components. Disabling ETags enables your web page to run much faster by decreasing the amount of bandwidth required and time for the server to load.
10.7. Remove unused code from the home page
It is always better to remove all unused code from the home page. This can be done very easily by following the steps mentioned below: • Go to Magento CMS Menu
• Search for the Pages Menu • Go to the Home Page Tab
• Remove any unused code from the layout Update XML box
10.10. Summary
From our past project implementations we have identified factors like choice of hosting, templates and Magento configuration that impact the speed and performance of the Magento store.
Having a shared hosting can impact the speed of the store. It is advisable to go with a proper dedicated server. Based on your traffic pattern we can suggest whether a CDN is necessary for parallel transfer of static content.
Techniques like designing lightweight Magento templates, optimizing all images by cropping the whitespace, using png8 or gif, scaling images, using image compression and use CSS Sprites can dramatically increase the performance of the site.
There are several ways to update products in Magento. By default we can use dataflow or use third party plugins like storemanager, magmi etc.
10.9. Some of the Cache Extensions
• http://www.artio.net/magento-extensions/m-turbo-accelerator
• http://www.aitoc.com/en/magento_booster.html