Friday, June 18, 2010

Costs and Benefits of Website Performance Optimization

My last post covered the how, and supplied just enough explanation of the benefits to keep people interested. Here I will try to go in depth with my analysis of the costs and benefits of the website performance optimization steps I have taken this week.

Costs

I spent the better part of 4 days this week focusing on site performance enhancements. Since we launched the new site in November of last year, I may have spent as much as another 4 days on similar tasks. That time would have been spread out an hour here and there rather than devoting most of a work week to it. Let’s say in total I’ve spent 2 work weeks setting up these various tweaks. Setup is a one time cost.

Some of the costs stretch back to developing the redesign. It took a lot more time to separate content, presentation, and behavior than it would have to just export from Photoshop to Dreamweaver and push the results up the server. At the time I was thinking more in terms of quality than performance. But it would paint an incomplete picture to ignore that end of the equation. There are benefits above and beyond performance for that sort of attention to detail as well. The overall code footprint for the new site is about 4% that of the old site, and normal site maintenance takes a fraction of the time it once did. I’ve blogged on that topic before, although that entry is on the WordPress server which is currently down for maintenance. (3.0 upgrade! w00t!)

My previous entry included a step by step altered workflow for doing something as simple as adding a new icon to our footer. But to be honest most of the extra steps are trivial. A couple of extra “Save As” in DreamWeaver and minifying the results. These things take seconds or even a fraction of a second. That’s nothing compared to the normal edit/test/debug/publish cycle. Occasionally we’ll hit an image sprite edit that will be complex. But most of those will be as simple as sticking the new element at the bottom of the existing file and saving under a new version number. I’d be hard pressed to assign a number to this cost. As a percentage of my time, it’s probably somewhere in the single digits, low single digits at that.

Costs in a Nutshell

Two weeks up front to set up. Another two to four weeks per year in recurring maintenance costs. And the human capital investment to have the people around to pull it off. (That means pay enough to hire someone who knows what they are doing, or put forth the time and effort to educate yourself.)

Benefits

To gauge our progress, I ran tests on WebPageTest.org as I completed each website performance optimization milestone. Full results for each test are publicly available and linked from a previous post.

As a sample, I selected 3 pages. The home page represents only itself, but alone it accounts for 35% of our page views. The Current Students page represents our role based navigation pages and the A to Z index. These are only 6 such pages, but together they account for another 28% of our page views. The Library home page represents around 250 department/office home pages which taken together account for about 21% of our page views. I didn’t worry about the remaining 16% of our traffic since it’s distributed across about 1,000 other pages.

Definitions

Start Render

The time it takes for the browser to receive enough information to start rendering the page. In other words, time our users spend staring at a blank screen.

Load Time

Time spent loading all requests, including AJAX calls made after onLoad (when the status bar says “Done”) For us this includes loading Google Analytics.

Total Requests

The number of calls between the browser and the web server. Think of the server as something like a switch board operator answering around 7 calls per second, non stop. Each request is one of these calls. Our server must get really annoyed with us.

Total kb

Total kilobytes transferred throughout the entire process. This should translate directly to bandwidth cost savings.

Estimates & Assumptions

Based on Google Analytics data collected over the past 7 months, we average around 3,000,000 page views per year. Traffic calculations for the pages represented by our test sample are outlined above. Approximately 25% of our page views are from first time visitors, placing the other 75% into the repeat views category.

Home Page

First Visit

3,000,000 total page views times 35% represented in sample times 25% first time visitors = 262,500 per year.

Metric Monday’s Test Thursday’s Test Difference Percent Change Yearly Savings
Start Render 1.089s 0.854s -0.235s 21.579% decrease 0.7 days
Load Time 6.350s 4.250s -2.1s 33.071% decrease 6.4 days
Total Requests 41 26 -15 36.585% decrease  
Total kb 524 389 -135 25.763 % decrease  

Repeat Visit

3,000,000 total page views times 35% represented in sample times 75% repeat visitors = 787,500 per year.

Metric Monday’s Test Thursday’s Test Difference Percent Change Yearly Savings
Start Render 0.920s 0.523s -0.397s 43.152 % decrease 3.6 days
Load Time 2.572s 1.462s -1.110s 43.157 % decrease 10.1 days
Total Requests 38 4 -34 89.474 % decrease  
total kb 59 52 -7 11.864 % decrease  

Current Students Page

First Visit

3,000,000 total page views times 28% represented in sample times 25% first time visitors = 210,000 per year.

Metric Monday’s Test Thursday’s Test Difference Percent Change Yearly Savings
Start Render 1.075s 0.785s -0.290s 26.977 % decrease 0.7 days
Load Time 7.162s 4.342s -2.820s 39.374 % decrease 6.9 days
Total Requests 38 26 -12 31.579 % decrease  
Total kb 521 382 -139 26.679 % decrease  

Repeat Visit

3,000,000 total page views times 28% represented in sample times 75% repeat visitors = 630,000 per year.

Metric Monday’s Test Thursday’s Test Difference Percent Change Yearly Savings
Start Render 1.222s 0.519s -0.703s 57.529 % decrease 5.1 days
Load Time 2.625s 1.475s -1.15s 43.81 % decrease 8.4 days
Total Requests 35 4 -31 88.571 % decrease  
Total kb 66 63 -3 4.545 % decrease  

Library Home Page

First Visit

3,000,000 total page views times 21% represented in sample times 25% first time visitors = 157,500 per year.

Metric Monday’s Test Thursday’s Test Difference Percent Change Yearly Savings
Start Render 1.379s 0.943s -0.436s 31.617 % decrease 0.8 days
Load Time 4.994s 4.983s -0.011s 0.22 % decrease 0.02 days
Total Requests 33 22 -11 33.333 % decrease  
Total kb 470 369 -101 21.489 % decrease  

Repeat Visit

3,000,000 total page views times 21% represented in sample times 75% repeat visitors = 472,500 per year.

Metric Monday’s Test Thursday’s Test Difference Percent Change Yearly Savings
Start Render 1.249s 0.515s -0.734s 58.767 % decrease 4.0 days
Load Time 2.266s 1.472s -0.794s 35.04 % decrease 4.3 days
Total Requests 30 3 -27 90.000 % decrease  
Total kb 70 80 +10 14.286 % increase  

Benefits in a Nutshell

Over the next year, visitors to our site will spend about 15 fewer days staring at a blank screen waiting for our server to respond and about 36 fewer days waiting for our pages to completely load.

No comments: