magento-compilation

101 ways to speed up your Magento e-commerce website

As you probably know by now, Google is Using site speed in web search ranking. And I couldn’t agree more: speed is important for your site, and not only for Google but mainly for the User Experience (UX) on your site. Research from Google and Microsoft shows that slower websites convert less and that the effect of a slow website is lasting.

Sidenote: As a psychologist this might be a form of Déformation professionnelle, but I kinda hate it when people always talk about optimizing for search engines/ Google. Don’t optimize for Google, keep in mind that you optimize for your users!

Ok, so nothing new so far (I hope), but what about the speed of your Magento platform? If you’re serious about e-commerce, 9 out of 10 times Magento will be your best choice overall when looking at features, flexibility and TOC. But there are some complaints about Magento being a very slow system and as I just explained: that isn’t good for your UX.

And although most of these complaints aren’t always fair (off course you’re Magento site is slow when you put it on a cheap shared hosting with 200 other websites!), we all know that of the box Magento isn’t the fastest boy in the class. So that’s where this list comes in…

Below is the list with 101 ways to speed up your Magento site… Well ok, at the moment I have only 30 45 54 62 ways, but if you help me out we can make it to 101! When new suggestions come in, I’ll update this post with additional ways to speed up your website. When more tips come in I’ll probably start categorizing them to maintain an overview.

The tips:

A) Hosting environment/ General tips

  1. Get a dedicated server.
  2. Host your site in the country where your customers are.
  3. Don’t host files on your web server that you do not use, large or small.
  4. Goto MySQL Admin and select all the tables and repair and then optimize them.
  5. Use a PHP accelerator like APC, ZendOptimizer+ or Xcache.
  6. Only install necessary Apache modules.
  7. Use Apache mod_expires and be sure to set how long files should be cached. You could use the example below for your Apache virtualhost config:
    # Turn on Expires and set default to 0
                    ExpiresActive On
                    ExpiresDefault A0
    
                    # Set up caching on media files for 1 year (forever?)
    
                            ExpiresDefault A29030400
                            Header append Cache-Control "public"
    
                    # Set up caching on media files for 2 weeks
    
                            ExpiresDefault A1209600
                            Header append Cache-Control "public"
    
                    # Set up 1 week caching on commonly updated files
    
                            ExpiresDefault A604800
                            Header append Cache-Control "proxy-revalidate"
    
                    # Force no caching for dynamic files
    
                            ExpiresActive Off
                            Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
                            Header set Pragma "no-cache"
  8. Enable Gzip Compression in htaccess.
  9. Compress output, use zlib.output_compression or mod_deflate.
  10. Use a Content Delivery Network (CDN) for parallel transfer of static content. There is a Magento extension that can help you do this with category and product images: the One Pica Image CDN. But… (see next tip).
  11. Don’t use too many different external sources (for images, iframes, (twitter/facebook)feeds etc.) because every DNS lookup takes extra time and you create an extra dependancy (on some 3rd party server) for your site to load properly.
  12. Enable Apache KeepAlives: Make sure your Apache configuration has KeepAlives enabled. KeepAlives are a trick where multiple HTTP requests can be funneled through a single TCP connection. The setup of each TCP connection incurs additional time, this can significantly reduce the time it takes to download all the files (HTML, JavaScript, images) for a website. More info  at Apache.org. Be carefull though, I’ve heard from some that this create (a lot of) extra load on the server and might crash the server on high traffic moments!
  13. Minimize redirects.
  14. Make your output W3C compliant. Errors slow down the browser.
  15. Swap Apache for NginX or Litespeed. If this isn’t an option, then go for Zend Server (ideally the non-CE version so you can use full page caching).
  16. Turn off or at least reduce web server logging (reduces disk writes).
    • Disable Access Time Logging. Magento Wiki: For Linux servers, if you have access-time logging enabled on any of your mysql, web server or cache partitions, try turning it off for a performance boost. If you’re using ext3 or reiserfs there may be faster journal write methods you can use. For more info see Linux.com.
  17. Compile MySQL from source instead of your OS’s package manager.
  18. Always upgrade to the latest Magento version. Not only will you get more features and bug- and security fixes, but with every update Magento performs better.
  19. Query Cach size: Magento Blog: Modify the configuration for your MySQL server to take better advantage of your server’s RAM. Most Linux distributions provide a conservative MySQL package out of the box to ensure it will run on a wide array of hardware configurations. If you have ample RAM (eg, 1gb or more), then you may want to try tweaking the configuration. An example my.cnf is below, though you will want to consult the MySQL documentation for a complete list of configuration directives and recommended settings.
  20. set ‘php_value memory_limit 128M’ in your php configuration or add it to your .htaccess file to ensure you don’t run out of memory.
  21. Use a memory-based filesystem for dynamic data. If you store dynamic data (var/cache, var/session) on RAMdisk or tmpfs, the disk I/O is decreased.
  22. Change realpath_cache_size in php.ini.
    realpath_cache_size=1M (careful, this is per apache process) realpath_cache_ttl=86400 (ok for production site) 
  23. Memcache (for the hardcore) is documented in http://www.magentocommerce.com/boards/viewthread/9037/ and more tips from http://alexle.net/archives/275 to get you up and running.
  24. Disable the PHP open_basedir directive. Read this.
  25. Eliminate directory structure scans for .htaccess files.
  26. Recommended innodb_buffer_pool_size.
    • Combined web and db server, 6 GB RAM:  2-3 GB
    • Dedicated database server, 6GB RAM: 5 GB
    • Dedicated database server, 12 GB RAM: 10 GB
  27. innodb_thread_concurrency.
    • 2 * [numberofCPUs] + 2
  28. Query Cach: query_cache_size: 64MB, query_cache_limit: 2MB
  29. Use sa seperate backend server to handle admin users, process backend activity (cron), pre generate full page caching and to handle media queries.
  30. Use multiple web nodes (frontend servers) to handle browsing and checkout.
  31. Use Varnish reverse proxy caching, Magento explanation by @alistairsteadVarnish your Magento store, make it fly!.
  32. If you have a popular site that is heavily crawled by searchengines, you can save some resources by tweaking your robots.txt.
  33. Try some of these cache extensions:
    • http://www.artio.net/magento-extensions/m-turbo-accelerator
    • http://www.aitoc.com/en/magento_booster.html
    • http://www.tinybrick.com/magento-modules/performance.html/
  34. Install the Yireo DisableLog addon. It prevents Magento writing tons of stuff to your database which is useless when you’re already using something like Google Analytics.

B) Template

  1. Optimize all your (template) images- Most if not all should be at least below 10kb.
    • Crop the white space using your image editor.
    • Use PNG8 Files or GIF files rather than Jpegs and don’t use transparency (depending on how many colors you use and how large the image is, but try for yourself).
    • Scale images: make images in the dimensions you need and not resizing them in the editor.
    • Use image compression (you can use smush.it to do it for you).
    • Use CSS Sprites, there even are CSS Sprite Generators.
  2. Minify your Css, remove unused code.
  3. Minimize Javascript use.
  4. Use a lightweight template as a basis for your template. For example: the Yoast Blank SEO theme.
  5. Specify Image dimensions.
  6. Use Block cache and HTML output in your extensions.
  7. Apply Javascript Lazy Loader for prototype.

C) Magento configuration

  1. Uninstall any extensions that you don’t actually use.
  2. Disable modules that you don’t use: System -> Configuration -> Advanced -> Advanced.

    modules disable 101 ways to speed up your Magento e commerce website

    This is an example setting

  3. Enable all Magento Caches: System -> Cache Management.
    Magento Caching 101 ways to speed up your Magento e commerce website 
  4. Use an offsite Stats Tracker like Google Analytics and not an onsite one. Most of this will use Javascript, host the Javascript yourself.
  5. Combine Javascript and Combine CSS files: System ->Configuration ->Advanced ->Developer -> ‘Javascript settings’ and ‘CSS Settings’. You can also consider using an extensions to do this like the Fooman Speedster extension, whichever works best for you.
    javascript css 101 ways to speed up your Magento e commerce website
  6. Try some of the Magento performance extensions.
  7. Enable the Magento Flat Catalog, only helpful for very large catalogs to feel the improvements.
  8. Don’t use layered navigation if you don’t really need it, it’s resource intensive.
  9. Use Magento’s Compilation feature. It’s reported to give you a 25%-50% performance boost: System > Tools > Compilation.
    magento compilation 101 ways to speed up your Magento e commerce website
    Edit: Yoav Kutner (Magento CTO) let me know that “in later versions since we optimized the catalog EAV, Magento Compilation is not really needed if you have byte code caching and if it is configured correctly“.
  10. Use the correct session storage, choose file system or database (during setup). Most installations should use “file system” because it’s faster and doesn’t cause the database to grow. But if your site will run on multiple servers, you should select “database” so that a user’s session data is available regardless of which server his/her request is served from. More info about this from Ashley Schroder at Magebase.com.
  11. Limit the number of products on a product overview page.
  12. Set only those attribute frontend properties to ‘Yes’ that you’re actually going to use. Set all other to ‘No’. Don’t use in quick search, advanced search compare, etc etc.: Catalog -> Attributes -> Manage Atributes -> Frontend Properties.
    attributes frontend properties 101 ways to speed up your Magento e commerce website 
  13. Disable the Magento log: System -> Configuration -> Advanced -> Developer -> Log Settings (default is disabled).
    logging 101 ways to speed up your Magento e commerce website 

