Grow · Intermediate

Website loads slowly: the most common causes and how to find them

Most slow company websites suffer from the same handful of causes. Measure first, then work through the list from the most likely cause to the least, and you will usually find it in an afternoon.

7 min read

A snail climbing the edge of a weathered flower pot.

Photo: creativemz, public domain (CC0)

In this guide

Why is my website slow? Measure before you guess

“Slow” means different things. A page can take three seconds before anything appears, or appear at once and then keep shifting and loading for ten more seconds. The fix is different in each case, so the first step is to find out which kind of slow you have.

Every browser has the tools you need. Open the page in a private window (so that your login and cached files do not flatter the result), open the developer tools and look at the Network tab, then reload the page. You will see a waterfall: every file the page requested, in order, with a bar showing how long each one took. Two figures matter most.

  • Time to first byte (TTFB): how long the server took to start answering the request for the page itself, the first line of the waterfall. This is the server’s share. On a well set up site it is well under half a second from inside the same continent.
  • Time until the page is usable: when the main content is visible and you can click on it. The gap between this and the first byte is the browser’s share: images, scripts, styles, fonts and embedded content.

If the first byte takes two seconds, your problem is on the server: caching, hosting or the application. If the first byte arrives quickly and the page still takes five seconds to settle, the problem is in what the page loads afterwards. Test from a phone on mobile data as well as from your office, and test a few pages, not only the home page. Product and category pages are often the slow ones.

The eight most common causes, in order of frequency

For small and medium company websites, the causes below account for almost every complaint we see, roughly in this order. Work down the list; the most likely cause is at the top.

The usual causes, what they look like and how to confirm them
Cause Typical symptom How to confirm
No page cache First byte 1 to 3 seconds on every page Reload twice, second load is no faster
Oversized images Page appears, then images fill in slowly Image files of several megabytes in the waterfall
Too many plugins and scripts Page freezes while scrolling, late pop-ups Dozens of JavaScript files, long “scripting” time
Slow or crowded hosting First byte varies wildly during the day Measure at 9:00, 14:00 and 22:00
External embeds Page waits for maps, videos, chat widgets Long bars from other domains in the waterfall
Uncached personalised pages Logged-in or shop pages slow, others fast Compare the same page logged in and out
No CDN for far-away visitors Fast at home, slow for a customer abroad Test from another country or a remote test service
Database bloat Everything gradually slower over months Admin pages slow, database far larger than the content

Causes on the server

No page cache. A content management system builds each page from the database on every request. With a page cache the server keeps the finished page and hands it out without rebuilding it, which turns a one-second response into a few milliseconds. Many sites have a caching plugin installed but not switched on, or configured so that a cookie set by a consent banner or analytics tool keeps every visitor out of the cache. The test is simple: load a page twice in a private window. If the second response is not much faster than the first, there is no effective cache.

Slow or crowded hosting. Cheap shared hosting puts hundreds of sites on one server, so your first byte depends on what the neighbours are doing. If your measurements swing between 0.4 and 4 seconds across the day with no change on your side, the server is the bottleneck. A page cache hides much of this, but admin work, searches and checkout still suffer.

Uncached personalised pages. Shops and portals cannot cache pages that show a basket, a customer price or an account name, so those pages are built fresh every time. Fast sites keep the personal part small and load it separately, so that the rest of the page can still come from the cache. If only logged-in pages are slow, this is the cause, and the application itself needs attention, not the hosting.

Database bloat. Years of revisions, spam comments, expired sessions, logs from plugins and leftovers of plugins removed long ago make the database large and slow. Each page then runs the same queries against far more data. The symptom is a site that was fine when launched and has slowed a little every month since. A clean-up and a few indexes often give back most of what was lost.

Causes in the browser

Oversized images. The most common cause after caching, and the easiest to fix. A photo straight from a camera is 4 to 8 megabytes; the page needs a version of a few hundred kilobytes at most, in a modern format, sized for the space it fills. Sort the waterfall by size: if the biggest entries are images, resize and compress them, and make the content management system do it automatically for every upload from now on.

Too many plugins and scripts. Every slider, pop-up, social feed, tracking tag and form builder adds JavaScript that the browser must download and run before the page is fully usable. Thirty active plugins is not unusual on a site that has grown for years, and many of them are no longer used. Each one you remove makes the page lighter and the site easier to keep secure.

External embeds. An embedded map, video player, chat widget or booking calendar loads from someone else’s server, and your page waits for it. A single chat widget can add a megabyte of scripts. Load such things only when the visitor needs them: show a static map image with a link, load the video on click, open the chat only after the page has finished.

No CDN for far-away visitors. If your server is in Frankfurt and your customers are in Lisbon or Warsaw, every file travels across the continent. A content delivery network keeps copies of your images, scripts and styles close to the visitor. It does not help a slow server, but for a company that sells across Europe it is the difference between fast at home and fast everywhere.

An illustrative example: where the seconds go

Illustrative: seconds attributed to each group on one product page, before and after the fixes

The figures are illustrative, not measurements of a real site, but the shape is typical. The product page of a small manufacturer took 7.3 seconds in total. Switching on the page cache cut the server response from 1.8 to 0.3 seconds. Resizing and compressing the images, which were the camera originals, took the image share from 2.4 to 0.6 seconds. Removing nine unused plugins and loading the map and the chat widget only on demand saved most of the remaining time. The page now settles in 1.8 seconds, and nothing about its design changed. Three cheap changes delivered almost all of the gain, and none of them required a new website.

A one-hour check you can do yourself

  • Measure three pages in a private window and note the first byte and the time until each is usable
  • Reload each page twice and check whether the second load is much faster (page cache)
  • Sort the waterfall by size and list every image over 300 kilobytes
  • Count the JavaScript files and the domains they come from
  • Compare the same page logged in and logged out
  • Measure at three different times of day and note how much the first byte varies
  • Test from a phone on mobile data, and if you sell abroad, from another country
  • List the installed plugins and mark those nobody can explain

With these notes you can either fix the obvious things yourself or give a performance review a clear starting point instead of a vague complaint. If the measurements point at the server, compare what you pay for with what managed hosting for a business site should provide: a page cache that works, enough capacity at peak times and someone who watches the response times. Settle speed before a redesign, because a new design on the same slow foundations will disappoint in the same way.

Questions we hear often

A first byte under half a second and a usable page within two to three seconds on a normal connection is a reasonable target for a company site. Shops and sites with many images need the same target and more work to reach it.

Only if the server is the cause, which the first byte tells you. If the page arrives quickly and then spends seconds loading images and scripts, a faster server changes nothing.

Search engines take loading speed and page stability into account, but it is one factor among many. The larger effect is on visitors: people leave slow pages and do not fill in forms on them, whatever the ranking.

Yes, if it is set up carelessly: a cached page can show stale prices or, worse, one customer’s details to another. Pages with baskets, accounts and personal prices must be excluded or split, and the cache must be cleared when content changes.

Want this sorted without doing it yourself?

Tell us what you are working on. A person replies within one working day.