This
is a blogpost series on web performance and we will have a look at
some tools and techniques to optimize the performance of your
website.
Other blogposts in this series are:
Why optimize the performance of your website?
Optimizing the performance of your website is important for
mainly two reasons:
- Faster page download times
- Reduced bandwith usage
Faster page download times are not only important for your
users, of which we know will move away from your website if they
have to wait too long for a page to download. Fast downloading
pages are also important for the indexation of your pages by
Google. Google officially stated in 2008 that it would take the
page download time as an additional factor for they quality score
(Google
official statement on page download time)
Reducing the bandwith usage on your network and server actually
can save you money because there is less data traffic between the
server and the clients requesting content on your server.
Basic performance rules
There are tree basic performance rules:
- Reduce http requests
- Send as little as possible
- Send it as infrequently as possible
Reduce http request
To improve the performance of your website, you should try to
minimize the number of requests between the client and your server.
Techniques for accomplishing this is bundling of files into one
file and using sprites for your images. We will look into this
techniques in further blogposts in this web performance blogposts
series.
Send as little as possible
Techniques for this are:
- Minification of your css stylesheets and Javascript files
- Enabling http compression on your webserver
- Optimize your images
We'll dive deeper into this techniques in the following
blogposts in these series on improving performance of your
website.
Send it as infrequently as possible
There are mainly two techniques for sending content as
infrequently as possible:
- Set Content Expiration headers
- Using Content Delivery (CDN) networks
In the next blogpost article in this series we will look into
how to set the content expiration on the webserver to prevent
unnecessary requests to the server.
We'll also take a look at Content Delivery Networks. These are
global networks of servers that offload work from your server.
Another advantage of a CDN is that these servers are geographically
closer to your user which results in faster download times.
Measure, measure, measure
Before you start optimizing the performance of your website, you
should measure first the performance of your website and locate the
areas that are causing longer download times.
After you have located the performance issues, you should also
measure if your performance optimizations actually improved those
performance issues.
Following are some tools that you can use to measure the
performance of your website
Fiddler
One of the most used tools for measuring webperformance is
Fiddler. Fiddler was developed by Microsoft's Eric Lawrence and it
enables you to trace all http traffic between your browser and the
server. Fiddler has some nice features like the Transfer Timeline,
that shows a graphical view of all the requests and the time it
took to download them.

Figure 1: The Transfer Timeline in Fiddler
more information: www.fiddlertool.com
Network Monitor
Network monitor is a free tool from Microsoft. The difference
with Fiddler is that Fiddler only traces http traffic while Network
Monitor analyses all protocols.
More information: http://www.microsoft.com/download/en/details.aspx?id=4865#overview
Page Speed (Google)
Page Speed is an open source project for measuring the
performance of your website. The nice thing about Page Speed is
that it gives the webdeveloper suggestions for improving the
performance of his website.

Figure 2: Google Page Speed as a Chrome
Extension
Page Speed is available as a Chrome Extension and as an online
service
More information: http://code.google.com/speed/page-speed/
LogParser (Microsoft)
LogParser is another Microsoft tool that allows you to analyse
your IIS log files using a SQL query like language. You can export
the result to a .csv , XML, and many other output format files
More information: http://www.iis.net/community/default.aspx?tabid=34&g=6&i=1976
LogParser is a tool that runs from the commandline. There also
exist GUI tools that use LogParser like LogParser
Lizard from Lizard Labs (http://www.lizard-labs.net/log_parser_lizard.aspx)
Third party services
Keynote and Gomez are
commercial services for long term performance trends and comparison
to other major websites
Keynote: http://www.keynote.com/products/web_performance/web-performance-testing.html
Gomez: http://www.gomez.com/instant-test-pro/
Summary
In this blogpost I gave a high level overview on the basic rules
of performance optimization.
I also stressed the importance of measuring your website
performance before and after you applied your performance
optimizations
Finally I reviewed some tools for measuring your website
performance
In the next blogpost in these series we will have a closer look
at the performance optimization techniques at the infrastructure
level, more specifically your webserver. These techniques include
http compression, setting content expiration headers and using
Content Delivery Networks