YSlow rules
- Fewer HTTP Requests
- Use a CDN (closer to client, shared caching)
- Expires/Cache-Control Header
- Gzip
- Stylesheets at Top
- Scripts at Bottom
- CSS Expressions (slow IE6 hack)
- External JS/CSS (performant due to caching)
- Fewer DNS Lookups
- Minify Javascript/CSS
- Avoid Redirects
- Duplicate Scripts (e.g. plugins requesting multiple versions of jQuery)
- ETags (fingerprint for a resource used for conditional loading)
- Cacheable AJAX
note: many of those are contradictory
- 1 vs 8
- 2 vs 9
- 3 vs 13 (do not use 3 and 13)