Problems related to web site performance remain elusive to many Web site designers and developers. Due to the amount of time they spend on the Internet, most web professionals utilize high-speed broadband connections, such as DSL or cable, and thus web sites are never tested properly in a worst-case user environment. See our article entitled Proper Web Site Testing for more information regarding this topic.
Superior web site performance is more important than many people realize. User surveys overwhelmingly indicate that users quickly become frustrated with poorly performing web sites. If your Web pages take more than ten seconds to load and render with a 56k dial-up connection, you are most likely loosing potential customers due to poor Web site performance. Indeed, many surveys now indicate that a typical user’s frustration level begins to build after a mere five or six seconds of time waiting for a Web page to display.
If your targeted customer is a home user, herein lies the problem: According to a recent Nielsen//NetRatings user survey, home users finally passed the 80% threshold for broadband usage. That’s the god news. The bad news it that about 20% (1 out of 5) are still utilizing slow, 56k dial-up connections to access the Internet. These are mostly users with no budget for broadband services and also people in rural areas where cable is not available. While the number of users on faster broadband connections continues to grow each year, it may still be several years before everyone in the USA has access to high-speed connections—and decides to sign up for the service.
So what is the Cumulative Effect? The Cumulative Effect is the result of numerous web site performance issues—sometimes each with minimal impact—that when combined reduce Web site performance to unacceptable levels. These issues can be undetectable by designers, developers and site owners when a site is never tested in an environment typical to the majority of Internet users.
Almost all web site performance problems can be easily identified, and most can be resolved or reduced with very little effort. The following is a list of the most common performance issues that each contribute to the negative impact of the Cumulative Effect.
- Excessive page weight.
The single most important factor that web site designers and developers can control is page weight. The page weight is the total size in bytes for all code, content, images and objects that must be downloaded from a web server to the browser on the user’s PC.
The larger the page weight, the longer it will take to download and display. If you wish to have a web page download and display in ten seconds or less on a 56k dial-up connection, the practical limit for page weight is 60k (60,000 bytes). The lower the page weight, the faster the page will download and thus the sooner it will begin to display. Be particularly wary of the size of GIF animations and Flash files. - Excessive use of images. Excessive images is easily the number one cause for excessive page weight. The number of images on a page should be kept to a minimum and all images must be optimized to reduce their file size. The only acceptable image formats for Web pages are .GIF, JPG and .PNG. Don’t even think about using a Windows .BMP image. Although a Windows bit-map image will display in a browser, they cannot be optimized and typically are very large in size.
- Overloaded web server. Make sure that your server is not overloaded. Many hosting companies put hundreds and sometimes thousands of web sites on a single personal computer configured as a web server. Also, just like the bandwidth limitation issue that plagues users with dial-up connections, hosting companies have the same issues. If you are paying $9.99 or less per month for hosting services, either or both of these problems are real strong possibilities.
- Inefficient code. WYSIWYG (what you see is what you get) tools, such as Microsoft’s FrontPage, Macromedia’s Dreamweaver, Adobe’s GoLive, NetObjects’ Fusion and other tools have made Web site development much easier. These tools automatically generate HTML, JavaScript and CSS code. Some tools generate cleaner and more efficient code than others. Many WYSIWYG tools allow poor web site design practices, such as the unnecessary overuse of HTML tags and excessive nesting of tables. Poorly written code slows page rendering in browsers. Before you select a WYSIWYG Web development tool, you should thoroughly investigate the reputation of the tool.
- Excessive use of includes. Server-side includes, or SSI, are commonly used to combine common web page elements with each page. SSI is frequently used for page headers, footers or side-bar navigation. These individual files are requested when a Web page is requested, and then combined by the server to form a single page of code. Two or three SSI’s on a page are usually okay, but excessive use can contribute to bringing a server to its knees.
- Repetitive JavaScript or CSS embedded in web pages. It is not uncommon to see literally 50% of a Web page’s code consisting of cascading style sheets (CSS) and JavaScript code. If these scripts are commonly used throughout a site, don’t repeat them on each web page. Browsers will cache (store) the files if they are set up as external files. Learn how to do this and your Web page performance will improve.
- Excessive requests to the server. Excessive server requests usually means an excessive number of images on a web page. Each file requested from a server is a request, and each request takes time. A web page with ten images results in eleven requests from the server. Keep this number as small as you can and the performance will improve.
- Dynamic server-side languages. Dynamic server-side languages require a page to be processed by the server before it is sent to the user. This takes time and can slow the delivery of a page. Database queries are frequently part of the processing and can slow the delivery further. Don’t use server-side languages, such as ASP, ASP.NET, CFM, JSP or PHP unless it is a requirement. Static HTML pages are not parsed (processed) by the server and can be delivered faster.
- Inefficient use of databases. This is an issue for Web developers. Whenever possible, try to utilize techniques that minimize the number of database queries. If a list of categories or menu items rarely changes, use arrays or hard-code the information on your pages. Classic examples of data that should be in an array is a list of states or a list of countries.
Some technologies, such as ASP and JSP, allow you to store arrays in memory. This is infinitely more efficient that querying a database every time you need to display a list of items that rarely change. - Unnecessary use of SSL. SSL, or secure sockets layer, is the technology used to encrypt the transfer of information from a browser to a server. When you see a page URL that begins with https://, that page is using SSL to encrypt the data. SSL should only be used where necessary, such as when credit card information, a social security number, personal information or other sensitive data needs to be passed. There is a performance hit of approximately 30% to 35% for each page due to the time it takes to encrypt and decrypt the information. SSL is a good tool when used where required, but it will reduce performance and thus should only be used where necessary.
The Cumulative Effect can easily cripple your Web site performance if you allow it to do so. Be wary and avoid all issues that can have a negative impact on Web site performance. Although it is nearly impossible to eliminate every issue that could possibly reduce performance, the reduction of as many issues as is feasible will make for a much more pleasant experience for your users.