When looking into building an eCommerce site, or any web application for that matter, speed performance is paramount. Site performance is of great importance to conversion and user satisfaction (video) and Google now uses site speed as one of its ranking factors (article). I advise companies about eCommerce every day, and you can be sure that people will always ask about Magento's performance. The myth in the websphere boasts that Magento's speed performance is slow and needs improvement. This is untrue. As a user of Magento, I can attest that not only Magento's speed performs within expected benchmarks for today's internet needs, but that Magento's speed is continuously being improved with the release of every edition.
If you're a developer or consultant, you might find yourself talking to clients about Magento's performance. Let me show you how to educate your clients on Magento performance factors and to show them some benchmarks and examples of speedy Magento shops.
Origin of Magento performance myths
The first pre-stable 1.0 beta versions were focused more on the product functionalities than speed . I'll repeat that. Pre-stable 1.0 beta versions. From 1.0 onwards, speed performance has become priority and shops running on stable version perform perfectly well and with every update - Magento gets more and more optimized for speed.
Implementations in unsuitable environments
It's quite easy for anyone to download Magento and install it on a (crowded, shared) hosting environment. Great for looking at Magento features, not so great when using it as an accurate measurement for performance. Magento can be a perfect solution for many small, medium and (very) large online businesses, BUT you really need to know what your doing. Putting Magento in a shared, unoptimized hosting environment is the equivalent of putting a jet engine in a school bus: it's not going to work (although there's always one exception).
Magento Optimization Area's
There are several factors that impact the speed of your Magento store. Some you can't influence (like the internet connection speed of the visitor) but most, that you can. Keep these in mind when talking to your client and suggest some of them when talking about the choice for hosting, templates or Magento configuration.
- If your client is serious about your online business, don't use shared hosting but get a proper dedicated server instead. I'd also highly recommend seeing a Magento specialized hosting company, they're worth the extra buck.
- If selling international, analyse where most of your traffic comes from and host you server(s) in that country. Additionally, you can also use a global CDN to serve your static files.
Some quick tips:
- Use a lightweight template as basis for your template, like the Blank SEO theme
- Optimize all images: crop whitespace, use png8 or gif, scale images, use image compression and use CSS Sprites
Magento has several settings that can improve performance. For starters:
- Enable all caches
- Use the Flat Catalog (only when you have a very large catalog)
- Use Magento Full Page Caching (Enterprise only)
- Disable layered navigation if you don't really need it
- Disable the Magento log
Maybe the most important one: always test the above tips if it actually works with your setup. Also use services as Google Page Speed extension, websiteoptimization.com or Yahoo Yslow to look for bottlenecks and further improvement areas.
Need more detailed (technical) performance optimization tips about hosting, templates or Magento configuration to make your shop faster? Take a look at my blog post 101 ways to speed up Magento.
Speed records and shops
The Methods and Best Practices for High Performance eCommerce slideshow from Dmitriy Soroka shows some benchmarking of Magento installations with several performance enhancements to show what differences they make. There are some great graphs in there, the optimization with most gain is probably Full Page Caching on page 20. It shows that the homepage of a Magento shop with 80k products and 500 concurrent connections can still handle 400+ http request per second.
The research from Dmitriy also shows that Magento scales really well when using more core processors (slide 25) or using multiple web nodes slide 27 (front-end servers). As you can see in slide 28, a Magento checkout page from a store with 10k products and 100 concurrent connections can process 80,000+ orders per hour (22 per second).
Some Magento examples
Here are some real life examples of quick Magento shops:
I hope this helps you in your daily work with Magento. Let me know in the comments if you have any additional tips from your experience with clients.
Have any ideas of your own? We'd love to hear your thoughts. Leave a comment or join the Magento performance and optimization group.
PS: With thanks to Yoav Kutner for the Schoolbus Video
Guido Jansen, our guest blogger, is a cognitive ergonomist from The Netherlands. He helps companies build their online business through conversion optimization, usability testing and his knowledge of the Magento platform.