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.