Amasty team loves testing things out, as in particular cases direct tests are the only way to find out what works best. Today we are going to share some results on Magento store performance with several popular themes and speak on how they influence your site’s speed.
The idea of the tests and this article came to me when I studied the data from xdebug profiler trying to find the reason of a client’s website low performance. I stumbled upon a fact that was worth digging in: a significant part of the request processing was used for running the theme code.
To check these results, I switched to the default theme, and the site speed increased. Of course, it wasn’t a 50% difference, but still it was pretty vivid. Now, here’s the question: how does using of different Magento themes affect the store speed? Do website administrators know about this aspect of choosing a Magento theme?
Get ready for the test
To answer this question, we decided to test a store’s speed with several popular Magento themes. To make the test more intrinsic, we downloaded the freshest Magento community edition (which was 1.9.0.1 for the moment of writing the article) and sample-data (which was 1.9.0.0). It was installed on a server with configuration as follows:
Hardware configuration
CPU: Intel Xeon E3-1270 (3.5GHz, 8 cores)
RAM: 16GB
Storage: 2 x 500G SSD at HW RAID1
Software configuration
Debian Wheezy 7.6 (x86_64)
Apache 2.2.22
PHP 5.4.4 (as mod_php with ZendOpcache 7.3)
MySQL 5.5.38
The test was performed with the help of Apache jMeter following the scenario:
- The website main page is opened;
- The ‘shirt’ search is performed;
- The ‘sale’ category filter is applied;
- ‘Slim fit Dobby Oxford Shirt’ product page is opened;
- The product is added to the cart;
- A switch to ‘Men / New Arrivals’ category is performed;
- ‘Linen Blazer’ product is added for comparison;
- ‘Khaki Bowery Chino Pants’ product is added for comparison;
- The product comparison page is opened.
Each Magento theme was tested ten times with ten simultaneous server connections, and the average number was used as a result. Some themes are built with JavaScript, which may slow the request processing down from a website’s user point of view, but since there’s no clear way to check this with automation testing, we decided to omit this factor in our test and check only HTML generation performed by PHP interpreter.
Note: if you know how to perform the test including the work of JavaScript, please share your experience in comments.
We have chosen these themes for the test:
- Magento Default (was a default theme up till 1.9.x)
- Magento Modern (was distributed separately before, but now it’s a part of Magento)
- Magento Responsive Design (appeared in Magento 1.9.x)
- Ultimo
- Fortis
- HelloWired
To make sure the themes aren’t affecting each other, after each test the website and the database were deleted and uploaded from a backup copy. After that the test was performed once to warm the Magento cache. Apache was reloaded to clean ZendOpcache.
The test consisted of two stages:
- jMeter runs tests of each theme on the server to exclude the factor of data transfer by means of the Internet. This stage shows the highest request processing speed.
- jMeter runs tests of each theme by means of the Internet. In this case the result is affected by the time needed to transfer the data by means of the Internet, and the numbers shown are closer to the situation visible for the website user.
Test results
Server-based speed test results
Default |
Responsive |
Modern |
Fortis |
Ultimo |
HelloWired |
|
Main page |
71 |
71 |
63 |
73 |
84 |
64 |
Search (shirt) |
334 |
327 |
284 |
294 |
308 |
283 |
Apply filter (Sale) |
204 |
181 |
167 |
187 |
186 |
175 |
Product page |
222 |
219 |
183 |
230 |
240 |
197 |
Add to cart |
489 |
525 |
434 |
445 |
443 |
453 |
Category page (New arrivals) |
311 |
433 |
269 |
291 |
299 |
283 |
Add to compare (Linen Blazer) |
438 |
542 |
360 |
378 |
401 |
382 |
Add to compare (Khaki Bowery Chino Pants) |
428 |
544 |
356 |
374 |
391 |
383 |
Compare selected products |
235 |
226 |
201 |
204 |
220 |
201 |
TOTAL |
304 |
341 |
257 |
275 |
286 |
269 |
Internet-based speed test results
Default |
Responsive |
Modern |
Fortis |
Ultimo |
HelloWired |
|
Main page |
492 |
549 |
503 |
880 |
820 |
580 |
Search (shirt) |
795 |
852 |
716 |
970 |
1121 |
816 |
Apply filter (Sale) |
543 |
596 |
535 |
779 |
853 |
616 |
Product page |
612 |
707 |
618 |
1037 |
1050 |
699 |
Add to cart |
1272 |
1391 |
1246 |
1560 |
1687 |
1297 |
Category page (New arrivals) |
765 |
973 |
719 |
969 |
1068 |
818 |
Add to compare (Linen Blazer) |
1059 |
1234 |
1005 |
1255 |
1292 |
1061 |
Add to compare (Khaki Bowery Chino Pants) |
1048 |
1246 |
1003 |
1281 |
1374 |
1044 |
Compare selected products |
642 |
673 |
637 |
724 |
812 |
621 |
TOTAL |
803 |
914 |
776 |
1051 |
1120 |
839 |
As we can see from the charts, the ‘fastest’ theme is Modern, which is now included into Magento package. The slowest one is Ultimo. The difference between Modern and Ultimo performance is 10% in case of the server test and 31% in case of the Internet test.
Takeaway
Of course, making your store as fast as possible is a priority, as speed influences both the search engine rankings and the bounce rate, and people tend to like fast websites more and abandon too slow sites forever.
But we don’t want to talk you out of using ‘heavy’ themes. Great design is also an important factor, and the thing is to find the healthy balance and use a theme that is graphical and convenient enough and isn’t too slow. Performing some tests for the themes chosen maybe a good idea and you need to have a clear understanding of what your Magento store speed consists of.
Have anything to add about various Magento themes performance? Welcome to share your ideas in the comments section.