Skip to content
Frank Spin

Lab

What slows a website down

18 causes of a slow website, each with what happens and what to do about it. Just starting? Fix hosting and images first. Those two usually make the biggest difference.

Why it matters

  • Over half of internet users expect a website to load within two seconds. After three seconds, a large part of them leave.
  • Visitors who have to wait view fewer pages. The money you spent bringing them in is then wasted.
  • A slow site is a bad experience, and that costs you your place in Google. A lower ranking means fewer visitors from search.
  • The biggest effect: fewer conversions. Fewer quote requests, sales and completed contact forms.

From Why a slow website is bad for your business

How to measure

Test your site for free with one of these tools, and go over the results with your developer.

18 of 18 shown

  1. Hosting and server

    Cheap shared hosting

    What happens: Your site shares one server with 10, 100 or even thousands of other sites, and it feels their load.

    How to fix it
    • Move to your own (virtual) server. They start at about €7.50 a month.
    • Little technical knowledge? Pick a managed server, where someone else runs it for you.
    • Or pick hosting set up for your platform, such as WordPress or Magento.
  2. Hosting and server

    A server far from your visitors

    What happens: A site on one server in one data center makes every request travel that whole distance and back.

    How to fix it
    • Serve the site through a CDN, so visitors load it from a server close to them. For example Cloudflare, Amazon CloudFront or Akamai.
  3. Hosting and server

    No compression

    What happens: Without it, your HTML, CSS and JavaScript travel at full size. Gzip can make pages up to 70% smaller.

    How to fix it
    • Have your host turn on compression.
    • Cloudflare compresses with Brotli, the successor to gzip.
  4. Hosting and server

    An old HTTP version

    What happens: Over HTTP/1.1 a browser can, at worst, download only one file at a time. HTTP/2 lets it download several at once.

    How to fix it
    • Ask your host to turn on HTTP/2. Almost every host runs it by now.
  5. Hosting and server

    No browser caching

    What happens: Without it, a returning visitor downloads every file again.

    How to fix it
    • Turn on browser caching, so files stay in the visitor’s browser.
    • On WordPress, W3 Total Cache can do it.
  6. How the site is built

    Every page is built on every visit

    What happens: WordPress starts PHP, pulls content from the database, loads the theme and runs every plugin, for every visitor, every time. A caching plugin helps, but it’s a band-aid.

    How to fix it
    • Build pages once, when you publish, and serve finished HTML.
    • Pages that must stay current, like prices or stock, can render on the server and be cached at the edge of the network.
  7. How the site is built

    A pre-made theme

    What happens: A theme sold to thousands of customers is full of features you’ll never switch on. Their JavaScript and CSS get loaded anyway.

    How to fix it
    • Go custom-built, with only what the site needs.
  8. How the site is built

    Plugins on every page

    What happens: Each plugin brings its own JavaScript, CSS and sometimes fonts, on every page, whether that page uses it or not.

    How to fix it
    • Give JavaScript only to parts that need it, like a filter or a form, and only once they scroll into view.
    • Ship only the CSS your pages actually use.
  9. How the site is built

    Bloated HTML

    What happens: A page builder wraps every block in five extra divs.

    How to fix it
    • Keep the HTML small. The homepage of this site is 47 kB of HTML and travels as less than 10 kB with Brotli.
  10. Images

    Oversized images

    What happens: Images are the heaviest part of almost every site. Photos of several megabytes straight from the camera are common, and each one costs visitors time and data.

    How to spot it
    Compare each image’s width with the width it’s shown at. A 700-pixel layout needs at most 700 pixels, or 1400 for retina screens.
    How to fix it
    • Resize images to what your design uses.
    • Compress them. TinyPNG often cuts 50 to 70% without visible loss.
    • Serve smaller versions to phones.
    • Or keep only the originals and let the CDN make each size, in AVIF or WebP when the browser supports it.
    Tools
    TinyPNG
  11. Images

    Every image loads at once

    What happens: On a page longer than the screen, the browser downloads images the visitor may never scroll to.

    How to fix it
    • Load images lazily, only when the visitor scrolls down to them.
    • Browsers now do this themselves with loading="lazy".
  12. Code and files

    Too many files per page

    What happens: Every video, image, script, font and stylesheet is a separate download. A homepage with 39 of them can take up to 10 seconds.

    How to spot it
    Run the page through Pingdom or WebPageTest and see how many files it loads.
    How to fix it
    • Remove every file the page doesn’t need.
  13. Code and files

    Unminified CSS and JavaScript in separate files

    What happens: Spaces and indentation make code readable for developers but add file size. And ten CSS files are ten downloads.

    How to fix it
    • Minify the code: strip spaces and line breaks.
    • Combine your CSS into one file, and your JavaScript too.
    • On WordPress, Autoptimize does both.
  14. Extras on the page

    Image sliders

    What happens: A slider loads several images plus its own JavaScript and CSS. That’s easily 5 to 10 extra files.

    How to fix it
    • Drop the slider and show only the first slide. That’s usually the content that matters most.
  15. Extras on the page

    Share widgets

    What happens: Each share widget often brings its own JavaScript, CSS and images.

    How to fix it
    • Leave them out. People can still copy the link from their browser, and in 9 out of 10 cases a site works fine without them.
  16. Extras on the page

    Fonts from another server

    What happens: Every font is another file, and a font service like Google Fonts or Adobe Typekit is a detour to another server.

    How to fix it
    • Use the standard fonts already on the device, if speed matters more to you than branding.
    • Or host the fonts on your own domain. That also spares you the privacy hassle.
  17. Links and redirects

    Redirect chains

    What happens: A team page that redirects to an about page, which a year later redirects to a company page, makes visitors go through both.

    How to fix it
    • Point every old URL straight at its final page.

Everything on this page comes from three of my articles. They tell the full story behind each point: