Testing Your Website on Slow Connections using Bandwidth Throttling

Date Published: 13/05/2009 11:12

Most web developers work in a local environment prior to pushing their work onto a production server(s). The speed of these local connections obviously means sites can be loaded for testing quicker among with other examples but it makes it difficult for developers to test their sites on slower connections and also makes testing flash pre-loaders awkward. Ensuring that your pre-loaders work correctly, display appropriate content and do not deter users from accessing the site is highly important but there is an add-on for both Firefox and Internet Explorer which can assist you. They are both produced by the same company and are free to download and use. They work by restricting the amount of bandwidth your browser has access to therefore it is possible to simulate connections slower than your own. There are presets for common speeds such as 56K and DSL so you can ensure that your whole site loads in an appropriate time on varying connections.

Firefox Throttle

Screenshot of the Firefox Throttle Settings Menu

Firefox Throttle is an add-on for firefox which is only compatible with windows and can be downloaded from the useless application website. To install it simply download the add-on file and then install it into Firefox using the add-ons menu.

Firefox Throttle should appear along the bottom of your Firefox window and clicking the Firefox Throttle icon will activate or deactivate the throttle. To configure it right click on it and select options. The first tab (Settings) allows you to set up what you want to throttle and to what speed. Changing these settings alone will throttle connections to external sites only and local connections will bypass the throttle. To enable it on local connections select the "IP addresses" tab and check the check boxes at the bottom which read "Throttle all local networks (LAN) connections" and "Throttle 'localhost' connections" (see screenshot). Click OK and you are ready to go. Modifying the throttle will allow you to see how people with slower connections will see your site when it is live and give you the opportunity to test your flash pre-loaders.

IE Throttle

Screenshot of the IE Throttle Settings Menu

IE Throttle is an add-on for Internet Explorer which can be downloaded from the useless application website. To install it download the installer from the site and install it while Internet Explorer is not open.

When the installation is complete open Internet Explorer and it should appear as an option on the toolbar. When I installed it, it was well hidden but if you can't find it there may be an arrow to the far right of your toolbar which will open a menu containing IE Throttle. When you have it open simply adjust the throttle options in the "Settings" tab and this will be enough to throttle all connections to external sites. In order to throttle local connections you will need to browse to the "Exclude IPs" tab and un-check the "Automatically exclude all local networks" checkbox at the bottom of the page. Click OK and now you can start testing your pages with the throttle settings you selected. To disable them simply go back into the menu and un-check the throttles you enabled.


This is of course a very simple guide to carrying out a very simple test. It baffles me though why web developers don't take the time to carry out these small performance tests. As a profession we can not assume that everyone who will access our sites will come via a strong connection in the same way we can not assume everyone will have flash. It only takes a few minutes to identify whether users with slower connections are going to continue using your site and can highlight some small amends you can make to improve their experience.

If you are working on a site with bandwidth problems which takes a long time to load on slower connections you may want to read my article about apache optimisation as this should help you streamline your site better using some built in functions of apache (only suitable for LAMP environments).


Sorry comments are currently disabled for maintenence

5 Most Recent Articles

Manually Triggering Events in ASP.NET from JavaScript

A quick guide for ASP.NET developers on how to manually trigger ASP.NET events from JavaScript.

Advanced Use of MySQL Stored Procedures

An article for users of MySQL databases describing how they can use advanced stored procedures to improve efficiently in their applications.

Using MySQL Stored Procedures and Extending MySQLi in PHP

A guide for LAMP developers to using stored procedures in MySQL and extending the MySQLi class.

Reading and Writing to Excel Spreadsheets in Python

An introduction to using the xlwt and xlrd modules for python to interact with Microsoft Excel spreadsheets.

Interact with the Web Using Python and the HTTP Library

This is an introduction to making HTTP requests from a python script/application using httplib.