- Make fewer HTTP requests - Reducing 304 requests with Cache-Control Headers
- Use a CDN
- Use a customized php.ini - Creating and using a custom PHP.ini
- Add an Expires header - Caching with mod_expires on Apache
- Gzip components
- Put CSS at the top in head
- Avoid CSS expressions, keep it simple
- Reduce DNS lookups - Use Static IP address, use a subdomain with static IP address for static content.
- Avoid external redirects - Use internal redirection with mod_rewrite, The correct way to redirect with 301
- Turn off ETags - Prevent Caching with htaccess
- Make AJAX cacheable and small
The full talk has details on what all of these mean in practice.
- High Performance Web Sites: Rough Cuts Version
- Rules for High Performance Web Sites
- Image maps
- Speedy Sites with Image Sprites and CSS, CSS Sprites: Image Slicing's Kiss of Death
- inline images: The “data” URL scheme
- Dojo ShrinkSafe
- 10 Status Code Definitions, All 57 Status Codes
- IBM Page Detailer
- Performance Research, Part 1: What the 80/20 Rule Tells Us about Reducing HTTP Requests
- Performance Research, Part 2: Browser Cache Usage - Exposed!
- Performance Research, Part 3: When the Cookie Crumbles
- Performance Research, Part 4: Maximizing Parallel Downloads in the Carpool Lane
- High Performance Web Sites: The Importance of Front-End Performance
- High Performance Web Sites: Rule 1 - Make Fewer HTTP Requests
I recommend the article Speed Up Sites with htaccess caching to reduce the number of HTTP Requests. I also recommend hosting your static cacheable files on a separate subdomain, like static.askapache.com instead of www.askapache.com. You will also need to implement a version control system using mod_rewrite.
June 1st, 2007