Even on large banks, I've rarely (can't remember when) done any optimizations on IIS that weren't just the addition of modules. I keep all the defaults.

  • Dynamic and Static Compression
  • Set Expires dates on Static content, images, JS, etc

Why would you consider using a single app pool per website as an optimization? Separating websites into different app pools should only be done if you have an explicit need for it like:

  • Different .NET versions
  • Different identity requirements
  • Crashing websites
  • Recycle schedules
  • Etc

Lots of good articles on TechNet:


You should see what your score is in YSlow. We run that on all sites before they deploy. A few tips:

  1. Minify your JS and combine it into one JS file (put that reference at the bottom of the html file).
  2. Combine your CSS into one file.
  3. Enable GZIP and deflate compression. Add .js and .css to the type of files it will compress. ZIPEnable is good for this.
  4. Set up content expiration for 1 year. Remember that if you modify a css/js/image file after you do this, you will need to rename that file and update references so clients pull the latest version.
  5. Disable E-Tags.