Technology

What Actually Makes a Website Fast

Page speed is treated as dark art. It is not — it is a small set of specific bottlenecks. Here is an honest field guide to the performance wins that matter.

Stylized speed lines and a forward-pointing arrow on an indigo gradient.

“Make the site faster” is the most consistently misunderstood request in engineering. Teams reach for a tool, run a report, and then chase whatever numbers light up red. The actual levers that move real-world page speed are fewer and duller than people think.

This is a field guide to the bottlenecks that matter, ranked by how often they are the real cause.

1. Bytes on the wire

The single biggest predictor of a slow site is still how much JavaScript ships to the browser. Framework overhead, third-party scripts, analytics, tag managers, and ad SDKs add up. A page that sends 600 KB of JavaScript will be slow on a mid-range Android phone no matter how cleverly it is rendered.

The fix is unglamorous: send less. Code-split, defer what is not above the fold, and ruthlessly audit third parties. A single chat widget can outweigh your entire application.

“You cannot optimize what you do not measure, but you can always just delete what you do not need.”

2. Images, by a mile

Unoptimized images are the second most common cause of slow pages — and the easiest to fix. The playbook is now standard but worth restating:

  • Serve modern formats: AVIF first, WebP as fallback.
  • Size images to the display dimensions. A 4000-pixel-wide photo in a 320-pixel card is not “high resolution,” it is waste.
  • Lazy-load everything below the fold.
  • Use width and height attributes (or aspect-ratio) so the browser reserves space and avoids layout shift.

3. Network round trips

Every request is a negotiation. A page that makes 80 requests over a slow connection will feel slow even if the total bytes are modest. HTTP/2 and HTTP/3 help, but the cure is reducing requests: fewer files, inlined critical CSS, bundled where it pays off.

4. The render path

Even with fast HTML, the browser can be blocked. Render-blocking CSS in the head, synchronous fonts that flash, and JavaScript that runs before the page is interactive all delay the moment the user sees something.

The remedies: preload the one font you actually use, inline critical CSS, and defer scripts with type="module" or the defer attribute.

5. Server response time

A server that takes 1.2 seconds to start sending HTML makes every other optimization worse. This is usually a database query, a cold origin, or a CDN misconfiguration. Static or edge-rendered sites skip this entirely — which is why they feel instant.

The metric that matters

Largest Contentful Paint — roughly, when the biggest visible element appears — is the single number that best predicts whether a user perceives your site as fast. Optimize for it. If your LCP element is a hero image, that image is your priority; if it is a text block, your server response and font loading are.

Speed is not a vibe. It is a short list of specific things, and you are allowed to ignore the rest.