12 Tips to Speed Up Magento Performance

Magento is one of the most widely used eCommerce platforms today that people to choose to grown their online business. In this post, we will discuss tips on how to speed up Magento performance to ensure you don’t lose any sales due to high abandonment rate or an unsatisfying user experience.

When it comes to choosing an eCommerce CMS or platform you have a lot of options. You could go with WooCommerce which is an extension of WordPress, Shopify, Volusion, and a number of other ones. The reason a lot of businesses choose Magento is because it is a very robust platform with a high level of functionality and customizability. It is highly scalable, meaning there would be no need to change to a different platform later on as you scale up.

According to BuiltWith, 16% of the top 100,000 eCommerce websites are using Magento, 22% if we also include Magento Enterprise. And WooCommerce comes in at a close second with 12%.

eCommerce-Marketshare

According to Google Trends the activity around Magento is still very high, since it’s official release in 2008. However, WooCommerce and Shopify have seen very rapid and consistent growth over the past few years so it will be interesting to see where Magento will be in the next five years.

Magento-vs-WooCommerce-vs-Shopify

Speed Up Magento Performance

Magento and WooCommerce are both known for having issues with speed and their performance degrading over time. Making sure your eCommerce solution is running fast is one of the most important factors to your sales, SEO rankings, abandonment rate, and the shoppers overall user experience.

If an e-commerce site is making $100,000 per day, a 1 second page delay could potentially cost you $2.5 million in lost sales every year. – Kissmetrics

Follow these tips below on how to speed up Magento performance and keep it running fast to ensure return shoppers and sales.

Speed Up Magento Index

1. Using Magento Latest Version

It is very important that you are always running the latest version of Magento as updates generally contain bug fixes and performance improvements. There are three main steps when it comes to upgrading a Magento installation.

  1. Install a fresh version the Magento file tree (the version you are trying to upgrade to)
  2. Run the installer from the file tree on top of the outdated database (thereby upgrading the database)
  3. Move over themes and custom extensions from the old version to the current version.

Upgrading Magento is a little more work than upgrading WooCommerce or Shopify, but Customer Paradigm has a good in-depth tutorial on how to fully upgrade Magento.

Magento also does a good job of notifying you of important updates that become available within your messages inbox.

magento update notice

2. Using Content Delivery Network for Magento Store

Implementing a Content Delivery Network (CDN) with Magento is one of the easiest ways to instantly see decreased load times. By doing this, you will ensure you are serving your assets (product images, javascript, CSS) from multiple locations around the globe so they are delivered faster to your shoppers.

3. Utilize Magento Caching

There are many forms of caching that can be implemented with Magento. Many people have great success combining NGINX + APC + Memcache + Varnish caching.

Magento also comes with a built-in caching module as well, but 3rd party solutions seem to achieve better results.

  1. To enable, navigate to “System” → “Cache Management.”
  2. Select everything and then under the drop-down select “Enable” and click “Submit.”

magento system caching

Magento Browser Caching

Another form of caching you can leverage is browser caching. See the following snippets you can add to your .htaccess file, such as enabling Gzip compression and adding expire headers.

Enable Gzip Compression for Magento Store

Gzip compresses web pages and stylesheets at the server level before sending them over to the browser.

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

Magento Expire Headers

Expire headers tell the browser whether they should request a file from the server or grab it from the browser’s cache.

<ifModule mod_expires.c>
     ExpiresActive On
     ############################################
     ## Add default Expires header
     ## http://developer.yahoo.com/performance/rules.html#expires
     <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
     ExpiresDefault "access plus 1 year"
     </FilesMatch>
     </ifModule>

 Enable Magento Page Caching

Page caching is one of the most powerful ways to speed up Magento. Load is taken off from the webserver by serving pages already visited before from cache, which makes it a lot faster.

There are a few page caching extensions available for Magento, we recommend one of the following:

LiteSpeed also offers a product called LiteMage which uses what they call “hole punching.” It designates certain areas of a page that can change and then the rest is served from cache.

litemage hole punching

LiteMage Hole Punching

4. Enable Flat Catalog

Magento uses the EAV model (entity attribute value) to store customer and product data. Enabling the flat catalog for categories and products merges product data into one table, thereby improving Magento performance by responding to MySQL queries faster. If your eCommerce store has more than 1000 products, this can very beneficial.

  1. Navigate to “System” → “Configuration” → “Catalog.”
  2. Under “Frontend” change “Use Flat Catalog Category” and “Use Flat Catalog Product” to “Yes.”

