Waterfalls 101: How to understand your website’s performance via waterfall chart
9 Jul 2010
[This post later served as a jumping-off point for a 30-minute webinar: Waterfalls 101: How to read a waterfall chart]
I keep running into executives who are being presented waterfall charts and don’t know how to interpret them. Today I thought it would be a good idea to take a bird’s eye view of a typical performance waterfall – pre- and post-acceleration – that you can take away for your own reference or pass along to anyone you think could benefit from having this information.
(If you’re technical, live and breath waterfalls, and never plan to speak with an executive, stop reading now.
)
Waterfall charts are diagrams that let you visualize data that is generated cumulatively and sequentially across a process. In the case of performance waterfalls, they let you see the series of actions that occur between a user and your server in order for that user to view a specific page of your site.
Here’s what a waterfall looks like for a site* that has not been optimized in any way:
To the uninitiated, this is a mess. For now, it’s sufficient to understand that each of the rows represents a different object – including text, image, Javascript files, etc. – that the page contains. Depending on whom you ask, the average web page contains anywhere between 44 and 75 objects (including text, images, and Javascript). Each of these objects makes its own roundtrip between the server and the browser.
Now let’s go in for a closer look:
Each of the colored bars represents a different activity that happens as the object is delivered to the user’s browser:
Dark green = DNS lookup
This is when the browser looks up the domain of the object being requested by the browser. Think of this as asking the “phone book” of the internet to find someone’s phone number using their first and last name. You can’t do much about the dark greens bars and they should not be a problem on most sites.
Orange = TCP connection
Also called the “three-way handshake,” this is the process by which both the user and the server send and receive acknowledgment that a connection has been made and data can begin to be transferred. It’s sort of like how CB radio users start a conversation:
“Breaker 1-9. This is Bluebeard. Anyone out there read me? Over.”
“I read you, Bluebeard. This is Jolly Roger. Over.”
“Okay, let’s QSO.”
(Important note: Everything I know about CB slang I learned from watching The Dukes of Hazzard.)
It’s not easy to speed up TCP connection, but you can control how many times the TCP connection takes place. Too many connections will slow down site performance.
Bright green = Time to first byte
This is the window of time between asking the server for content and starting to get the first bit back. Continuing our CB radio analogy, think of this as the interval between asking a question to a friend over a radio and waiting to hear the beginning of their response.
The user’s internet connection is a factor here, but there are other things that can slow things down: the amount of time it takes your servers to “think” of what content to send, and the distance between your servers and the user.
Blue = Content download
This is the time it takes for every piece of content to be sent from the server to the browser. Think of this as the time it takes from the first sound you hear on the radio to the end of the speech from your mother after she broke in on your chat and told you to get off that walky-talky and come down for dinner.
You can speed up content download by making the total amount of stuff you need to send smaller. More on that in a minute.
For now, let’s go back to our mondo chart:
I want you to observe four things:
- The number of orange bars
- The number of bright green bars
- And the length of the bright green bars
- The number of blue bars
These four things show where this site performs poorly. Let’s break it down:
1. Too many orange bars
You can address this problem by having your developers use something called “keep-alives” to reduce the number of TCP connections. (I’m not going to go into keep-alives here, because this post is long enough already. If you want more info, feel free to email me or ask in the comments.)
2. Too many bright green bars
Remember the 75 page objects I mentioned earlier, each one making its own roundtrip? That’s what’s causing all the green and blue bars. This problem can be fixed by implementing performance best practices, such as those identified by YSlow and Google. Among other things, these best practices include consolidating page objects into fewer bundles.
3. Bright green bars are too big
You can fix this problem with a CDN, which will bring your content closer to your users. Chances are, you’re already doing this. Hopefully, this post will help show why CDNs – while a great tool in your toolset – don’t address all aspects of the performance problem.
4. Too many blue bars
Not only are there too many page objects, each of these objects is too large. The average web page is between 320 and 420 kb. In other words, too big. This problem can be partially fixed through implementing the performance best practices suggested above, and partially fixed using something called compression. (Again, contact me if you want to know more about compression.)
So how does a waterfall chart look for a site that has been optimized to follow some of the best practices?** Take a look at these before-and-after charts for the same site:
If you take nothing else away from all this…
Remember that when you’re looking at performance reports for your site, you want to see these five things:
- As few rows as possible.
- As few orange bars as possible.
- Bright green bars that are as few and as short as possible.
- As little blue as possible.
- The “start render” and “document complete” vertical lines to occur as early as possible, and be as close together as possible.
*These charts were done by testing unoptimized and optimized versions of the Velocity 2010 website.
**Site optimization was done using Strangeloop’s cloud-based Site Optimizer service.




Tweets that mention Waterfalls 101: How to understand your site’s performance via waterfall chart — Web Performance Today -- Topsy.com
Jul 09, 2010 @ 17:28:28
[...] This post was mentioned on Twitter by SF Web Perf. SF Web Perf said: RT @strangeloopnet: Waterfalls 101: How to read waterfall charts to understand your site’s performance http://bit.ly/waterfalls101 [...]
Jul 12, 2010 @ 08:32:40
What generated these charts?
Jul 13, 2010 @ 09:30:09
@pgl: We used http://webpagetest.org for all our tests. If you’re not familiar with it, it’s a third-party tool that simulates real user browser environments from locations around the world. To date, it’s the best tool around for getting realistic data.
Waterfalls 401: Advanced analysis for non-beginners — Web Performance Today
Jul 14, 2010 @ 10:48:03
[...] week, I gave a layperson-friendly breakdown of how waterfall charts work. If you want to get into waterfalls in more depth, Strangeloop’s VP Product, Hooman Beheshti, [...]
Page Test Tools: Which results should you trust? — Web Performance Today
Jul 22, 2010 @ 10:07:42
[...] Waterfalls 101: How to understand your site’s performance via waterfall chart [...]
Case Study: How Symantec is showing its visitors the wrong content first — Web Performance Today
Jul 28, 2010 @ 21:06:00
[...] my post on how to read waterfall charts, I touched on the importance of knowing how quickly a page starts to render, because this can have [...]
Bloggers Digest July 2010 « Get Elastic Ecommerce Blog
Jul 30, 2010 @ 02:04:44
[...] you know how to read a site performance waterfall chart? Web Performance Today teaches you [...]
Bloggers Digest July 2010 » Ecommerce Blog
Jul 30, 2010 @ 02:17:49
[...] you know how to read a site performance waterfall chart? Web Performance Today teaches you [...]
Jul 31, 2010 @ 05:48:52
Thoroughly enjoyed that explanation of water fall charts as well as a link to the tools that were used to generate the report. Will go and have further look.
How Fast Is Your Site? We’ll Tell You! | Razor Fast
Aug 07, 2010 @ 20:27:14
[...] what needs improving. The reports will contain a detailed analysis of client-side performance with waterfall charts, header information, file compression details, and much [...]
Aug 09, 2010 @ 10:05:21
@Alfred: Thanks! If you have any questions at all, please let me know.
The three biggest performance problems with third-party content (and how to fix them) — Web Performance Today
Aug 17, 2010 @ 15:51:09
[...] an A/B test of your site, with and without the tool, in a real-world environment. Generate waterfall charts for both tests, and identify how long the third-party objects take to load. Note these [...]
Web Performance Consulting: Five questions for Andrew King — Web Performance Today
Aug 23, 2010 @ 17:17:24
[...] Waterfalls 101: How to understand your site’s performance via waterfall chart [...]
What is dynamic site acceleration? And is it worth paying for? — Web Performance Today
Sep 02, 2010 @ 20:11:54
[...] we look at this from a waterfall perspective, HTML caching will help make the orange bar smaller (initial connection time), make the green bar [...]
Demystifying web performance automation — Web Performance Today
Oct 18, 2010 @ 10:54:28
[...] Waterfalls 101: How to understand your site’s performance via waterfall chart [...]
Almost half of the top 1000 retail sites don’t follow two easy performance best practices. Does yours? — Web Performance Today
Oct 22, 2010 @ 09:52:40
[...] anything less than an A, then take a look at your site’s waterfall chart. (Here’s a quick primer on how to interpret this chart.) If you’re seeing a lot of orange bars, you have a problem [...]
Performance in the cloud: How do we retain control and visibility? — Web Performance Today
Jan 21, 2011 @ 12:22:47
[...] Waterfalls 101: How to understand your site’s performance via waterfall chart [...]
Review: Blaze Mobile performance measurement tool — Web Performance Today
Feb 10, 2011 @ 15:36:05
[...] isn’t in everyone’s skill set. (If you want to add it to yours, here’s a beginner’s guide to waterfall charts.) I also like Webpagetest’s option to view your test results as a filmstrip. This would be a [...]
WatchMouse Weekly #3: Getting more out of Loads.in | Mouse in the House
Mar 08, 2011 @ 06:47:36
[...] How to understand your site’s performance via waterfall chart [...]
Revisiting the performance equation — Web Performance Today
Jun 30, 2011 @ 23:38:41
[...] for resuscitating this performance equation is because some people have a hard time visualizing waterfalls, and I have found that an equation [...]
Fourth-party calls: What you don’t know can hurt your site… and your visitors — Web Performance Today
Jul 14, 2011 @ 20:56:30
[...] you’re new to reading waterfalls, here’s a quick primer. If you’d rather skip the primer, here’s a quick [...]
A non-geeky guide to understanding performance measurement terms
Mar 11, 2012 @ 05:36:46
[...] Waterfalls 101: How to understand your website’s performance via waterfall chart [...]
Can swing voters be swung on web performance? If so, which candidate would take the election?
Nov 02, 2012 @ 12:53:49
[...] representing a unique page element. If you’re not familiar with waterfall charts, I recommend this layperson-friendly primer, but for our purposes today, it’s enough to know that the purple bars all represent SSL [...]
Performance 101: An opinionated guide to the 22 links that every developer should read
Jan 31, 2013 @ 09:43:33
[...] First, you can’t be in this business unless you know how to read a waterfall chart. Our VP Product, Hooman Beheshti, breaks it down really well in this recorded webinar. (If you want the written version instead, there’s a post here.) [...]