New website developers and system administrators sometimes ask the question, “why is our website so slow?” The answer is often easy: the web server is overloaded, the database is being throttled by slow queries, etc. But how do you narrow it down and get to those answers?
A step by step approach can lead you directly to the solution if you take your time and methodically go over all of the parts that make of your resulting website.
It’s a hardware problem
Let’s just get this out of the way. In my 17 years of software development I have rarely encountered a slow website or application that was caused by a hardware problem. Because the occasions were so few, I can recount two times that stand out (the third time remains a blur):
1. An impending hard disk failure was causing a kernel panic on the web server, which no one noticed because A. we had no monitoring in place (this was 1996 folks) and B. Hardly anyone logged into the server to see the scrolling messages of doom.
2. The website was erratically slow with no pattern whatsoever. Close examination determined that the machine was spontaneously rebooting. The cause: a bad memory stick. Unfortunately, bad memory problems are one of the hardest things to diagnose because there never seems to be a pattern or tell-tale signs. It is my belief that Rogaine has untold amounts of secret shares of stock in memory companies because of all of the hair loss over bad memory.
Software/web developers, it’s time to face facts: it’s probably not a hardware problem. Starting your investigation of performance problems here will only waste your time 95% of the time. There is nothing wrong with taking a quick look at some basic diagnostics, but you really must start with the most common source of the problem.
It’s a software problem
Yes, it’s the code. That wonderful masterpiece that you worked night and day on is most likely the cause of your performance problem. Why? Because mistakes are easily hidden in code that don’t rear their ugly head until it is uncovered by the website user, and to make matters worse, most of them will never tell you there is a problem. But, if you are lucky enough to be notified of a problem or you discover a problem on your own, don’t ignore it! Track it down and fix it as quickly as possible, while it is fresh in your mind.
Check the basics, from the top down. I prefer Mozilla Firefox for viewing information about a web page simply because you can easily download and install web developer tools that reveal important information:
1. Page Size: How large is the page? Internet Explorer: right-click on the page, then select Properties. Firefox: right-click on the page, then select View Page Info. If the page size is under 100K you are safe. If it is approaching 1MB, then a page rewrite is necessary. Split the page into multiple smaller pages.
2. Number of images: Too many images? Internet Explorer: No way to check. Firefox: right-click on the page, select View Page Info, then select the Media tab. All of the referenced images are displayed with size information. If you have more than 20 images, you may have a problem with too many HTTP requests – remember that each image requires a separate request of the web server for that image, unless the image is already cached on your local machine.
3. Size of images: sizes over 100K? Internet Explorer: No way to check. Firefox: right-click on the page, select View Page Info, then select the Media tab. All of the referenced images are displayed with size information. Images over 100K in size should be reduced if possible to decrease load times.
4. Flash. Oh flash. Web pages that use flash are okay in my book, when used sparingly. But, you have to ask yourself, are you sure you really need it? People with slow Internet connections and slow computers will definitely feel pain while waiting for a flash image to load.
5. Nested Tables: Tables within tables are not a performance hit by themselves; however, they can give the impression that a site is very slow simply because a page may not fully render until the contents of the innermost table is completed then upward.
Part 2 will explore more common causes of performance problems.

No Comment Received
Sorry the comment area are closed for non registered users