Today everyone seems to be in a hurry, anything they may want, they want it now, they don’t even want to lose a single second. The same issue occurs when people use a Web application, they demand the information that is shown to them is accurate and also presented quickly. On that matter, application’s response times don’t only affect the end-user’s experience, but also the website’s positioning, conversions, and monetization.
Urs Holzle(Google Engineer) gave some statistics to explain why speed is so important:
- When Google search queries slow down a mere 400 milliseconds, traffic drops 0.44%.
- 80% of people will click away from an Internet video if it stalls loading.
- When Edmunds.com reduced loading time from 9 to 1.4 seconds, pageviews per session went up 17% and ad revenue went up 3%.
- Shopzilla dropped load times from 7 seconds to 2 seconds, and pageviews went up 25% and revenue increased between 7% and 12%.
There are many actions that can be taken to improve response times in web applications. I invite you to continue reading a basic proposal structured within three aspects.
- Optimize response times
There are several tools that provide a set of suggestions to optimize response times, for example: PageSpeed Insights, GTMetrix, Yslow, ZoomPF, and DareBoost. In this post I’d like to speak to you about PageSpeed Insights in particular. It is a tool developed by Google, it analyzes the content of a web page, and generates suggestions to improve the speed of the page. However, PageSpeed Insights only takes into account non-network performance aspects. Some of the suggestions of this tool are:
- Avoid landing page redirects
- Enable compression
- Improve server response time
- Leverage browser caching
- Minify resources
- Optimize images
- Optimize CSS Delivery
- Prioritize visible content
- Use asynchronous scripts
More Information Google PageSpeed
2. Perceiving response times
The perception of speed depends not only of the response time in a web application, but also on the type of visual response that the end user receives. If a functionality delays more than average, or the response time is inconsistent with atypical alterations, the user will feel “every second” in this interval. On the other hand, if the functionality presents some visual aid to indicate what is happening, the perception of the response time would be much lower.
- Progress Indicator: It reduces the feeling of waiting and provides realtime feedback to the user, that helps to increase perceived response time.
Another useful technique is the Progressive image rendering: It is when an image is loaded blurred, and then becomes sharper.
A good way to utilize visual aid is with Button States: If the click of a button takes more than 100 milliseconds, the user will feel the wait (Nielsen Group). It is important to add in a design change that demonstrates an immediate response, even if the actual result continues to load.
More Information Books Interaction Design Best Practices
3. Performance testing
To achieve good response times, it is good practice to carry out the performance testing process.By incorporating this process, it is possible to simulate the behavior of an application even without deploying it. One of the characteristics what could be simulated is User Concurrency. This feature has a huge impact on response times, and on the behavior of server resources, like memory, disk, CPU, and network. Among useful tools are: JMeter, BlazeMeter, Gatling, and LoadRunner.
There is an enormous area of study around the optimization of response times. In this post I tried to show a panoramic view of the main aspects. If you are interested in knowing more, I recommend to consult some of the links below: