In my first book, High Performance Web Sites, I presented 14 rules for making web pages faster. I’ve got some good news and some bad news. Bad news first: there are more than 14 things you have to do to speed up your pages. The good news is I’ve started another book that describes more best practices for web performance. The working title is High Performance Web Sites, Part 2. Here’s the set of rules I have so far:
- Split the initial payload
- Load scripts without blocking
- Don’t scatter scripts
- Split dominant content domains
- Make static content cookie-free
- Reduce cookie weight
- Minify CSS
- Optimize images
- Use iframes sparingly
- To www or not to www
As I finish chapters I’ll talk about my findings at conferences. My slides from Web 2.0 Expo last week contain information about the first three rules. In the future I’ll be speaking at Google I/O, Velocity, OSCON, and The Ajax Experience, so please come see me if you’re there. Also, I’ll write a blog post about each chapter. (Posts on Rules 1-3 are coming soon.)
The book should be out in early 2009. As I continue my research on web performance here at Google I’ll come up with another 5-10 rules to include. But I also wanted to ask you for suggested rules. What do you think is the performance killer for your web app? Better yet, what performance best practices have you discovered? For example, I think 3rd party rich media (Flash and JavaScript) ads are the long pole in the tent for many sites, and knowing the best way to embed widgets is growing more and more important. If you have a suggestion for a performance rule add it in a comment below and I’ll check it out.
OK, time to put the nose to the grindstone.
Tom | 01-May-08 at 5:47 am | Permalink
Two suggestions to refine your writing.
Most of your comments and ideas have to do with large sites and with developers who understand and work with Ajax complexities etc.
Please add commentary for people with smaller sites by people who are not developers.
Second thing — ASP.NET sites are terrible for startup. Suggestions specifically for ASP.NET sites (e.g. DNN is terrible!!) in addition to implementing some kind of keep-alive mechanism that periodically pings an ASP.NET site, in addition to all your other goodness, would be appreciated by many.
Thank you, Tom
Andy | 06-May-08 at 9:47 am | Permalink
I’d tend to disagree about the value of ASP.NET specific information. One of the values of this type of info. is that its applicable to any server environment (ASP.NET, PHP, JSP, etc.) because it’s speaking directly to the ‘three legged stool’ of web development: HTML, ECMAScript, and CSS.
Thanks for all the hard work, Steve.
-Andy
Steve | 06-May-08 at 11:01 pm | Permalink
Steve love your work it has made a big difference in speed and performance of the sites I am responsible for. How about looking at some of the performance aspects of .htaccess stuff like directoryindex order (i.e., htm or php first), and having one .htaccess file or one in each directory. Perhaps you could get into a way to do this as part of a build process using phing or ant.
Bryan | 07-May-08 at 10:04 pm | Permalink
We have been expanding our use of JSON on our site (ex. product infomation). One topic could be about using a CDN to serve this type of content in addition to all of your static content. Another topic could be the performance implications with using eval() to compile the JSON string into an object.
Ben Livshits | 15-May-08 at 9:25 am | Permalink
Doloto now has its own page:
http://research.microsoft.com/projects/doloto/
-Ben