As responsive web design handles the most pressing problems associated with mobile browsing, the next trend in our industry will center around performance. We are going to see a growing focus on squeezing every last ounce of speed out of our sites and applications which are running on overtaxed wireless networks. The conversation has already begun.
I realize this is not a new problem. Performance concerns have revolved around software since users have been issuing commands to computers. What has changed are users’ limits of patience. We’ve always loved instant gratification, but our expectation of what defines fast is – well – getting faster.
This is not just a front-end or back-end issue, either. Every website-creating discipline needs to get into the game, including those involved with hardware, database tuning, web servers, server side languages, JavaScript, and number and size of HTTP requests. Every call that is made back to the server has a cost. This includes third party requests to font services and analytics packages.
Over the last several years, we have gotten off track with regard to performance. We too easily added “just one more” third-party JavaScript feature or full-width image without considering the cost.
Get Out of the Way
I spent several years of my career as a performance consultant within the banking industry. We analyzed each individual request that was made, and this had a huge impact on the performance of the sites and services that we delivered.
We talk a lot in industry blogs about getting out of the way of content. Making users wait for a page load is the definition of getting in the way, and the problem is only going to grow as popularity grows for things such as Apple’s retina display and rich media streaming.
The first step to improving performance is to care. It’s as simple as that. Start by asking some basic questions:
Do you know exactly how many requests your site is making?
How many requests to the database does your CMS or web app make to render your homepage?
What are the page sizes of your site’s major pages?
What third-party services is your site dependent upon? What happens if one of these services is not available? Will your software wait, timeout, or can it move on without these services?
Are you minifying your HTML/CSS/JavaScript?
Are you making use of gzip compression?
What sort of caching solutions are you employing on the server?
Has your solution been load tested? What happens when your site gets featured or linked by someone with high traffic? Will that be a good day or the day you find out that your site/server does not scale?
Obviously, this list is not exhaustive. However, it is a good place to start, and it is worth the effort. Having a well-performing (fast) site will keep your users engaged.
Numbers and Tools
Good guidelines for basic web performance are:
Your page size should be less than 700KB.
Your load time should be less than 1.5 seconds.
Your server time needs to be in milliseconds.
Also check out these tools:
Pingdom - Look under the tools section. The monitoring service is great, but the tools they have are some of the best to begin understanding the performance of your site.
Load Impact - A good web-based load testing solution. For a reasonable fee you can spin up a ton of virtural users. Load script authoring is kept fairly simple, too.