Enterprise only tip:

  • Disable Enterprise_CatalogEvent. Go to Admin -> System -> Configuration -> Catalog -> Catalog Events.
    Then you want to turn off the settings for “Enable Catalog Events Functionality” and “Enable Catalog Event Widget”.
  • Enable Solr search, it’s quicker compared to the default setup, especially when you have lots of products (>10k).
  • Enable Full Page Caching.

D) Speed testing, analysing, monitoring

  1. Test your Magento site with Magento Speed Test (by Ashley Schroder)
  2. Run your site through websiteoptimization.com.
  3. Use Google Page Speed Firefox extension or Yahoo Yslow for some tips from Google and Yahoo.
  4. Implement Google Speed measurements in Analytics: Measure Page Load Time with Site Speed Analytics Report
  5. Speed monitoring and downtime alerts.

Bonus Tips

(because it doesn’t actually speed up the frontend but only the backend):

  • Use K-Meleon if you are on Windows for your general Admin work. It renders Magento’s heavy JS back-end significantly faster than any other browser.
  • Use the GoogleGears extension from Yireo.com to cache static files locally.
  • Use a local pc/mac application to manage Magento (like mag-manager.com).

I do realize that you probably can’t use all of the above tips but it’s not about using them all, and sometimes you just make the choice to give a functionality a priority over performance and that’s OK. If you can only apply some of them you will still increase speed and gain in user experience. And remember: because speed depends on many variables, some of the tips might not have an impact on your website at all while others can have a huge impact. So always test the impact of every step you take and take actions accordingly.

Do you have any tips? Post them in the comments and I’ll add them to the list!

Sources:

