Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How to Optimize Website Speed for Black Friday 2017

DZone's Guide to

How to Optimize Website Speed for Black Friday 2017

December might seem far off, but Black Friday will be here before you know it. These tips will help you start preparing your site now.

Free Resource

Halloween is here, and before you know it, it will be Black Friday and then, Cyber Monday. These consumer "holidays" bring about the race for shoppers to buy all of the coveted items on their shopping lists before they're all gone. Some deals are so good that items sell out in mere minutes! In these cases, shoppers lose to other shoppers. But, other times, it's major retailers who are the ones that lose out when their site goes down due to a high volume of traffic, forcing their would-be customers to take their business to the next online retailer. In this post, we give our best tips to optimize website speed for Black Friday so that you are technologically prepared for it to be a success!

Run Performance Tests Before the Big Day

Your site may have 5,000 visitors per day without any problems, but what happens when 15,000 try to visit it in one day? In an hour? Performance tests are the best way to know whether your underlying system will or will not be able to support your expected load. Even if you do not know what the expected load is, running performance tests will at least let you know how many users your site can support with the components you have available at the time of testing.

Here is our advice for how to properly run performance tests in preparation for Black Friday:

Allow Time for Testing and Correcting

Don't leave performance tests for one week before Black Friday or after you have noticed your site has suffered problems. Solving these issues takes time, a lot of time! Rather than planning these tests as merely a final check, plan them out with enough time, taking into consideration that you will have to spend time fixing any problems you may uncover.

Assess Your Infrastructure

Decide whether you should increase your infrastructure temporarily to prepare for times like these when the expected user load is much larger than it typically is throughout the year. The cloud can make this easier to do, especially for smaller businesses. It's crucial to be ready and be sure that your auto-scaling policies are optimal, considering performance and costs.

It's advisable to test performance on an infrastructure similar to production or the one you have in production, whichever is the best for the moment in which you run them. Just remember that these tests often try to find the breaking point of the system, and we do not want to find it at the moment when a real customer is in the middle of a transaction. At Abstracta, we typically run these tests during very early or late hours, taking advantage of having a team of performance engineers in a different time zone. A four- or five-hour difference (like that of our testers in Uruguay and our clients in California) is usually more than enough.

Risk-Based Testing

Since Black Friday is just around the corner, you probably won't have time to test the functionalities of your site. This means you'll have to choose the functionality or functionalities that you think will be most used, hence the riskiest if left untested, like for example, the shopping cart and checkout pages. If you do not know which other functionalities are most important, you can use google analytics statistics or access history from logs.

Monitoring

Set up monitors and alerts using a sophisticated tool like New Relic or a simpler, opensource one like Nagios to stay updated on the health of your infrastructure. It's important to monitor all components of your infrastructure, as any of which may become a bottleneck as well as the database. Top SQL transactions should also be under control.

Stay Realistic

Try to run loads that are realistic for your the amount of traffic you expect (or hope) to experience. Testing too small of a load will not leave you well prepared for the actual Black Friday load, while executing an extremely ambitious scenario might leave you needlessly preoccupied over sizing your infrastructure and avoiding a crash when in fact, you didn't have to go through that much trouble.

Now that we have covered server-side performance, these next tips are for optimizing the client side, the website itself.

Optimizing Your Page Speed

According to a Harris 2015 poll, 46% of shoppers have said that they will never return to a slow website. A survey conducted by in 2017 shows that just a 100-millisecond delay can hurt conversion rates by up to 7%.

There are several well-known cases of companies that have boosted their bottom line by increasing page speed. Walmart compared performance to conversion rates and found that the overall average site load time for converted visitors was lower (~ 3.22 seconds) than that of the visitors who had didn't convert (~6.03 seconds). Around the same time, Intuit cut its load time in half for several of its marketing web pages and saw a 14% increase in conversions.

Fortunately, there are several free tools that you can use to quickly speed up load time (leading to higher conversions):

Compressor.io

According to its website: " is a powerful online tool for reducing drastically the size of your images and photos whilst maintaining a high quality with almost no difference before and after compression." We recommend this tool to clients when we send them reports that indicate that they should reduce the size of their images, which have a negative impact on page speed. By reducing the file size of an image, the page is able to load much quicker.

WebPageTest

This allows you to run a free website speed test from multiple locations around the globe. You can use real browsers (IE and Chrome) at real consumer connection speeds. You can run simple tests or more complicated ones including multi-step transactions, video capture, content blocking and much more. The results are very helpful in that they provide diagnostic information including resource loading waterfall charts, Page Speed optimization checks and suggestions for improvements.

SiteSpeed.io

This allows you to run tests locally or as a service on the web. It comes up with a similar report as Webpagetest, but it isn't solely based on the URL you provide, since it has a crawler that analyzes the pages that one might reach.

PageSpeed and YSlow

and are essential for figuring out what exactly is slowing down your website and what to do about it. We enjoy using them because the information presented is very clear and easy to understand for testers and non-testers alike. Detailed explanations are given for why you should make each improvement and how they will be beneficial. These tools can also shed light on optimizations that you weren't aware of before.

Black Friday is the #1 day for mobile shoppers, with the weekend before Christmas a close second. This Akamai study found that mobile accounted for 57% of Black Friday traffic in 2015. We recommend that you use the tool Monkop to test your mobile app for performance, security, and functionality on real devices. In no time, it will send you a report with a list of things you can do to optimize your app.

One last thought... Although we are headed for an intense season for e-commerce, it's always "Black Friday" somewhere! Meaning, it's important to continuously test the performance of your site year round. You never know if a marketing campaign or promotion will result in a flood of customers crashing your site (which may be both a blessing and a curse)!

Are you working within a culture of DevOps? Do you think it's here to stay? Let me know in the comments!

We hope this post helps you optimize website speed for Black Friday!

Topics:
performance ,web performance ,performance optimization

Published at DZone with permission of Sofia Palamarchuk, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}