Note: for those who ask 'why bother?' he has a companion post on his blog with the question answering title: Fast pages convert 2x better, 31-March-2011.
His list (without elaboration - go read it, go print it out, GO!)
DO NOT blindly follow the above - treat it as a resource to research and UNDERSTAND why, where, and when certain actions might be appropriate for your circumstance.
1. Put your images on a separate domain.
2. Or, just put your images on Flickr and use them as your separate domain.
3. Compress images using the right file type.
4. Resize images before you upload them.
5. Learn to write decent code.
6. Put your CSS in separate .css files, not embedded in each page.
7. Split up your CSS.
8. Learn to use CSS.
12. Chuck the Flash. If you must use Flash, then use it only in small nuggets on the page.
13. Set up GZIP compression on your web server.
15. Minimize redirects.
16. Fix canonicalization issues. ‘Fix’ does not mean ‘use rel=canonical’.
17. Invest in decent hosting.
18. Set up caching on your server.
19. Go static.
20. If you’re working in .NET, learn to compress the VIEWSTATE variable.
21. Correctly configure your server’s memory management.
22. Put your database on a separate server.
23. Learn to use JOINs.
24. Learn to use stored procedures.
25. Don’t use SSL unless you have to.
26. If you’re on Apache, load only the modules you need.
27. If you’re on Apache, learn to use AllowOverride, when you really need DNS lookup, and other tips like FastCGI.
28. If you’re on Internet Information Server (IIS), learn performance logging. Then learn your way through the fun, fun, world of IIS tuning.
29. Learn to use a server accelerator like Squid, or to use Apache or nginx as a caching proxy.
To compliment and extend Ian's list:
* Best Practices for Speeding Up Your Web Site, 35 best practices in 7 categories from Yahoo! Developer Network.
To help pinpoint areas to improve:
* Yahoo! YSlow Firefox add-on for FireBug tool.
* Google Page Speed, the Web Performance Tool and Apache module.