
Speed is your first impression: if a page takes more than three seconds, the visitor is already gone. These are the five mistakes I see most often, and how to fix them in a few hours.
Speed is not a technical detail, it is the first thing a visitor feels. Heavy images, render-blocking scripts and bloated frameworks push load times past three seconds: beyond that threshold most people leave, and Google measures the same thing with Core Web Vitals.
1. Unoptimised images
The heaviest item in almost every site I audit. A phone photo can weigh 4 MB while the screen only needs 120 KB. Converting to WebP or AVIF and serving the right size per screen cuts weight by 80–90% with no visible difference.
2. Render-blocking scripts
Every <script> in the head freezes the first paint until it is downloaded and executed. Third-party code (widgets, chat, analytics) should load deferred, after the first paint: content first, everything else can wait.
3. Fonts and CSS from CDNs
Every external origin adds a handshake: DNS, connection, TLS. Self-hosting fonts, icons and libraries removes that time and keeps working when a CDN has a bad day.
4. Layout that jumps
CLS — layout shift — is the most annoying error for a reader: you are about to tap a button and the page moves. The fix is to always declare image and video dimensions, and reserve space for anything that arrives later.
5. No caching
A service worker plus aggressive cache headers make the second visit almost weightless: pages you already opened load from the phone's memory, even on a flaky connection.
Where to start
Measure before touching code: PageSpeed Insights on the live site, not on your laptop. Then fix in order of weight — usually images, then scripts, then fonts. An afternoon is enough to move from "poor" to "good", and conversions notice sooner than you expect.
