Someone with water coming through the ceiling taps your website from the map, watches a slider load, waits, and goes back to the next listing before your phone number appears. That buyer never shows up in any report as a lost lead.
Speed optimization for small business websites is the work of keeping that person. It means making the pages that bring calls and inquiries load fast, respond quickly and stay stable on a mid-range phone with a patchy connection, and leaving the chase for a perfect score on every page to someone else.
Start With the Pages That Bring Leads
Speed work has limited time and budget, so spend it where it affects revenue. For most local service businesses, that means the homepage, the main service pages, landing pages used for ads or Google Business Profile, and the contact or booking page.
Make a short list of those pages from your analytics, sorted by how many leads or high intent visits each gets. A plumbing company's emergency repair page deserves attention long before its blog archive. Fix the top five pages well before touching the rest.
Test those pages the way buyers use them. Open each one on an ordinary phone over mobile data, not on office wifi with a new laptop, and note how long it takes before you can read the headline and tap the phone number.
Learn the Three Core Web Vitals
Google's Core Web Vitals measure three parts of the experience real visitors have. Each is assessed at the 75th percentile of page visits, so most visitors need a good experience, not just the lucky ones on fast connections.
| Metric | What it measures | Good | Poor | Common causes on service sites |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | How long until the main content, often the hero image or headline, appears | 2.5 s or less | Over 4 s | Huge hero images, slow hosting, render blocking CSS and scripts |
| INP (Interaction to Next Paint) | How quickly the page responds to taps, clicks and typing | 200 ms or less | Over 500 ms | Heavy JavaScript, page builders, chat widgets, many tracking tags |
| CLS (Cumulative Layout Shift) | How much the layout jumps while loading | 0.1 or less | Over 0.25 | Images without dimensions, late banners, web fonts, injected widgets |
INP replaced First Input Delay as a Core Web Vital in 2024, so older reports that mention FID are out of date. Google treats these metrics as part of its page experience signals, alongside things like HTTPS and avoiding intrusive interstitials.
Measure With Field Data First
There are two kinds of speed data. Field data comes from real Chrome users visiting your site. Lab data comes from a single simulated test, such as a Lighthouse run. Field data is what Google uses for Core Web Vitals, so start there.
Use:
- PageSpeed Insights for field data on a URL, with lab diagnostics underneath
- Search Console's Core Web Vitals report for groups of pages across the site
- Lighthouse in Chrome for testing fixes before and after
- Your own phone on mobile data, for a reality check
Small sites often lack enough traffic for page level field data. In that case, use the origin level data when available and lean on lab tests, but remember lab scores change between runs. Record a baseline before making changes so you can see what actually improved.
Fix Slow Loading First
LCP is usually the biggest problem on small business sites, and the cause is often a single oversized hero image. A photo straight from a camera or stock site can be many times larger than the screen needs. web.dev's guide to Largest Contentful Paint breaks LCP into server response, resource load and render delay, which helps locate the problem.
Typical fixes include:
- Resize the hero image to the size it displays at, and serve WebP or AVIF
- Do not lazy load the hero image, and give it high fetch priority
- Replace autoplay video backgrounds and sliders with one still image
- Improve hosting or add page caching and a CDN if server response is slow
- Remove or defer CSS and scripts that block rendering
Lazy loading belongs on images further down the page, not on the main image a visitor sees first. If the headline text is the largest element, check web fonts too, since a slow font file can delay the moment the main message appears.
Make Taps and Forms Respond Quickly
Poor INP feels like a page that ignores you. Someone taps the menu or the "Book now" button and nothing happens for a moment, so they tap again or leave. The cause is almost always too much JavaScript running on the main thread at the wrong time.
Common fixes, covered in web.dev's guide to Interaction to Next Paint, include removing unused scripts, deferring less important scripts until after the page is usable, breaking up long tasks and simplifying heavy page builder elements. Forms deserve a specific check: some form plugins load large libraries on every page, even pages without a form.
A typical example is a quote form with address autocomplete, a date picker and validation scripts, all loading before the visitor even scrolls to it. Loading those pieces only when the form comes into view, or using simpler native inputs, often makes the whole page feel quicker.
Stop the Page From Jumping
Layout shift is the page moving while someone is reading or about to tap. A classic example is a visitor going to tap the phone number just as a cookie banner or promo bar pushes everything down, so they hit the wrong link.
Look for:
- Images and video embeds without width and height set
- Banners, promo bars and cookie notices inserted above content after load
- Review or map widgets that load late and push content down
- Web fonts that swap in with very different sizes
The fix is usually to reserve space: set dimensions on media, give embeds a fixed height container and place late loading notices where they overlay rather than push content. web.dev's guide to Cumulative Layout Shift covers the less obvious causes.
Cut Scripts and Widgets That Do Not Earn Their Place
Third party tools pile up over the years. A typical service site may carry a chat widget, two analytics tools, an old ad pixel, a heatmap tool nobody checks, a review widget and a social feed. Each one adds requests and JavaScript.
List every script and ask whether it supports conversion or measurement today. Remove the ones that do not, load the rest after the main content, and replace heavy embeds, such as a full map on every page, with a lighter link or static image where possible. On WordPress, this often means removing plugins rather than adding an optimization plugin on top.
Tag managers deserve a look as well. They make it easy to add tags and easy to forget them, so review the container for tags from old campaigns, agencies or tools you no longer pay for.
Prioritize Speed Optimization for Small Business Websites by Impact
Work in this order on your top lead pages: hero image and hosting for LCP, then layout shifts around the phone number and form, then scripts and widgets for INP. Retest after each batch.
Common mistakes include:
- Chasing a perfect lab score instead of passing field thresholds
- Stacking several optimization plugins that conflict
- Lazy loading the hero image
- Optimizing the blog while service pages stay slow
- Breaking forms or tracking while deferring scripts
Always test the form and phone link after speed changes. A fast page that no longer sends leads is a step backwards.
Be patient with field data. PageSpeed Insights and Search Console report real user data over a rolling 28 day window, so improvements take a few weeks to show fully. Use lab tests to confirm a fix worked immediately, then watch the field data catch up.
Check Speed and Conversion Together
Speed problems often sit alongside conversion problems, so I usually look at both together, as described in the website conversion audit guide. For speed work on an existing site, see website optimization or WordPress optimization. If your site is too heavy to fix in place, a static website may be the better route. Send me the pages that matter most and I will tell you what is slowing them down.
Frequently asked questions
What are good Core Web Vitals scores?
Per web.dev, a good Largest Contentful Paint is 2.5 seconds or less, a good Interaction to Next Paint is 200 milliseconds or less, and a good Cumulative Layout Shift is 0.1 or less. Each is measured at the 75th percentile of real page visits, separately for mobile and desktop.
Does website speed affect Google rankings?
Core Web Vitals are part of the page experience signals Google uses, but relevance and content quality matter far more. A fast page will not outrank a much more useful one. Speed matters most because slow pages lose visitors before they read your offer or call.
What slows down small business websites the most?
The usual causes are oversized hero images, slow or overloaded hosting, heavy page builders, too many plugins, and third party scripts such as chat widgets, tracking tags and social or review embeds. Images without set dimensions and late banners cause most layout shift problems.
Why is my PageSpeed score different every time?
Lab scores come from a single simulated test, and results vary with network conditions, server load and third party scripts. Use field data from real users as the main measure where available, and run several lab tests before and after a change rather than trusting one run.