Turn on compression and you'll see immediate performance improvements, likewise if you enable caching for complex web apps.

What other configuration options you can change to improve performance? do you have "performance checklist" of things to set when you get a new server?

I'm asking about IIS 7 or later (because all my current servers are IIS7)

  • Might this be better for serverfault?
    – John Conde
    Sep 21 '10 at 15:14
  • @John - it might, but this is a question about configuring a web server - something pro webmasters should know about - so I'm really not sure
    – Nir
    Sep 21 '10 at 15:37
  • I think server configuration is exactly what serverfault is for.
    – John Conde
    Sep 21 '10 at 15:41
  • 1
    I think it's not clear, serverfault, webmasterexchange the question is ambigious i think the question could be good on the two side Sep 22 '10 at 11:41

IIS7+ is actually pretty darn' fast. There isn't much you can do to speed up IIS; in general you'll optimize on the HTML, JS, Images, CSS, HTTP, HTTP headers, and possibly webapp code (C# etc). These issues are cross-platform. The user interface is of course different between Apache and IIS, but the knowledge is much the same.

Steve Souders literally wrote the book on how to make websites go faster. It's a quick, easy read. Here is a free summary / checklist as you requested, and you'll find a talk about this on YUI Theater (not the greatest presentation).

For those not clicking on links, the original 14 rules (which can also be found on Yahoo!'s developer network) are:

  1. Make Fewer HTTP Requests
  2. Use a Content Delivery Network
  3. Add an Expires Header
  4. Gzip Components
  5. Put Stylesheets at the Top
  6. Put Scripts at 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
  14. Make AJAX Cacheable

Steve's second book is also good, but with more emphasis on specific Javascript and browser behavior. The first book is more universally applicable, and the tweaks given in the first book have the biggest impact.

  • thanks, this is great info, the reason I asked specifically about IIS because I wanted to know if there are any "magic" settings like enabling compression
    – Nir
    Sep 21 '10 at 15:49
  • Really good ASP.NET performance book: amzn.to/eej7b7 Dec 9 '10 at 21:20

Jesper's tips above are excellent suggestions for speeding up static web pages.

If you are running an ASP.NET application there are also things you can do if your web site is having performance issues due to load:

  • Monitor your server. ASP.NET publishes lots of counters that can be monitored in PerfMon.exe. The Global Request Queue counter will show you if any requests are being queued. This number should always be 0.
  • Optimize any calls to external resources such as databases and file systems. Long running requests tie up threads and prevent incoming requests from being served
  • If you have long running calls to external resources, consider making those asynchronous. This transfers the request to a separate thread pool and returns the original thread to the pool to serve new requests
  • Increase the size of the thread pool for older versions of .NET. This setting can be found in the machine.config
  • Configure the web garden option in your IIS application pool to use more than one worker process (Maximum Worker Processes option in IIS7 Advanced Settings). Play with different settings to see what best suits your environment. Multi-core machines will be able to handle mutiple worker processes better.
  • In a virtual machine, don't assign too many cores to the server, as this can cause allocation issues on your host.
  • If you have tried all of these and you still see issues due to load, consider clustering your server. Windows Server has Network Load Balancing built in, which allows you to configure a small web farm without the need for an expensive hardware load balancer. IIS7 also includes the Web Farm Framework, which achieves the same thing using Application Request Routing (ARR). It also handles server provisioning.

A quick web search on any of these issues will return lots of good information.


Magic settings are normally site specific. You'll need to monitor what's going on in order to find the right questions of what to change in IIS7.

What part of the performance chain is weakest?


What can you do to gain granular visibility in an accessible fashion?

Jesper Mortensen is absolutely right Steve's two books are superb reading and accounted for a recent 5.5 second to 1.8 second speed boost (webpagetest) on a site we maintain. Stabilising the whole system based on logs helped us to keep the delivery stable across runs and ramp up at peak (over 50% of this was at the OS level). None of this could have been done in a 2 day time frame without monitoring at every level.

There often isn't a check-list for every site beyond Steve Sounders work, you've got to know the problem before looking for the solution.


We implement ARR module in IIS7, so we make a webFarm, ARR can cache your request on disk and increase performance, for us, that make a big difference.

In the html page you can also use multi sub domain for your media, example :

js.yourdomain.com img.yourdomain.com css.yourdomain.com

etc .. Browser le ie, and i think other download simultanious 3 connexion by sub domain.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.