IIS6 Website Optimisation for webpagetest.org (Part 1)
Google are to make website optimisation a criteria for search placement as of January 2010. If you’ve visited webpagetest.org and want to know how to optimise your site – here’s how it’s done.

IIS6 Optimisation for super speedy webpage delivery.
In light of a recent interview with Matt Cutts of Google (see related article here) in which he states that come the end of the holidays, at the beginning of 2010, Google will start to look at website optimisation as a criteria for search ranking. I have decided to take things in hand and write a tutorial on how to configure Mircosoft’s IIS6 for maximum performance and bring web page loading speeds up to a blistering pace.
This article is specifically aimed at optimizing IIS6 (*update* now IIS7 – I go into details on how to optimise IIS7 in part II) upon which this site is hosted. This is a Standard Windows 2003 Server, connected to a standard ‘home broadband connection’ with a dynamic IP address – really nothing special. It’s the sort of hosting that anyone with an Internet connection could set up with enough knowledge – which is why I have set this site as a resource.
What about Apache?
F*&# em’! Just kidding, actually there are numerous resources available on the Internet for Apache server as well as multiple plugins / modules available, so I’m not going into any detail about Apache here (other than to say – w3 total cache it’s the best optimisation plugin for wordpress – period). I intend to redress the balance of power with Apache a little bit as IIS is an excellent web server and I intend to give it some supprt on these pages.
In this tutorial I have included every acceleration requirement that is checked for by webpagetest.org. I have also included screenshots and explanations for every step along the way.
I would like to briefly mention that in order to complete this article I’ve had to do a lot of scratching around the Internet, slepless nights and plenty of prayer and waiting for enlightenment. This information is like gold dust and I’m about to blow the gaff, throw the spanner in the works and show you how it’s done. When you’ve finished you’ll have IIS up and running so fast you’ll think you’ve switched service providers.
Everything you need is right here – and all on one page.
Warning! – This post is jam packed with low-fat, light weight, web optimisation goodness! Do not continue to read this page unless you wish to become the hero that saves the day, more charming, better looking and a massive hit with the ladies.
BUT first things first. Please visit http://www.webpagetest.org and run a test on your website. When you’re done I suggest you save the images it produces for a later comparison check.
For this tut I’ll be using a site I’ve just started developing in Drupal 6.14 it’s called http://newagegiftshops.com obviously because I’ve just started developing it, it’s not complete, but there are several images as well as Drupal core and modules that can be cached by IIS – here’s what the site’s speed test looks like before optimisation:
Before configuring IIS – as you can see it’s a website efficiency horror story… Yikes!

The final report was much longer than the image above but I think you get the idea. First View 14.453 seconds, Repeat View 8.660 seconds. Not terribly impressive…
Now, let’s kick some web serving butt!
#1 Backup your IIS Configuration.
Disclaimer – It wasn’t me ok? Always be on the safe side (personally I didn’t bother – but them I’m barking mad) and take a backup of your IIS configuration like so:

Setting up compression.
When your backup’s complete, you’re now ready to have some fun! Just right click on Web Sites then Properties.

And you’ll see the default settings for all your websites – Yay!
#2 Gzip.
Did you know your IIS server can automatically Gzip text and static content before sending the page over the Internet? I didn’t until last week, but it’s very easy to set up. I wrote an article about it last week, so rather than being guilty of duplicating my own content just open this link in a new window and when you’re done come back and I’ll show you the rest of the optimisations.
Remember that when you call up a page from IIS – if it isn’t cached IIS will serve you the uncompressed version and start compressing it with Gzip in the background, so if you call up the same page again immediately (before Gzip has had a chance to do it’s thing) you won’t see the Gzipped page yet. You will not need to use Metabase Explorer again as the rest of the optimisations can be done through the normal front end MMC snap-in.
#3 Keep-Alive
Keeping Alive is always a good tip, you’ll notice however that just ticking the box that says ‘Enable HTTP Keep-Alives’ doesn’t actually do the job on it’s own, that’s because…
Zero is always the highest number.
Just pop a zero (0) in the box and you’re done! How easy is that!? Although this step is incredibly simple it has an enormous effect. Establishing an HTTP connection is a slow process and placing any number here other than zero will not keep the connection open.

#4 Cache Static.
The rest of the optimisations can all be done by clicking on the HTTP Headers tab. All these steps are simple, it’s just a case of finding out what needs to be done.
Just tick the box that says: Enable content Expiration and in the box put a nice big number along the lines of 3650 Days (10 years) – that should do the trick!

Now that you’ve set a far-future-date for your static content to expire, we’re going to add a couple of ‘Custom HTTP headers’ so click on Add…
#5 Accept-Encoding.
You are now going to create a custom header, so in the text box that says Custom header name: put Accept-Encoding and for the value put: gzip then click OK.

#6 No Etags.
Here’s where we get cunning… click Add again to create another Custom HTTP header, this time for Custom header name put: ETag and for the Custom header value – LEAVE IT BLANK! just like the image below… and click OK.

Your HTTP Headers tab should now look exactly like this: (if you’re running ASP you’ll probably have another custom HTTP header like X-ASP or something like that… You can now click OK to close the IIS config box and you’re almost there!

I’ve just run the webpagetest.org again and we’re really starting to look a lot better! Here are the results: First View 7.639 seconds, Repeat View 3.087 seconds… That’s double the speed!

Okey Dokey! Lookin’ good buddy!
Next up we are now no longer in the realms of network engineer – we have now entered the realm of Website designer/programmer. (Every step before this is the job of a network/ISP engineer.)
#7 – Cookies
These can be blocked at the server level – however, no ISP will do this for you because cookies are utterly needed. They’re used for logging in, different values for this and that – they’re proliffic and simply blocking them would be a silly thing to do – unless you can completely control them (which is what we’re about to do next).
That’s it for Part 1. If I get the time next week I’ll write Part 2 in which I’ll deal with Cookies, Content Delivery Networks (CDN’s) and Combining your Javascript, CSS and other static content into one file to reduce the number of file requests…
That’s is for now, catcha next time.
Simon
If you’re now hooked on the amazing gains website optimisation has brought you, have a look at the post Website Optimisation – Part II
No related posts.
1 Comment
Leave a Reply
Hot Topics
- Creating a Drupal 6 custom login form - Step by Step tutorial.
- WordPress Contact Form 7 & WP-Mail-SMTP problem solved
- imagecache wrong path - SOLVED!
- Adobe Contribute CS4 - cannot verify your connection Information.
- Drupal - The selected file... could not be uploaded. Only JPEG, PNG and GIF images are allowed
- IIRF Drupal, WordPress and IIS6 - How to get them working first time - Guaranteed!
- Learning About Drupal
- Wordpress widgets not saving or dragging?
- Feeling sick after watching IMAX - Avatar
- How to take Ownership of a Drive, Folder or File in Windows 7
- 7129/6105195 Edward Leedskalnin's anti-gravity - How he built Coral Castle.
- Why do I need to keep resetting my router?
- IIS and Drupal - Enable Clean URL's
- IIRF Wordpress - URL Rewriting for IIS6.0
- How to not be an idiot online - Online 'Gold Rush' exposed!
- Linkshare scam? Review.
- Windows 7 Problems.
- IE9 is currently in development - but what will the future bring?
- IIS7 - No HTTP redirect icon
- Drupal Gmail Module - Solved.

[...] You can read my post on how to optimise your IIS6/7 server for maximum performance here. [...]