Webmove Blog : Improving the performance of your website - part 1

Improving the performance of your website - part 1

speedometer-150This 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.

fiddler-timeline

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.

page-speed

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

Posted by Anthony Candaele at 17:14
Categories :

1 Comments:

Jan said...
Hi Anthony This is a great blog-post series you have got going here. I'd just like to add that the yslow plugin for firefox is a good supplement to google page speed since it also has direct integration to smushit.com, which can compress the images, which is nice :) Keep the good stuff coming! #H5YR - Happy new year. /Jan
December 31, 2011 14:12

Post a comment