We try to give you a full instruction to optimize magento performance here even though it is a complex technique. We are sure here when you do these steps you can make your site faster more than 50%, maybe more belong to many factors of your server and your current source code.

Before optimize magento performance, let ‘s check to see how ‘s your current site performance status by good insights. You can try to visit this https://developers.google.com/speed/pagespeed/insights . The score should be more than 85 to make sense for customers visit your site. We should expect it more than 90 in score. Then do these steps.

Speed up Magento

Turn on Tweak in .htaccess

The default .htaccess file that comes with Magento has several sections dealing with performance. These configurations are commented out and will need to be turned on to realize their benefit.

Enable Output Compression

This section will turn on the apache mod_deflate module, which compresses text, css, and javascript before it is sent to the browser. This results in a smaller download size. To enable, simply uncomment the appropriate lines so that it looks like the following:


<IfModule mod_deflate.c>

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

# Insert filter on all content
 SetOutputFilter DEFLATE
 # Insert filter on selected content types only
 AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript

# Netscape 4.x has some problems...
 BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
 BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Don't compress images
 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
 Header append Vary User-Agent env=!dont-vary

</IfModule>

Enable Expires Headers

  • NOTE: This does not work on Litespeed servers.

Browsers use Expires headers to determine how long a page component can be cached. Static components, like images, should have far-future expires headers, but truthfully, all page components should have expires headers. To turn this feature on, just uncomment the appropriate line and add “ExpiresActive On” right above it. See below:


<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

ExpiresActive On
 ExpiresDefault "access plus 1 year"

</IfModule>

Disable ETags

ETags are a way for browsers to validate cached components across subsequent visits. They can slow down a site served from a cluster if the cluster hasn’t implemented them properly. It is best to just turn them off as follows:

############################################
## If running in cluster environment, uncomment this
## http://developer.yahoo.com/performance/rules.html#etags

    FileETag none

Magento Admin Tweaks

There are a couple of features that can be enabled in the back end of Magento to optimize performance. Generally, these features are available on versions 1.4.0.1 and higher and should be performed when most of the development work is done.

Combine CSS and JS Files

This feature reduces the number of HTTP requests. For versions earlier than 1.4.x, the Fooman_Speedster extension can be used instead.

  1. In the Magento Admin, go to System > Configuration > Developer.
  2. Under “Javascript Settings”, change “Merge Javascript Files” to YES.
  3. Under “CSS Settings”, change “Merge CSS Files” to YES.
  4. Clear the cache.

Enable Flat Catalog

Magento uses the EAV model to store customer and product data. This enables these objects to be incredibly extensible, but results in longer SQL queries and more reads. Enabling the Flat Catalog for Categories and Products merges product data into one table, thereby improving performance. Generally, all stores should enable Flat Catalog for Categories. Stores with over 1000 products should enable Flat Catalog for Products.

  1. In the Magento Admin, go to System > Configuration > Catalog.
  2. Under “Frontend”, change “Use Flat Catalog Category” to YES.
  3. Under “Frontend”, change “Use Flat Catalog Product” to YES. (optional)
  4. Clear the cache.

Enable the Magento Compiler

Magento’s application files are searched for in the following order:

  1. app/code/local
  2. app/code/community
  3. app/code/core
  4. lib

This search is performed for every page load, every time, resulting in a lot of filesystem reads. The Mage_Compiler reduces the number of reads by copying all of the application files to a single include directory. It also caches the most frequently used pages.

  1. In the Magento Admin, go to System > Tools > Compilation.
  2. Click “Run Compilation Process”

Other Performance Tweaks

Parallelize Downloads

Most browsers limit the number of concurrent connections to a domain to four. If your page has a lot of components coming from the same domain, this can result in a longer page load time. You can trick the browser into grabbing more components by using different subdomains for static components. This is as simple as creating pointer domains in Siteworx. However, due to the way that Nexcess configures the subdomain logic in the Vhost file, an additional modification is necessary to make this work on our servers.

  • Create Pointer domains in Siteworx

This can be a single “static.example.com”, or separate “js.example.com”, “media.example.com”, and “skin.example.com” domains.

  • Once they are resolving, change the media, js, and skin URLs in Magento as follows:

Static files

  • Edit the Vhost file so that apache doesn’t try to load the sub-directories ../media, ../skin, or ../js, but rather the web root itself. Directly below the following lines:
  # subdomain logic
  RewriteEngine On
  RewriteOptions inherit
  RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
  RewriteCond %{HTTP_HOST} !^example\.com [NC]

Add:

 RewriteCond %{HTTP_HOST} !^js\.example\.com [NC]
 RewriteCond %{HTTP_HOST} !^media\.example\.com [NC]
 RewriteCond %{HTTP_HOST} !^skin\.example\.com [NC]
  • Save the file and restart Apache.
  • Clear the cache and reload the page to make sure the static content is coming from the new URLs.

Clean the Database

Magento’s database can quickly become overgrown and sluggish due to unmaintained log tabes. Don’t do this right now if you only start your shop some weeks, but you run your shop more than a month then this should be important to follow, let ‘s check Cleaning Magento Database for Best performance

And then the last work is check your speed to know where you are in opimize magento performance with Google Speed Insights. You can check all of methods with How to Speed Up Magento ?

One thought on “How to Optimize Magento Performance?

Leave a Reply