Website speed optimization comes down to seven fixes: shrink your images, load fonts sensibly, cut third-party scripts, use good hosting with a CDN, stop CSS and JavaScript from blocking the page, cache aggressively, and reserve space so the layout doesn't jump. Do those seven and most business websites move from "poor" to "good" in Google's Core Web Vitals report. Everything else is fine-tuning.
This guide explains what Google measures, walks through each fix in plain English, and shows you how to test your own site in ten minutes. For the deeper background on why speed affects rankings, see our post on Core Web Vitals for small businesses.
What Google Measures (In Plain English)
Google scores three things, and it scores them using data from real Chrome visitors on your site — not a lab test.
| Metric | What it really means | Good score |
|---|---|---|
| LCP (Largest Contentful Paint) | How long until the biggest thing on screen — usually a hero image or headline — is visible | Under 2.5 seconds |
| INP (Interaction to Next Paint) | When someone taps a button or opens a menu, how long before the page visibly responds | Under 200 milliseconds |
| CLS (Cumulative Layout Shift) | How much the page jumps around while loading — the thing that makes you tap the wrong link | Under 0.1 |
Think of it this way: LCP is "does it show up," INP is "does it respond," and CLS is "does it hold still." A visitor on a phone in a parking lot notices all three, and so does Google.
The 7 Fixes That Matter Most
These are ordered by how much improvement they typically deliver on a small business site.
1. Fix your images
Images are the number one cause of slow business websites. A photo straight off a phone is often 3–5 MB; a properly prepared web image is usually 50–200 KB.
- Resize images to the size they display at. A 4,000-pixel-wide photo in a 400-pixel-wide slot is wasted download.
- Convert to a modern format (WebP or AVIF) instead of JPEG or PNG.
- Compress. Tools like Squoosh do this for free in the browser.
- Lazy-load images below the fold so they only download when the visitor scrolls near them — but never lazy-load the hero image, because that delays LCP.
If you fix nothing else, fix this. It's the highest-return hour you can spend.
2. Load fonts sensibly
Custom fonts look great and quietly cost you. Every font file is another download, and by default many browsers hide text until the font arrives.
- Use one or two font families, not five.
- Host fonts on your own domain instead of pulling from a third-party service — it saves a connection.
- Set
font-display: swapso text appears immediately in a fallback font and swaps when the real one loads.
3. Cut third-party scripts
Chat widgets, heat-map tools, Facebook pixels, review badges, embedded Instagram feeds, the analytics tool you forgot you installed — each one adds JavaScript that runs on your visitor's phone before the page feels usable. This is the most common cause of poor INP scores.
Go through your tag manager or plugin list and ask, for each script, "would I notice if this disappeared?" Most business sites can remove half of them. Load the ones you keep after the page is interactive.
4. Use good hosting and a CDN
Before your page can do anything, the server has to respond. Cheap shared hosting frequently takes 800 ms to 2 seconds just to send the first byte, and no front-end fix can recover that time.
A CDN (content delivery network) stores copies of your site in data centers around the world so a visitor in Denver gets it from Denver instead of Virginia. Cloudflare's free tier, Vercel, and Netlify all include this. If your host's time-to-first-byte is over 600 ms in PageSpeed Insights, the hosting is the problem.
5. Stop CSS and JavaScript from blocking the page
By default, browsers stop and wait for every stylesheet and script in your page's head before drawing anything. On a page-builder site, that can be a dozen files.
- Inline the small amount of CSS needed for the top of the page and load the rest afterward.
- Add
deferto scripts that don't need to run immediately (which is almost all of them). - Remove unused CSS. Theme frameworks often ship 200 KB of styles for a site that uses 20 KB.
This one usually needs a developer. On Wix or Squarespace it isn't possible at all — you don't control the head of the page.
6. Cache aggressively
Caching means the browser (or CDN) keeps a copy of a file so it doesn't have to download it again. Return visitors — and every additional page a first-time visitor views — get near-instant loads.
Set long cache lifetimes on images, fonts, CSS, and JavaScript. On WordPress, a caching plugin plus page caching at the host handles most of it. On a static site, the entire page is pre-built and cached at the edge.
7. Reserve space so nothing jumps
Layout shift happens when something loads late and pushes content down: an image with no dimensions, a banner injected by a script, an ad slot, or a font that swaps to a different size.
- Always set
widthandheighton images and video embeds so the browser reserves the space. - Never insert content above existing content after load (cookie bars and promo bars are the usual offenders — pin them instead).
- Pick a fallback font with similar proportions to your custom font.
CLS is usually the easiest metric to fix, so don't skip it.
How to Test Your Site
You don't need paid tools. Two free ones tell you what Google sees.
PageSpeed Insights (pagespeed.web.dev). Enter a URL and you get real-user Core Web Vitals at the top (if your site has enough traffic) and a lab diagnosis below with specific items like "properly size images" or "reduce unused JavaScript." Test your homepage and your most important service page, and look at the mobile tab first — mobile scores are almost always worse and reflect what most of your customers experience.
Google Search Console, Core Web Vitals report. Under Experience in the left menu, this groups your pages into Good, Needs Improvement, and Poor based on real visitor data over the past 28 days. This is what Google uses for ranking. If a group of pages shares a problem — say, every blog post has poor CLS — that usually points to one template issue you can fix once.
Retest after each fix. Real-user data lags, so Search Console can take up to a month to reflect improvements that PageSpeed Insights shows immediately.
Why Custom Static Sites Are Fast by Construction
Most slow sites are slow because of the platform: WordPress assembles each page from a database on every request, page builders inject layers of JavaScript, and DIY platforms ship code you can't remove.
A custom static site flips this. Every page is pre-built as plain HTML at deploy time and served from a CDN. There's no database to query, no plugin stack, no builder runtime — just the code the page needs. Images are sized and converted during the build, fonts are self-hosted, and there are no third-party scripts unless you add one. Fixes 1 through 7 aren't a checklist you work through afterward; they're the default. That's the approach behind our SEO website design service and our website redesigns.
Where Built For Rank Fits
If your current site is on WordPress and reasonably built, working through the seven fixes above — or having your developer do it — will probably get you into the good range, and that's the cheaper path. If you're on a page builder that won't let you touch the code, or your site is old enough that a rebuild makes more sense than patching, we build custom static sites for a $1,500 one-time fee, delivered in one to two weeks, with speed handled by construction rather than by plugin. Either way, book a free consultation and we'll run your site through the tests above and tell you honestly which path makes sense.