Web Performance

How to Make Your Website Load Faster: A Practical Guide

A prioritised guide to a faster site: measure first, then cut page weight, optimise the critical path, cache and use a CDN, and reduce server response time.

StackOptic Research Team25 Apr 20268 min read
A prioritised checklist for making a website load faster

A faster website keeps more visitors, converts more of them, and ranks a little better — and the good news is that getting there is not mysterious. It follows a clear order of operations. The short version: measure first, then cut page weight, optimise the critical rendering path, cache and use a CDN, and finally improve server response time. Do them roughly in that sequence and you will fix the bottlenecks that matter before chasing marginal gains. This guide walks through each lever in priority order, ties them to Core Web Vitals, and ends with a checklist you can work straight down.

It is the hub for a set of deep-dives: when a section here is too short, follow the link to the full guide.

Step 0: measure before you touch anything

The most common performance mistake is optimising by intuition. You feel the site is slow, so you start compressing things — and you may spend a day on something that was never the bottleneck. Performance work should always start with measurement, for one simple reason: the slow part is often not the part you would guess.

Use these free tools to find the real problem:

  • PageSpeed Insights (PSI) — paste any URL and it reports both field data (real users, from the Chrome UX Report) and a lab test (a controlled Lighthouse run), with specific recommendations ranked by estimated savings.
  • Lighthouse in Chrome DevTools — runs the same lab audit locally so you can iterate quickly and re-run after each change.
  • Chrome UX Report (CrUX) — the real-user dataset behind PSI and Search Console; it is what Google actually uses, so it is the score that counts.
  • Chrome DevTools Performance and Network panels — for deep diagnosis: which requests are slow, what blocks rendering, where the main thread is busy.
  • WebPageTest and GTmetrix — detailed waterfalls, filmstrips and tests from different locations and connection speeds.

Establish a baseline, note your worst metric and the heaviest resources, and only then start optimising. For the metrics these tools report, see Core Web Vitals explained.

The targets: Core Web Vitals

"Fast" needs a definition, and Google provides one. Performance is judged by Core Web Vitals, measured at the 75th percentile of real page loads:

MetricMeasuresGoodNeeds improvementPoor
LCP (Largest Contentful Paint)Loading≤ 2.5s2.5s - 4.0s> 4.0s
INP (Interaction to Next Paint)Responsiveness≤ 200ms200ms - 500ms> 500ms
CLS (Cumulative Layout Shift)Visual stability≤ 0.10.1 - 0.25> 0.25

The 75th-percentile rule is important: a fast experience for your median visitor is not enough. Your slower-device, slower-network users count too, which is why a site that feels instant on your developer laptop can still fail in the field.

Lever 1: reduce page weight

Page weight — the total bytes a page transfers — is the dominant factor in loading speed on most sites, and the two heaviest contributors are almost always images and JavaScript.

Images

Images are typically the single largest part of page weight, and according to the HTTP Archive's Web Almanac they account for a large share of the median page's bytes. They are also the easiest to fix without changing functionality. Compress them, size them to the dimensions they are actually displayed at, serve modern formats (WebP, AVIF), and lazy-load images below the fold so they download only when needed. This one pass often removes a large chunk of a page's weight. The full method is in how to optimize images for the web.

JavaScript

JavaScript is expensive twice over: the browser has to download it and then parse and execute it, the latter blocking the main thread and hurting responsiveness. Ship less of it, code-split so each page loads only what it needs, defer non-critical scripts, and audit third-party tags — analytics, chat widgets, A/B testing — which add weight out of all proportion to their value. The dedicated guide is how to reduce JavaScript and speed up your site.

Fonts

Each custom font weight is a download, and badly handled fonts cause both delay and layout shift. Use woff2, subset to the characters you need, limit the number of weights, and set font-display so text appears promptly rather than waiting (or vanishing).

Lever 2: optimise the critical rendering path

Even after the bytes are smaller, the order in which they arrive and run decides how soon the page appears. The critical rendering path is the sequence the browser must complete before it can paint meaningful content, and the enemy is render-blocking resources — CSS and synchronous JavaScript in the <head> that the browser must fetch and process before it renders anything.

The fixes: inline the small amount of CSS needed for the above-the-fold view and load the rest non-blocking; add defer or async to scripts so they do not block parsing; and remove unused CSS and JavaScript that the browser is downloading for no reason. The goal is to let the browser show the largest visible element as early as possible, which directly improves LCP — covered in what is Largest Contentful Paint.

Lever 3: cache and use a CDN

The fastest byte is the one you never send again. Caching lets browsers and intermediaries reuse files instead of re-downloading them, so repeat visits and repeat assets are dramatically cheaper. Set sensible cache headers on static assets (with long lifetimes and content hashing for cache-busting), and use server-side or full-page caching so dynamic pages are not rebuilt from scratch on every request.

A CDN (content delivery network) stores copies of your assets on edge servers around the world and serves each visitor from one physically close to them, cutting latency and offloading work from your origin. For a global audience it is one of the most effective single changes you can make. What a CDN does, who needs one, and how to choose are covered in what is a CDN, and do you need one.

Lever 4: reduce server response time (TTFB)

Before any of the above can happen, the browser waits for your server to respond — Time to First Byte (TTFB). A slow TTFB delays everything downstream, including when the LCP element can begin rendering, so a sluggish backend can cap your speed no matter how lean the front end is.

