Slow Page Load Times Plague Top Retailers – Study

By Sam Gopal | 27 Mar 2013

A web performance report issued by Radware reveals page load times for top retail websites have slowed by 22 percent in a year. Best practices must be adopted to stay ahead.

Radware, a provider of application delivery and application security solutions for virtual and cloud data centers, has conducted a survey on retail website performance, highlighting some key findings sure to cause concern for pureplay merchants.

The report revealed website load times for the top 2,000 US retailers surveyed have slowed by as much as 22 percent during the past year. Web performance, particularly page load times, has a significant impact on business metrics including bounce rates, return visits and conversions, and is therefore viewed as a high priority for online retailers.

The report entitled State of the Union: Ecommerce Page Speed & Web Performance, Spring 2013, was based on a two-week study reviewing the home pages of the top 2,000 US retail websites (as ranked by analytics firm The tests were performed using, an open source project simulating page load times from a real user’s perspective.

The findings exposed a serious decline in performance, with slower page load times a major cause for concern among retailers. A contributing factor to this is increased website complexity and size resulting in an 8.22 percent rise in the number of resource requests during the period December 2012 to December 2012. Additional key findings from the report include:

  • Median load time was 7.25 seconds – more than double the average user threshold of just three seconds or less. The gap between user demand and page performance continues to widen. If the current rate of slowdown remains consistent, the median retail page could take as long as nine seconds to load by the end of 2013.
  • The top 100 retailers underperformed the rest of the pack – even though many have made significant investment in support tools. The top 100 sites had a load time of 8.23 seconds, 14% slower than the overall median load time.
  • Mobile shoppers continue to pose a challenge for online retailers. Challenges posed by poorer process power and 3G networks means mobile users are more at risk of performance issues.
  • Firefox outperformed both Internet Explorer and Chrome. Firefox experienced the fastest median load time of 6.64 seconds, with Chrome at 7.09 seconds and Internet Explorer 9 at 7.25 seconds.
  • Many retail websites still do not follow core performance best practices. Only 25% use a content delivery network (CDN), allowing site owners to cache static page resources to shorten server round trips. 13% also fail to enable ‘keep-alives’ and 22% fail to compress resources.

Radware’s Vice President of Application Acceleration, Joshua Bixby, believes the results pose a significant challenge for retailers not only now, but in the future.“The fact the median site has slowed by 22 percent in just one year should be alarming for retail site owners,” he says.

“This is a massive drop in performance. If this slowdown rate goes unchecked, we will see median load times of 9 seconds or more, which is simply unacceptable for online shoppers. As pages continue to grow bigger and more complex, site owners need to take aggressive steps to mitigate this growth.”

Retailers must embrace best practices, including caching, ‘keep alives’ and file compression to improve overall web performance – start render time, document complete and time to fully load – and stay at the top of the pack.

Radware Performance Infographic

Radware infographic on page speed and web performance.


2 thoughts on “Slow Page Load Times Plague Top Retailers – Study”

  1. Consumers want more rich content and media on websites. Video, active graphics, social media feeds and integration all lead to better content but also slower pages. As the article says a solution is a CDN but a good CDN can be expensive for a small to medium sized business and very expensive for a large business. CDN’s can also be challenged by some security technologies.

    So I do not believe that it is anything more than richer and more content.

    The 3 second theory applies to sites found from search or that the visitor does not know. However if the visitor knows the site and has gone there specifically then they will wait but not forever.

    Consumer broadband service speeds have not really increased for a few years. Yet content size and quality has significantly increased. The real solution to this problem is better and faster broadband so where is the NBN. I can’t wait for 100meg bandwidth to my home and office I want it now…..

  2. Chris Morley says:

    i agree with you John – the speeds and service of broadband has remained largely unchanged whilst our thirst for high level content has increased along with more and more plugins for sites.
    Content is King is vital to success – speed of a site is something all online businesses need to monitor.

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='/pureplay/radware-report-page-load-times/#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, '' );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, '' );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>