Faster is better

Through a presentation from Nicole Sullivan, a former member of Yahoo’s Exceptional Performance Team and co-author of O’Reilly's upcoming book on performance optimization, I came across the following data points:

  • Amazon: 100 ms of extra load time caused a 1% drop in sales. (Source: Greg Linden, Amazon)
  • Google: 500 ms of extra load time caused 20% fewer searches. (Source: Marrissa Mayer, Google)
  • Google: trimming page size by 30% resulted in 30% more map requests. (Source: Marrissa Mayer, Google)
  • Yahoo!: 400 ms of extra load time caused a 5 to 9% increase in the number of people that clicked "back" before the page even loaded. (Source: Nicole Sullivan, Yahoo!)

While we all knew this was true (and while I'd like more detail on these tests), it is nice to have some quantitative data from different sources. Long story short: even the smallest delay kills user satisfaction. Let's make Drupal even snappier! (Hat tip: Peter Van Dijck)


Alexander Langer (not verified):

Well, there is a great bunch of stuff that you can take out of all those tips (thanks for sharing, Wim) that you can achieve on a theme design / development level. Stuff like putting all all you JS right before the closing body tag isn't rocket science and is a step in the right direction.

There's still enough other things left to implement on a core basis like out-of-the-box support for CDNs.

Always good to know about your (Drupal's) strengths, even better about weaknesses and best to know how to get around them.

Daniel Hahler (not verified):

I really like the impact of putting all CSS and Javasript files (and inline snippets) in two "resource bundles" (one for JS and another for CSS).
Those get minimized of course and this results in a lot less to download (and especially less latency, since fewer HTTP requests are required - even if the response may have "just" been 304-Not-Modified).

A proof-of-concept (which I've written for b2evolution, but may be incorporated in other projects, like Drupal) is available in my b2evolution development branch.

I see that you're doing this for your CSS already, but the same can get applied to JS, too.

Of course, those bundles may get added to a CDN then, too, but I have not experimented with this.

I'm looking forward to seeing this integrated in Drupal, since it would mean to make the whole web a bit faster.. :)


We have this feature, both for JS and CSS, in Drupal core already. :)

Greg Linden (not verified):

Thanks for summarizing the talk, Dries. That Yahoo A/B test was news to me.

Great to see that everyone is looking at the impact of speed on usability and perceived quality.