2010 update:
Lo, the Web Performance Advent Calendar hath moved
Dec 3 This is the third in the series of performance articles as part of my 2009 performance advent calendar experiment. Stay tuned for the next articles.
There's a number of performance rules and best practices that every web developer should know. Some of them are really simple and straightforward - like turning on compression for example. It's so simple it's a sin not to do it. Actually someone from Google search (Kyle Scholz or Yaron Friedman) said that every extra byte you send over the wire is a disservice to your user. I loved this way of putting it.
BTW, I myself am guilty of not turning gzip on this blog, I also don't have a favicon which causes a bunch of 404s every hour, and there's other mistakes. But that's intentional - I want to show that everyone has room for improvement, no matter how big or small a site, no matter if there's a budget for CDN or not. Fast and pleasurable experiences are not reserved for big sites with millions to invest. Many of the performance optimizations are straightforward and within every developer or sysadmin's reach.
Online resources
The place to start learning about performance best practices is the performance section of the Yahoo! Developer Network site. The list of best practices may look overwhelmingly long, but you don't have to do everything at once, pick one low hanging fruit, fix, improve, rinse and repeat.
The description of Yahoo!'s best practices may be a little high level, so I've written some time ago an article on SitePoint that aims to present some of those practices with more concrete steps. For example how to configure gzip when you deal with shared hosting providers that run different versions of PHP and Apache and with different set of restrictions. (Some ISPs are really overly restrictive. If yours is - time to change them. Here's a list questions that your ISP better answer YES to)
Another great place to read up on performance best practices are these two sections in the Google code site - PageSpeed best practices and there performance articles.
Books
If you prefer to cuddle with a good book, O'Reilly has a pretty decent collection of performance titles.
- High Performance Websites (a.k.a. The Bible 😉 ) by Steve Souders is the place to start. It covers the first 13 of Yahoo's best practices but with much more detail than the Yahoo! Developer site. Concise and to the point, highly recommended.
- Even Faster Web Sites is the second book by Steve Souders and it's probably a little more advanced than the first. I am also a contributor to this book, I wrote the chapter on image optimization together with Nicole Sullivan. Being a co-author prevents me from gushing this book too much without sounding like an infomercial dude. But hey, just look at some of the other contributors - Douglas Crockford, Nicholas Zakas, Dion Almaer and Ben Galbraith from Ajaxian...
- High-Performance JavaScript is a new title, still not published, where I also contributed a chapter. The book's author is Nicholas Zakas with contributing authors including Julien Lecomte (of YUICompressor fame), Matt Sweeney (YUI3 architect), Ross Hermes (also author of "Pro JavaScript Design Patterns" and Flickr front-end). With an all-star team of contributors and reviewers, you can expect this to be a valuable read.
- Website Optimization by Andrew King is half about performance and half about SEO and conversions. But SEO is also good. Andrew has a very scientific and diligent approach and that's refreshing to see when it comes to SEO.
Community
There's two places to hang out online and ask performance questions and learn from the community:
- The Yahoo! exceptional performance group
- The Google "let's make the web fast" group
Blogs
And then there's blogs. There's quite a few of them.
I tried to assemble today a nice list of performance blogs (and I'm sure I've missed some). Shoved them into a Yahoo! Pipe and did a quick UI with JavaScript to show the posts tail from all the blogs.
So, ladies and gentlemen... announcing...
Planet "Performance"
It's available here - http://www.perfplanet.com/. This site shows the last 20 posts from all the performance blogs I managed to collect.
If you're not much of a browse type of person, the RSS feed for the planet is right here.
If you see something broken on the site, please let me know.
Also if you know of (or run) a blog that talks about performance from time to time, please let me know too so I can add it to the planet.
Thank you
And happy reading!
Comments? Feedback? Find me on Twitter, Mastodon, Bluesky, LinkedIn, Threads