Testing Magento performance optimization
As you already know, magento site performance is an important factor. It affects your business in multiple ways such as search ranking, conversion rates, online sales, user engagement, operational costs and usability. It is what defines your online store’s place in search ranking list, and consequently determines the revenue you can expect from your Magento store. Do you remember the proverb ‘If a thing is worth doing, it is worth doing well’? Speaking about e-commerce it can be transformed into ‘If you own an online store, do your best to make it both SEO and user-friendly to get the highest return on investment!’ Do you agree? If the answer is ‘yes’ (something makes us think it is), then keep reading to learn how you can make a Magento speed test and what can save your site from falling to the bottom of search ranking list.
Our company has been working with hundreds of Magento stores, and every time a site grew bigger incorporating greater numbers of products, categories and clients, it became slower and slower. It is especially the case with small businesses that are trying to save money on web hosting. We noticed that not all the companies have expert teams able to optimize Magento and web-servers, and face all sorts of troubles resulting from such a poor management. With this in mind, Plumrocket Inc. Decided to launch a new service to solve the Magento performance problems. To show you how it really works we made a series of tests using a low-budget web hosting to prove that in spite of the budget you have you can get a fast Magento store.
We aim at optimizing the web server and magento performance to turn your regular webhosting into “magento optimized hosting”. The expected outcome is that magento site speed should increase multiple times as we optimize the web server and Magento CE. The progress will be displayed step by step depending on either the “Startup” plan, the “Premium” plan or finally the fastest “Professional” plan of our magento performance optimization service is used.
For our testing purposes we decided to use Digital Ocean web hosting with the following configuration:
- 2 CPUS: Genuine Intel QEMU Virtual CPU version 1.0 – 2 x 2.4GHz
- RAM: 2GB
- STORAGE: 40GB SSD DISK
The following software was installed on the magento performance testing server:
- Operating system: Centos 6.5 x86
- Nginx 1.0.15
- Mysql 5.6.16-64.2-56 for Linux on i686
- Percona Server (GPL), Release 64.2, Revision 569
- PHP 5.5.10
- PHP-FPM 5.5
- Varnish (varnish-3.0.5 revision 1a89b1f)
- Redis server 2.4.10
- Magento Community Edition 1.8.1
- Magento Sample Data 126.96.36.199
- Turpentine Varnish Cache Extension 0.6.0
In all our tests we will be using only one webserver with all software components installed: Nginx, Mysql, Varnish and Redis. We specifically didn’t want to use separate database server or cache storage as many startups cannot afford these configurations. However as your company grows it is recommended to obtain separate application servers, database servers, cache storages, load balancers, etc.
There is a number of website speed testing tools that can be used to test magento speed:
- Web Page Test
- Google Page Speed
- Mage Speed Test or Siege Tool(for advanced users)
- Firebug or Chrome Developer Tool
- Yahoo Yslow
We have selected only four testing tools for our next tests: webpage test, google page speed, siege tool and google chrome developer tool network tab. By combining multiple tests from different tools and locations around the world we can get the most precise and objective speed index value.
Testing the Standard Configuration vs Optimized Magento
As a starting point for all our tests we used the default (clean) installation of Magento CE 1.8.1 with sample data and all default webserver settings without any kind of optimization involved. This is usually what you get after purchasing a new webhosting. Then, we have performed a number of optimization techniques to speed up magento and optimize the webserver step by step using Magento Speed Optimization Service from Plumrocket.
The testing was performed in 4 steps:
- Regular Magento without any optimization was installed and tests were performed
- Then we optimized the server configuration and magento according to our “Starter” magento optimization service and performed new tests. Here is a full list of what was done:
- Merged and cached CSS and JS
- Magento Flat Catalog, Magento Compiler, Magento Cache setup
- Apache .htaccess or Nginx virtual host optimization
- PHP tuning and configuration
- MySQL server tuning
- Database tables and Magento logs clean-up
- Content Delivery Network (CDN) setup for static content
- HTML Minify
- Another round of optimization was done using the “Premium” magento performance optimization package and new tests were performed again.
- Software installation and setup of Nginx + PHP-FPM + APC opcode cache + Redis
- Dedicated Database Server setup (not used in this test)
- Magento cache storage and session cache storage relocation
- Magento block cache optimization
- And finally, we have performed all steps from “Professional” magento performance optimization service and again re-tested our testing magento site.
- Varnish software installation and Turpentine extension setup
- Magento store code modification to support Varnish cache and Turpentine cache policies
- Varnish cache warm-up tool installation
- Percona MySQL Server Installation
The following graphs are created based on the data received from our tests. They illustrate how each optimization step influences the webserver response time, overall magento page load speed, the number of magento store transactions and page optimization index.
Not surprisingly, magento performance optimization plans produced a very distinctive picture of how each plan can speed up magento. As you can see, even magento sites optimized with “Starter” plan can produce page speed increase of up to 30% faster page load time. This is a huge jump for any site since every millisecond counts in today’s e-commerce world.
But that’s not all. Three previous tests were performed to give you an idea of how fast is the website for one single user at a time. But what happens if you have many visitors browsing your store? How about a sudden increase of traffic after a massive email marketing campaign has been launched? Will they be able to view your store at the same speed as one user? The answer is of course ‘no’. The more visitors you get, the slower your website becomes. And that’s when the website cache plays a big role. Therefore, the following tests were executed to simulate magento store performance under high traffic.
Measurements were taken and recorded twice for 10 and 30 concurrent users at a time (which equals to 1000 and 2000 visitors daily respectively). You can calculate your average number of concurrent users on the website by dividing the average number of visitors per hour by average visit time.
Summary: Results & Recommendations
As you can see magento sites optimized with the “Starter” plan are a must for any magento site owner. This plan provides a quick speed boost of up to 30% and is a good start without any major server software installation or extra coding involved.
Magento sites optimized with the “Premium” plan provide a very good server response time of less than 0.9 seconds and 2128 transactions by 10 concurrent users on the website. This plan uses APC opcode cache and Redis back-end caching to improve site speed. Now that’s almost 330% increase in speed compared to non-optimized magento site!
However, if your store is constantly under high traffic and requires even more speed, then we recommend using Varnish proxy cache with Percona Mysql Database for the fastest performance. This is why we created the “Professional” magento speed optimization plan. Our tests show that under this plan, the server response time is as low as 0.25-0.5 seconds with 4385 transactions executed by 30 concurrent users, which is almost 11 times (1100%) faster than a regular magento setup!
No matter what your choice is – you can always upgrade to the next available speed optimization plan as each next plan includes the previous one. That’s why it is easy to try and, if you believe your site is not fast enough, proceed to the next available option.
We have optimized our magento extensions store a month ago and today decided to check the data received from our tests statistics. We compared the numbers we had a month ago with those received after the optimization. Please note that we have not changed anything else on the store within these two months which makes the data very accurate. The results were amazing. In just one month after the site speed was increased we received the following stats:
- The number of Sessions increased: +37%
- The number of unique Visitors increased: +39%
- Page Views increased: +65%
- The number of Pages per Session increased: +20%
- Average Session Duration increased by: +5%
- Bounce Rate went down by: -6%
This data gives you one more real life proof how magento speed can influence your business.
Let us know if you liked this blog post and share your story in the comments section below.