Reduce TTFB by:

  • Caching at the server so pages are not regenerated on every hit.
  • Optimising database queries — fewer, faster, well-indexed queries instead of many slow ones.
  • Using a CDN to serve cached responses from the edge.
  • Choosing adequate hosting — underpowered or oversubscribed shared hosting is a frequent, hidden cause of slow responses.

Lever 5: connect and load resources smarter

A few targeted hints help the browser fetch the right things at the right time:

  • preconnect to important third-party origins (such as a font host or your CDN) so the connection handshake is done before the resource is requested.
  • preload genuinely critical resources — most usefully the LCP image — so the browser fetches them early instead of discovering them late.
  • fetchpriority="high" on the LCP image to push it up the queue, and lower priority on things that can wait.
  • loading="lazy" on below-the-fold images and iframes so off-screen content does not compete for bandwidth during load.

Use these surgically. Preloading everything is self-defeating — it just moves the congestion around — so reserve high priority for the handful of resources that block first paint.

Why order matters: don't optimise blind

The reason this guide is sequenced rather than presented as a flat list is that performance work has sharply diminishing returns, and the bottleneck is rarely where intuition says it is. If your real problem is a 2MB hero image, spending a day minifying CSS will move the needle barely at all — yet teams do exactly this, optimising the thing they know how to fix rather than the thing that is actually slow. Measuring first, and re-measuring after each change, keeps you honest: you fix the largest contributor, confirm it moved the metric, and only then move to the next. It also prevents a subtler trap, which is over-optimising one area into fragility (an aggressively hand-tuned critical path that breaks the next time someone adds a script) while a bigger, simpler win sits untouched. Treat the sequence as a triage order, not a to-do list to complete end to end — most sites reach "good" Core Web Vitals well before the bottom of it.

A prioritised checklist

Work down this list in order; stop optimising a level once it is no longer your bottleneck and move to the next.

  1. Measure with PSI, Lighthouse and CrUX; record the baseline and the worst metric.
  2. Optimise images: compress, resize, modern formats, lazy-load below the fold.
  3. Cut JavaScript: remove unused code, defer non-critical, audit third parties.
  4. Handle fonts: woff2, subset, limit weights, set font-display.
  5. Unblock the critical path: defer/async scripts, inline critical CSS, drop unused CSS.
  6. Cache hard and serve via a CDN.
  7. Lower TTFB: server caching, query optimisation, adequate hosting.
  8. Add hints: preconnect, preload the LCP resource, fetchpriority.
  9. Re-measure in the field and lock in a performance budget so it does not regress.

Why this is worth doing

It is tempting to file performance under "SEO chores", but the commercial case is stronger. Slow pages lose visitors before the content even appears; laggy interactions erode trust at the exact moments that matter, like adding to a cart or submitting a form; and unexpected layout shifts cause mis-clicks. Faster pages have repeatedly been linked to lower bounce and higher conversion across retail, media and SaaS — outcomes a business cares about regardless of Google. That those same improvements also feed Google's page-experience signals is a bonus, not the main event. Frame speed as a user-experience and revenue lever that happens to help SEO, and it earns its place against feature work.

Keep it from regressing

Hitting good scores once is not the finish line. Every new image, font, tag and feature is a chance to slip backwards, and performance quietly decays as a site grows. Check field data regularly, agree a performance budget your team will not exceed, and re-test important pages whenever you ship something significant — so a regression shows up in days rather than in a ranking dip or a conversion drop months later.

Go deeper

Want your load speed scored alongside SEO, security and AI-readiness? Analyse any URL with StackOptic — one report, free, no sign-up.

Frequently asked questions

How can I make my website load faster?

Work in priority order. First measure with PageSpeed Insights and Lighthouse to find the real bottleneck. Then reduce page weight by optimising images, trimming JavaScript and subsetting fonts. Next optimise the critical rendering path so the page renders sooner, add caching and a CDN so repeat data travels less, and improve your server's response time. Re-measure after each change using real-user field data.

What is the single biggest factor in page load speed?

For most sites it is page weight — how many bytes the page has to download — and within that, images and JavaScript dominate. Images are typically the largest contributor by size, while JavaScript is expensive both to download and to parse and execute on the device. Optimising those two usually produces the biggest, quickest improvement, which is why measuring first matters: you want to attack the heaviest item, not guess.

How fast should a website load?

Aim to meet Google's Core Web Vitals 'good' thresholds at the 75th percentile of real page loads: Largest Contentful Paint under 2.5 seconds, Interaction to Next Paint under 200 milliseconds, and Cumulative Layout Shift under 0.1. The 75th-percentile rule means most of your visitors — including those on slower devices and networks — should get a good experience, not just your fastest users.

Does a faster website improve SEO?

Yes. Core Web Vitals are part of Google's page-experience signals, so a faster, more stable page can help rankings, particularly between pages of similar relevance. The stronger argument is commercial: faster pages reduce bounce and lift conversions regardless of ranking. Because the same work improves user experience, search performance and revenue together, speed is one of the highest-leverage investments a site can make.

What is TTFB and why does it matter for speed?

Time to First Byte (TTFB) is how long the browser waits before it receives the first byte of the response from your server. A slow TTFB delays everything that follows — including when the largest element can start rendering — so it directly affects LCP. You reduce TTFB with efficient server code and database queries, good caching, and a CDN that serves cached content from an edge location close to the user.

Analyse any website with StackOptic

Get the full technology stack, performance, security and SEO report in seconds — free.

Analyse a website

Related articles