magento flat catalog

    1. Click on “Save Config.”
    2. Clear the cache. The recommended way to do this is to delete everything from the/var/cache directory. You can also do it by navigating to “System” → “Cache Management” and clicking on “Flush Cache Storage” which is equivalent to deleting all the cache.

magento flush storage cache

5. Magento Image Optimization

On average 56 percent of a website’s page weight is made up of images. Optimizing your Magento product images can dramatically increase the speed of your pages as this decreases their download times. You can compress them before uploading them using a tool like PhotoShop or there are a number of extensions you can use to auto-optimize them.

GTMetrix also has a Magento extension called GTspeed. It includes image optimization as well as CSS/JS concatenation and minification. Take a look at the difference on a stock Magento install.

gtmetrix improvement magento

6. Concatenate (merge) CSS and Javascript Files

Magento actually has a built in feature to concatenate (merge) your CSS and Javascript files into one file. This will reduce your total number of HTTP requests and in turn help speed up the loading of your pages.

  1. Navigate to “System” → “Advanced” → “Developer.”
  2. Under “JavaScript Settings” and “CSS Settings” change the dropdown to “Yes” and click on “Save Config.”

magento merge css js files

  1. After combining these files, you will need to clear the cache. Follow the process we mentioned earlier.

You can take this one step further by also minifying your CSS and Javascript using a Magento extension like Minify Js / CSS.

7. Enable Magento Compilation

Magento has a compilation feature which has been reported to sometimes give up to a 50% performance boost. By default, Magento’s application files are searched in a certain order everytime the page loads, which results in a lot of filesystem reads. The Magento compiler reduces these reads by copying all of these files into a single include directory and also caches ones that are used more frequently.

  1. Navigate to “System” → “Tools” → “Compilation.”
  2. Click on “Run Compilation Process.”

magento compilation process

Note: Before installing next extensions or upgrading Magento you have to disable this feature.

8. Clean Up Magento Database & Logs

By default, Magento keeps logs up to 180 days. This can result in your database growing quite large. You change it to something smaller like two weeks (14 days) to save space.

  1. Navigate to “System” → “Configuration” → “Advanced”→ “System” → “Log.”
  2. Under “Save Log, Days” change it to 14 days, or whatever you prefer.
  3. Click on “Save Config.”

magento logs

You can also manually clean up your database by emptying the log tables.

  1. In phpMyAdmin select all of the log_% tables and select “Empty” from the drop-down box.
  2. Click on “Yes” when it asks you if you really want to TRUNCATE the tables.

magento truncate log tables

9. Fewer Extensions & Modules

Just like with WordPress and any other platform, the more extensions you have running the more HTTP requests there are, as well as additional CSS and Javascript files having to load. It is best to keep your Magento install down to as few extensions as possible.

You can also disable modules that you don’t use.

  1. Navigate to “System” → “Configuration” → “Advanced”→ “Advanced” → “Log.”
  2. On the modules you don’t need select “Disable” from the drop-down box and click on “Save Config.”

magento disable modules

10. MySQL Configuration

MySQL has its own “query cache” that it uses in Magento to help generate dynamic pages and content while improving performance. These are some recommends settings for your my.cnf file.

query_cache_type = 1
query_cache_size = 32M
query_cache_limit=2M

And also a recommended setting for php.ini.

php_value memory_limit 128M

11. Magento Update Indexes

Magento updates indexes on every object store by default, but in some cases manual updates are required. Indexes are used to speed up MySQL queries.

  1. Navigate to “System” → “Index Management.”
  2. Select all of the indexes (or the ones you want to update), choose “Reindex Data” from the dropdown and click “Submit.”

magento reindex data

12. Using PHP Accelerators

Using a PHP accelerator is another form of caching. They increase performance of PHP scripts by caching them in their compiled state. You can use a PHP accelerator like APC, ZendOptimizer+ or Xcache.

Summary

As you can see there are many ways you can improve your Magento eCommerce site. From implementing a CDN to caching, enabling flat catalog, image optimization, merging CSS and JS files, using the Magento Compiler, and cleaning up your database. Also having a good web host is equally important.

Do you have another way to speed up Magento that we missed? We would love to hear about it below in the comments.

0 Likes
581 Views

You may also like

Leave A Comment

Please enter your name. Please enter an valid email address. Please enter message.