My own experience :) | Google Page Speed | Inchoo | Yireo.com | Yoast.com | Dries Bultynck | Piotr Kaminski | Magentocommerce forum thread about these tips | Methods and Best Practices for High Performance eCommerce | Magebase.com | The comments below this post

  • Pingback: Tweets die vermelden 101 ways to speed up your Magento e-commerce website | Guido Jansen -- Topsy.com

  • Pingback: 101 ways to speed up your Magento e-commerce website | Guido Jansen | e-commerce News

  • Pingback: 101 ways to speed up your Magento e-commerce website | Guido Jansen Email Marketing On Me

  • http://www.magentomagik.com/ MagentoMagik

    Excellent optimization tips, thank you. i didn't knew about K-Meleon, i am going to try it now.

  • http://www.magentomagik.com/ MagentoMagik

    Excellent optimization tips, thank you. i didn't knew about K-Meleon, i am going to try it now.

  • http://www.measureddesigns.com Andrew Taylor

    Very helpful, I'm surprised that Magento's mini icons aren't sprites as standard.

  • http://www.measureddesigns.com Andrew Taylor

    Very helpful, I'm surprised that Magento's mini icons aren't sprites as standard.

  • Pingback: Acadiana Websites - 101 Ways To Optimize Magento Performance

  • http://www.cuband.com Cuban Music

    These are really, really great suggestions! I've bookmarked this list so I can go through them and get my Magento install working as fast as possible.

  • http://www.cuband.com Cuban Music

    These are really, really great suggestions! I've bookmarked this list so I can go through them and get my Magento install working as fast as possible.

  • http://www.gxjansen.com Guido Jansen

    Thanks, let me know if you have additional suggestions!

  • http://www.gxjansen.com Guido Jansen

    Thanks, let me know if you have additional suggestions!

  • Pingback: Speed matters | Realvine Magento Professional Partner

  • Pingback: Travis Laird | Speed up Magento E-commerce to Help Your Google Rank

  • Craig

    Compiling MySQL from source is pretty pointless as it's already highly optimized. Compiling Apache or PHP from source has it's benefits but MySQL almost nothing.

  • Craig

    Compiling MySQL from source is pretty pointless as it's already highly optimized. Compiling Apache or PHP from source has it's benefits but MySQL almost nothing.

    • Rieks Visser

      I was wondering about this too… Maybe Guido can tell us how to ideally compile from source?

  • Pingback: Tweets die vermelden 101 ways to speed up your Magento e-commerce website — Guido Jansen -- Topsy.com

  • jihadaj

    Good tips, well organized. Thanks for sharing

  • jihadaj

    Good tips, well organized. Thanks for sharing

  • Pingback: All Around the World News

  • Pingback: Disable Google Analytics | Ifdny

  • Pingback: Disable Google Analytics

  • Pingback: Disable Google Analytics - MeMiM

  • Pingback: 101 ways to speed up your Magento e-commerce website — Guido Jansen | e-commerce News

  • Pingback: Links der Woche 31/2010 | Kai Köpke | Webdesign & Magento Online Shops

  • gotwickdotcom

    I am using the newest version (just started working with Magento last week!) v. 1.4.1.1. In this list of tips, under Magento Configuration tip #4, in my menus you have to go to System>Configuration>Advanced>Developer to get to the Java and CSS settings….

    • http://www.gxjansen.com Guido Jansen

      Thanks gotwickdotcom, I updated the entry!

  • Lukas
  • http://www.chistraighteningironsus.com chi straightening irons

    magento version 1.4.1.1, speed up much more than older version.

    • http://www.gxjansen.com Guido Jansen

      yup, that’s tip 18 below ‘A) Hosting environment/ General tips’

  • Chris

    https://www.thecellnerds.net/

    We are using alot of your tips we are not on a dedicated server yet, but have switched hosting, that seems to help alot.

    Thanks for the great tips

    • http://www.gxjansen.com Guido Jansen

      That’s wonderful Chris! Hope your business will soon allow for dedicated hosting to boost conversion even further!

    • Craig

      What hosting did you switch from and to?

  • Chris

    https://www.thecellnerds.net/

    We are using alot of your tips we are not on a dedicated server yet, but have switched hosting, that seems to help alot.

    Thanks for the great tips

  • guest

    great list thanks, one tip though, more links to actually how to change these settings would be a idea for some.

    • http://www.gxjansen.com Guido Jansen

      I’ll try adding more links/ screenshots, thanks for the suggestion!

    • http://www.gxjansen.com Guido Jansen

      I’ll try adding more links/ screenshots, thanks for the suggestion!

  • Pingback: Magento Performance: Mito contro Realtà

  • Pingback: Speeding up Magento with APC or Memcached

  • Anonymous

    If you follow these instructions carefully (you cannot just c&p the settings – they require tweeking for individual set-ups) you can get a huge leap in performance!

  • Thomas Boltze

    Guido, almost none of the Magento Optimization tips are specific to Magento. They hold for any website, so I am not sure how this affects the comparison with other eCommerce stacks. I would assume that someone who knows about these things would compare fully optimized Magento to fully optimized XYZ, and someone who does not would compare both packages non-optimized.

    You claim that Magento can be super fast, other people claim that other packages are much faster. Can you shed some light on an apples to apples comparison, i.e. same level of optimization for setup?
    Thanks,
    Thomas

    • http://www.gxjansen.com Guido Jansen

      Hi Thomas. Where did I make a comparison between Magento and other ecommerce stacks…? :)

      This post is meant to address Magento optimization, whether it’s specific Magento or a general think for optimizing any website. Because Magento is not a light program compared to others, these points might not be interesting when you use another program because the profit would be to small. When using Magento under high load however, some extra steps might need to be taken and that’s where this list would come in.Comparing ‘the apples’ would definitely be interesting!

  • http://www.verzdesign.com ecommerce web design

    Good postings on good blog i read this blog with very much interest.

  • Sunny

    FUCKING EXCELLENT MASTER POST

    • http://www.gxjansen.com Guido Jansen

      Haha, thx ;)

  • MonsterStealz

    Great tips! Especially was looking for the tips for speeding up the backend. I had already enabled gzip compression which helped my front end load times a lot.

    However things in admin still seem a little sluggish. Especially if I try to do something like delete a lot of categories at once.

  • http://magento-themes.jextn.com/ magento themes

    Hosting also matters a lot for a website, I have seen most of the developers suggest magento for ecommerce related stuff, also i have cross checked many ecommerce website, most of the platform is magento cms, I think it is better to have website with magento cms.

  • Pingback: 8 cosas todo el mundo tendría que saber sobre Magento | SEO - Lorenzo Ballanti Moran - Optimizador de Empresas Online

  • http://www.gxjansen.com Guido Jansen

    Thx, I’ll add that to the list!

  • http://johnmonte.me John Monte

    Bookmarked. Very useful. Thanks for sharing.

  • Vern Burton

    Moving some of the .htaccess into the Apache configuration can help speed up Apache threads as they won’t be required to change the setting every time that Apache has to read the page load. (You can move all the Yahoo stuff & php memory limit & any IfModule can be moved in).  I have had great success with APC to increase PHP speed when using the Apache interpreter.  Maximize your MySQL setup is the easiest way to increase performance though. 

    • Vern Burton

      Here are some basic MySQL changes.  BE SURE TO CHANGE THEM TO MATCH YOUR SYSTEMS ABILITIES!!!!!!  NOT ALTERING THESE COULD POSSIBLY CRASH YOUR SYSTEM.

      [mysqld]
      datadir=/var/lib/mysql
      socket=/var/lib/mysql/mysql.sock
      user=mysql
      # Default to using old password format for compatibility with mysql 3.x
      # clients (those using the mysqlclient10 compatibility package).
      old_passwords=1
      # Disabling symbolic-links is recommended to prevent assorted security risks;
      # to do so, uncomment this
      max_connections = 1000
      max_connect_errors = 10
      table_cache = 1024
      max_allowed_packet = 16M
      max_heap_table_size = 64M
      sort_buffer_size = 8M
      join_buffer_size = 8M
      thread_cache_size = 8
      thread_concurrency = 8
      query_cache_size = 64M
      query_cache_limit = 2M
      tmp_table_size = 64M
      key_buffer_size = 32M
      read_buffer_size = 2M
      read_rnd_buffer_size = 16M
      bulk_insert_buffer_size = 64M
      myisam_sort_buffer_size = 128M
      myisam_max_sort_file_size = 10G
      myisam_max_extra_sort_file_size = 10G
      myisam_repair_threads = 1
      myisam_recover
      innodb_additional_mem_pool_size = 16M
      innodb_log_buffer_size = 8M
      innodb_log_file_size = 512M
      innodb_log_files_in_group = 2
      innodb_buffer_pool_size = 10G
      innodb_data_file_path = ibdata1:1G;ibdata2:512M:autoextend
      innodb_autoextend_increment=512
      [mysqld_safe]
      log-error=/var/log/mysqld.log
      pid-file=/var/run/mysqld/mysqld.pid

    • Vern Burton

      Here are some basic MySQL changes.  BE SURE TO CHANGE THEM TO MATCH YOUR SYSTEMS ABILITIES!!!!!!  NOT ALTERING THESE COULD POSSIBLY CRASH YOUR SYSTEM.

      [mysqld]
      datadir=/var/lib/mysql
      socket=/var/lib/mysql/mysql.sock
      user=mysql
      # Default to using old password format for compatibility with mysql 3.x
      # clients (those using the mysqlclient10 compatibility package).
      old_passwords=1
      # Disabling symbolic-links is recommended to prevent assorted security risks;
      # to do so, uncomment this
      max_connections = 1000
      max_connect_errors = 10
      table_cache = 1024
      max_allowed_packet = 16M
      max_heap_table_size = 64M
      sort_buffer_size = 8M
      join_buffer_size = 8M
      thread_cache_size = 8
      thread_concurrency = 8
      query_cache_size = 64M
      query_cache_limit = 2M
      tmp_table_size = 64M
      key_buffer_size = 32M
      read_buffer_size = 2M
      read_rnd_buffer_size = 16M
      bulk_insert_buffer_size = 64M
      myisam_sort_buffer_size = 128M
      myisam_max_sort_file_size = 10G
      myisam_max_extra_sort_file_size = 10G
      myisam_repair_threads = 1
      myisam_recover
      innodb_additional_mem_pool_size = 16M
      innodb_log_buffer_size = 8M
      innodb_log_file_size = 512M
      innodb_log_files_in_group = 2
      innodb_buffer_pool_size = 10G
      innodb_data_file_path = ibdata1:1G;ibdata2:512M:autoextend
      innodb_autoextend_increment=512
      [mysqld_safe]
      log-error=/var/log/mysqld.log
      pid-file=/var/run/mysqld/mysqld.pid

  • Tauros Media

    Server hardware recommendation:To get 2 second page loads for a large size database and highly modified Magento store you will need a dedicated server with atleast a hyperthreading capable 4 core or a reguar 8 core server with atleast 16 GB of ram. Preferably 24 GB of ram. No virtual dedicated server.

  • Pingback: » Magento Brainstormsessie & BBQ » News from Byte HQ

  • Srikanth AD

    I turned off ‘translation’ and the site is way faster than it used to be. This might help if your online store is specific to a country.

  • Pingback: Limitations of Magento (And How to Overcome Them) | Redstage Magento Blog

  • ivan

    mate, you should add a print stylesheet to your blog…

  • http://twitter.com/seanhimself Sean Taylor

    Any developers out there interested in performing these functions on my site to speed it up?

  • http://twitter.com/seanhimself Sean Taylor

    Any developers out there interested in performing these tasks on my site to help speed it up?

  • http://www.cheap-carpet-tiles.co.uk Carpet tiles UK

    Some good suggestions in there, especially when site speed is even more paramount in the eyes of Google.

  • Usuf Cse

    hai this is usuf from chennai.. in my website css was not working .. hoe i can to fix it.. please it…

  • http://www.ecommerce-hosting-guru.com/ Ecommerce-Hosting-Guru

    Great tips, I’ve read a lot about how slow and resource hungry Magento is so its nice to see that there are some things that you can do about it.  Your website makes me want to try out this software and see what everyone is so excited about.

  • Ralf Steffler

    I tested Magento Version 1.6.2.
    Performance is dependent on browser.
    IE version 8 is much slower than google chrom.

  • http://pulse.yahoo.com/_W3BRLU44SYYL3YYYONWU6SIBUE Kevin

    Guido please keep updating this.  Its ranked well in Google so its being
    used as a reference tool now by many.  I have it bookmarked and I hope
    you’ll make it a project to keep the recommendations coming (and
    updated!).  Thanks again. 

  • http://pulse.yahoo.com/_W3BRLU44SYYL3YYYONWU6SIBUE Kevin

    Guido please keep updating this.  Its ranked well in Google so its being
    used as a reference tool now by many.  I have it bookmarked and I hope
    you’ll make it a project to keep the recommendations coming (and
    updated!).  Thanks again. 

  • Pingback: Daily Summary 06/07/2012 | Sandro Feuillet

  • http://www.eccellente.nl/ DJ Pheifer

    Step C9 (
    Compilation) will let the site crash, not recommended 

  • http://phpbugs.wordpress.com PHPBugs

    Good tips and well organized. Thanks for sharing. When can we expect more.

  • http://twitter.com/gloopygames Damian Boon

    NGINX + APC + Memcache + Varnish + Percona + Ultimento = 700ms page load times and not that hard to implement. We have just had all this installed

  • http://giamsatgps.vn/ dinh vi

    Great tip i’ve seen.
    Thank for your share!

  • JJJJJ

    Is there a similar list for Magento Go?  Because Magento Go is hosted on Magento’s (eBay’s) servers we dont have access to some of these configurations.  Thanks for the great list.
    J

  • gondo

    can you list what are the only necessary Apache modules?
    mentioned in “A 6. Only install necessary Apache modules.”

  • http://acticart.com/all-sports/cricket.html Cricket bats

    Magento CMS is really the best for Ecommerce websites.

  • http://twitter.com/tgbeazy Thomas Bennett

    Could you recommend a hosting company that does a good bit of this out of the gate? I’ve found that often times I have to move a client over to a new host regardless and then am having to still add many of these things because its on a dedicated or VD not really optimized for Magento.

    I looked at Nexcess but it seems really pricey.

    • http://www.gxjansen.com/ Guido Jansen

      Hi Thomas,  I’d suggest you take a look at http://www.magespeedtest.com from @aschroder. His service tests hosting companies on a regular basis and lists their speed (and you can also test your own to compare). It’s not the only metric to go on, but it helps a lot in selecting a fast Magento hoster. Good luck!

  • http://www.partygalore.com.au/ PartyGalore

    The best advices I’ve ever gone through regarding speeding up magento!
    Thank you

    • http://www.gxjansen.com/ Guido Jansen

      you’re welcome!

  • http://www.lieber-linux.de/ Nudge

    Sad to read that using varnish, memcache and APC a magento needs 700ms to deliver a page…I think you should gor for < 100ms server side response time to be experienced as "fast".

    • gondoSVK

      depends on the page. static pages can be served at 10ms as they are served entirely from varnish. checkout pages will be obviously slower as a lot of thing has to be calculated on the fly

  • http://twitter.com/shirtsofholland ShirtsofHolland.com

    Does innoDB allow repair? This option always states ‘not supported’

    4 Goto MySQL Admin and select all the tables and repair and then optimize them.

  • http://twitter.com/shirtsofholland ShirtsofHolland.com

    the storage engine for the table doesn’t support repair.

    Isnt this std for innodb. Can we turn repair on?

  • w m.

    curious if the Magento Community version can support a site with little traffic but 1 million SKUs. also it will be running on shared hosting. not that much information per record, in fact less than 5% even have images. thanks.

    • http://twitter.com/TroyGlancy Troy Glancy

      Not sure you already have it done but most of the performance will rely on the host. Now with that many skus, I would suggest having enterprise edition so you can have direct support with Magento.

  • shirtsofholland

    How does DB repair do something? I always receive the message InnoDB does not support repair.

  • http://twitter.com/shirtsofholland ShirtsofHolland.com

    What should realpath_cache_size be when APC is installed? Does it still have effect?

    If anyone has a similar set-up: Mage 1.7 + APC + MEMCACHE. I would like to exchange configurations and experiences. Thanks

    • http://twitter.com/yireo yireo

      Though it sounds like the functionality of realpath-cache and a PHP-accelerator is similar, to my understanding it is not. With the realpath-cache PHP keeps track of the filenames needed, so that include_once() and require_once() are optimized (for instance). However, APC much more operates on the level of caching the actual PHP-code. So the whereabouts of a file is tracked using realpath-cache, the actual contents are optimized through APC. We have tested some things using both APC as memcache, and then having realpath-cache set to small or large – the results were better when realpath-cache was large.

      • http://www.gxjansen.com/ Guido Jansen

        Thx for clearing that up Jisse!

  • Organic Shop

    Excellent and very useful. Bookmarked.

  • lolz

    after several years with Magento I say one thing – it’s crap. VEEEEERY Slow, hard to customize, no responsiveness support. There are better solutions and easier to make.

    • gondoSVK

      name some

    • Hashid Hameed

      After 2 years magento has answered you :-) Magento 1.9 :-)

      • Marcel

        Why is Magento 1.9 the answer?

  • http://twitter.com/therealgoSolid goSolid

    Grate advice! thanks for sharing

  • Pingback: Magento - Snelheid optimalisatie - Internet Miljonair Forum - Alles over Internet Marketing

  • Pingback: Optimization: links & resources | indentity

  • Pingback: Limitations of Magento (And How to Overcome Them) | Redstage Networks

  • robert kent

    Hi Guido,
    I have to agree with the htaccess tweaks you mentioned first and also turning off the log files – I found a lot of our sites were eating into the server storage considerably when leaving log files enabled.

    I’ve done a quick comparison test on a bog-standard 1.7 installation here: Going through the normal tricks and testing the speed in pingdom

    http://www.crearegroup-ecommerce.co.uk/blog/magento-seo/magento-load-speed-comparison.php

    • http://www.gxjansen.com/ Guido Jansen

      Thx for sharing your research Robert!

  • Sankar Datti

    Great Article. Did this article updated one or published on 2010? If yes that’s great. If not kindly update it as per the latest version of Magento, So that it will be very useful for people like me.

    • http://www.gxjansen.com/ Guido Jansen

      Hi Sankar,

      The article was published n 2010 and has been updated regularly ever since so most items should work perfectly fine on the latest Magento versions.

      Good luck!

      Guido

  • Pingback: Hostmethod » Limitations of Magento (And How to Overcome Them)

  • http://www.buraq-technologies.com/ ambreen11

    Magento CMS is really the best for Ecommerce websites. I am going to share this post with my friends as they are in extremely need of this post. Its excellent optimization tips.

  • Pingback: infirock

  • Pingback: Magento en snelheid problemen | Frits Bosschert

  • Wes B

    Hi Guido

    Thanks for the post, I’ve returned to it numerous times since I first found it 18 months ago.

    Have you, or do you know anyone who has used the mag-manager.com tool with EE? We’re tempted, but a little apprehensive.

    Cheers
    Wes

    • http://www.gxjansen.com/ Guido Jansen

      Hi Wes,

      No I haven’t used that before, but seems that performing all actions locally and then uploading it could save some time. Let us know what your experience is if you use it!

  • Pingback: Magento Bolivia | Mauricio Ayllon Desarrollo y Diseño Web Bolivia

  • Pingback: TTFB Improve for Magento site

  • Pingback: How to speed up your magento site | Web4Magic

  • Ken

    “Disable modules that you don’t use: System -> Configuration -> Advanced -> Advanced.”
    The advanced page disables modules output only.

    In order to properly disable a module, you have to set “active” tag to “false” (i.e. false) from:
    app/etc/modules/Example_Module.xml

  • Pingback: Why is Magento so slow? | Miribase Ecommerce Blog

  • Pingback: Ten Must-Have Magento Community Extensions | SojournerWeb Studio

  • Syed

    Hi Guido,

    There is an issue my magento site. XML Feed From External Server Not Full Product Loading into the Front-end of my Site. but it show in the product list of the admin panel. Kindly reply reason for this issue.

    Thank,
    Syed

  • IB

    I am looking to set up a site with about 2,000 categories (with about 200 items in each). Would that make the site run slow?

  • http://www.cloudways.com/ Fahad M Rafiq

    Anyone who’s worked with Magento knows that even on relatively quiet sites, you can experience significant slowdowns impacting sales figures and so on, especially once you have more than even just a few thousand products. To boost magento frontend speed and optimize performance, you need to focus on these 6 important steps.

    Enable output compression

    Enable Expires Headers

    Combine CSS and JS files

    Install Varnish cache plugin

    Parallelize downloads

    Use Memcached

    http://www.cloudways.com/blog/speed-up-magento-frontend-performance/

  • Marcel

    Hi, thanks for the great tips! We have been trying to optimize the frontend & backend experience for a long time now. You should consider adding REDIS caching to you artice, helped us a lot (especially for backend). Further your tips are great, learned a few new tips. Thanks. For the backend you could look into tigermin catalog manager, we use that every now and then, works very fast.

  • http:/kratomgardens.com

    Wow, Thanks for the post!! Very helpfull

  • Monk

    Google’s PageSpeed Module helps too.

  • Monk

    aslo a huge impovment was to change the priority of mysqld