You have never seen your own site the way a customer does. You are on wifi, with everything cached, on a laptop.
TL;DR Google’s threshold is 2.5 seconds for main content, measured at the 75th percentile on mobile. Oversized images cause most failures. Compress them, defer your scripts, delete dead widgets. Usually an afternoon.
Measure before you touch anything
Run your booking page and your top service page through Google PageSpeed Insights. Read the mobile score only. Desktop is flattering and irrelevant.
Record three numbers
| Metric | Good | What it means |
|---|---|---|
| LCP (Largest Contentful Paint) | Under 2.5s | When the main content appears |
| INP (Interaction to Next Paint) | Under 200ms | How fast it responds to a tap |
| CLS (Cumulative Layout Shift) | Under 0.1 | How much things jump around |
Google measures these at the 75th percentile, meaning it has to be fast for most visitors, not the best-case one.
Then scroll down in the report. It names the specific files causing the delay. That list is your work order.
Images cause most of it
The usual pattern: someone exports a photo straight from a camera, uploads it, and the browser scales it down to fit a phone. The visitor downloads a file sized for a billboard to look at something the size of a playing card.
The fix, in order
- Resize before uploading. Export at roughly twice the display width, no more.
- Convert to WebP. Typically much smaller than JPEG at the same visual quality.
- Compress. Free browser tools like Squoosh do this with no install.
- Add
loading="lazy"to every image below the fold. - Set explicit width and height on every image tag, which prevents layout shift.
| Use | Width | Target size |
|---|---|---|
| Hero | 1600 to 2000px | under 300 KB |
| In-page photo | 800 to 1200px | under 150 KB |
| Thumbnail | 400px | under 50 KB |
| Logo | Actual display size | under 30 KB |
This alone fixes most local business sites.
Script deferral
Scripts block rendering. The browser stops building the page to run them.
- Add
deferto any script that does not need to run before paint. That is most of them. - Add
asyncto independent third-party scripts like analytics. - Move tag managers below the fold where the platform allows.
- Delay chat widgets until the user interacts or scrolls. Chat tools are among the heaviest things on a typical site and almost nobody needs them in the first second.
Delete what you are not using
Sites accumulate. Audit what actually loads.
Common dead weight
- Chat widgets from a service you cancelled.
- Two or three analytics tools when one would do.
- A popup builder used once for a promo two years ago.
- Social feed embeds that pull a full script to show three posts.
- Review carousels calling an external API on every load.
- Font files for weights you never use.
How to find them. In PageSpeed Insights, look at the third-party summary. Anything you do not recognise or do not use, remove.
Fonts, the quiet one
A custom font is a file that must download before text renders in it.
- Limit to two families and the weights you actually use. Every extra weight is another file.
- Add
font-display: swapso text renders in a fallback immediately and swaps when the font arrives. - Self-host rather than calling a third-party font service, which adds a connection.
The booking flow specifically
Speed on the booking page matters more than anywhere else, because that visitor already decided.
- Load the booking widget on interaction, not on page load. Show a button, load the calendar when tapped.
- If your scheduler is an iframe, lazy-load it.
- Test the whole flow on cellular, not wifi, in an incognito window.
- Time it end to end. Landing to confirmed booking. Anything over 60 seconds is losing people.
The realistic order of work
| Priority | Task | Effort | Impact |
|---|---|---|---|
| 1 | Compress and resize all images | Afternoon | Highest |
| 2 | Lazy-load below-fold images and embeds | 1 hour | High |
| 3 | Remove unused widgets and scripts | 1 hour | High |
| 4 | Defer remaining scripts | 1 hour | Medium |
| 5 | Fix fonts | 30 min | Medium |
| 6 | Delay chat widget | 30 min | Medium |
Then measure again. Same pages, same tool, and compare.
What to ask whoever maintains your site
Three questions that produce useful answers without you needing to understand the replies in detail.
- “What is our mobile PageSpeed score and our LCP?” A competent answer has actual numbers.
- “Are our images sized for how they display?” This is the most common cause and the easiest to confirm.
- “What third-party scripts are loading that we do not use?”
Run your booking page through PageSpeed Insights right now on mobile. Whatever it names as the top blocking file is your afternoon, and it is usually a photograph.
Don’t have the time? [BOOK A CALL]
