YSlow is a plug-in for Firefox that is integrated with the Firebug web development tool.  The plug-in evaluates a web page and provides a score based on 13 criteria.

  1. Make Fewer HTTP Requests
  2. Use a Content Delivery Network
  3. Add an Expires Header
  4. Gzip Components
  5. Put CSS at the top
  6. Move Scripts to the Bottom
  7. Avoid CSS Expressions
  8. Make JavaScript and CSS External
  9. Reduce DNS Lookups
  10. Minify Javascript
  11. Avoid Redirects
  12. Remove Duplicate Scripts
  13. Configure ETags

Some of these items rely on the developer's rewriting the code such as putting CSS at the top, moving scripts to the bottom, and avoiding CSS expressions; while others can easily be solved with an application delivery controller

In previously blog posts I've talked about  gzip compression which can be configured on an application delivery controller.  Advanced features such as an iRule can be used to re-write HTML to eliminate duplicate scripts.  And finally an acceleration solution will assist with setting expires headers, configuring ETags, and making fewer HTTP Requests.

The one item above that I would put a caveat on is to reduce DNS lookups.  Yes having content from 10 different domains or advertisers is going to hinder the performance of a page.  However, when dealing with a high latency link and a page that has more than 50 items splitting those items across multiple domains is going to improve the download time.  Moving the content across 1 or 2 additional domains is going to be beneficial.  Downloading content in parallel can improve the performance just be prudent and keep the number of domains at a minimum.