This Simple Optimisation Technique Improves Magento Page Performance by 1,000x

This simple technique is proven to increase performance of static and frequently viewed pages on Magento websites by more than 1,200 times. Have you implemented it already?

Magento is one of the most commonly-used e-commerce platforms worldwide, but as we know, it’s also one of the most complained about.

The reasons why retailers and other e-commerce businesses may have a bone to pick with Magento can be many and varied, but they often come back to the fact that, out of the box, Magento’s software isn’t particularly well optimised for performance – and figuring out how to fix it can be costly.

However, the fact remains that Magento really is one of the most powerful platform solutions due the wide range of customisation options, extensions and plugins that are available to help tailor the software to your needs. For this reason, identifying fast and effective ways to optimise the platform is integral to your business’s success.

Recently, Macquarie Telecom performed a simple experiment that identified exactly which one of these techniques retailers should consider to get the best value for their time. By adding a front-end caching mechanism – Varnish – and optimising the server stack to take advantage of it. Macquarie Telecom was able to improve the sample web page performance by more than 1290 times the standard installation speeds.

Want to learn more about simple techniques to drastically improve performance on your Magento website? Join us at 1pm on Thursday, April 10 for a one hour webinar presentation on the subject.

What is a Front-end Cache?

Magento Engineer for Macquarie Telecom, Mike Lynch explains front-end caching as it applies specifically to Varnish.

“Correctly configuring Varnish and Magento to work together allows static and frequently viewed dynamic pages to become cached and rendered to the browser much faster as a result,” Lynch explains. “Serving frequently viewed pages from the cache takes the PHP load off the server, meaning your website can handle more concurrent users as well as more transactions per second without the need to increase hardware resources.”

Control Testing for Performance

As described in Macquarie Telecom’s blog on the matter, the company went about creating two sets of identical server resources, before installing Magento Community Edition 1.8.

“The control system was left un-optimised, but had Magento settings tuned to allow for maximum recommended performance settings,” Lynch tells us. “Meanwhile, the test system was optimised and set up to use Varnish as a front-end cache system, tied to Magento’s built-in cache management.”

The systems were each pre-loaded with 2,000 dummy users and 10,000 sample products. Then, using the Siege HTTP load testing and benchmarking utility, each system was tested a number of times in four specific scenarios (see Macquarie Telecom’s blog for details on each scenario). The test was run on the same server so that network speed and latency didn’t muddy the results, leaving just the server’s own transaction capacity and volume to limit performance.

The Results

“On average, the performance increase was 1291.67 times better than the control for static and frequently viewed pages,” says Lynch. “Given the simplicity of the technique, the return on this particular optimisation far outweighs the trouble it takes to implement.”

As far as ‘low-hanging fruit’ goes, this basic technique could well make out first place on your optimisation ‘to-do’ list, if you haven’t tried it already.

Want to learn more about simple techniques to drastically improve performance on your Magento website? Join us at 1pm on Thursday, April 10 for a one hour webinar presentation on the subject.

 

0 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

[gravityform id="11" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper fix-om-styling_wrapper' id='gform_wrapper_11' ><div id='gf_11' class='gform_anchor' tabindex='-1'></div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_11' id='gform_11' class='fix-om-styling' action='/site-performanceoptimisation/magento-performance-optimisation-technique/#gf_11'> <div class='gform_body'><ul id='gform_fields_11' class='gform_fields top_label form_sublabel_below description_below'><li id='field_11_2' class='gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible' ><label class='gfield_label' for='input_11_2' >Email Address<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_11_2' type='text' value='' class='large' placeholder='Email' aria-required="true" aria-invalid="false" /> </div></li><li id='field_11_3' class='gfield gfield_contains_required field_sublabel_hidden_label field_description_below hidden_label gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' >Name<span class='gfield_required'>*</span></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name' id='input_11_3'> <span id='input_11_3_3_container' class='name_first' > <input type='text' name='input_3.3' id='input_11_3_3' value='' aria-label='First name' aria-required="true" aria-invalid="false" placeholder='First Name'/> <label for='input_11_3_3' class='hidden_sub_label screen-reader-text'>First</label> </span> <span id='input_11_3_6_container' class='name_last' > <input type='text' name='input_3.6' id='input_11_3_6' value='' aria-label='Last name' aria-required="true" aria-invalid="false" placeholder='Last Name'/> <label for='input_11_3_6' class='hidden_sub_label screen-reader-text'>Last</label> </span> </div></li><li id='field_11_5' class='gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible' ><label class='gfield_label' for='input_11_5' >Company / Organisation<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_11_5' type='text' value='' class='large' placeholder='Company' aria-required="true" aria-invalid="false" /></div></li><li id='field_11_6' class='gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible' ><input name='input_6' id='input_11_6' type='hidden' class='gform_hidden' aria-invalid="false" value='NOT PROVIDED' /></li><li id='field_11_7' class='gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible' ><input name='input_7' id='input_11_7' type='hidden' class='gform_hidden' aria-invalid="false" value='NOT PROVIDED' /></li><li id='field_11_8' class='gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible' ><input name='input_8' id='input_11_8' type='hidden' class='gform_hidden' aria-invalid="false" value='NOT PROVIDED' /></li><li id='field_11_9' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_11_9' >Comments</label><div class='ginput_container'><input name='input_9' id='input_11_9' type='text' value='' /></div><div class='gfield_description' id='gfield_description__9'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <button type="submit" class="button-3" id="gform_submit_button_11">SUBSCRIBE</button> <input type='hidden' name='gform_ajax' value='form_id=11&amp;title=&amp;description=&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_11' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='11' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_11' value='WyJbXSIsIjRjNDYzMzMwNzM3OTFjM2ZlOGZhNjY2ZDA4ZDVlMDcyIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_11' id='gform_target_page_number_11' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_11' id='gform_source_page_number_11' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_11' id='gform_ajax_frame_11' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 11, 'https://powerretail.com.au/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery('#gform_ajax_frame_11').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_11');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_11').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_11').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_11').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_11').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_11').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_11').val();gformInitSpinner( 11, 'https://powerretail.com.au/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery(document).trigger('gform_page_loaded', [11, current_page]);window['gf_submitting_11'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_11').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_11').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [11]);window['gf_submitting_11'] = false;}, 50);}else{jQuery('#gform_11').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [11, current_page]);} );} );</script><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 11) {if(typeof Placeholders != 'undefined'){ Placeholders.enable(); }} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [11, 1]) } ); </script>