Click

Mobile Page Speed for Contractor Sites — Real Numbers, Real Fixes

Slow mobile sites lose calls. What 'fast enough' means for contractor sites in 2026, the three things that slow most sites down, and how to fix them.

A slow contractor website doesn’t just frustrate visitors — it actively bleeds inbound calls. Every additional second of load time is roughly a 7–15% drop in mobile conversion, compounding across the funnel. A site that takes 4 seconds to become usable on a phone is leaking half its potential calls before anyone sees the hero.

This article walks through the speed targets that actually matter in 2026, the three issues that slow most contractor sites down, and the fixes that move both rankings and conversion.

This sits in the Click chapter of Why Your Website Isn’t Ringing.

The targets that matter (Core Web Vitals)

Google measures three metrics that together determine whether your page is “fast enough”:

  • LCP (Largest Contentful Paint): time until the largest visible content (usually the hero image) renders. Target: under 2.5 seconds on 4G mobile.
  • TBT (Total Blocking Time): total time the main thread is blocked by JavaScript during initial load. Target: under 200ms.
  • CLS (Cumulative Layout Shift): visual stability — how much things move around as the page loads. Target: under 0.1.

You can measure all three for free using PageSpeed Insights (pagespeed.web.dev). Run your homepage and your top 3 service-area pages. Anything in the red on mobile is a problem.

The benchmark from contractor sites we’ve audited: about 70% fail at least one Core Web Vital on mobile. Fixing those failures is one of the cheapest, highest-leverage Click optimizations you can make.

Issue 1: Oversized images (60–80% of the speed problem)

The single biggest cause of slow contractor sites: images that are way larger than they need to be.

A typical hero image on a contractor site:

  • 4032 x 3024 pixels (the iPhone resolution it was shot at)
  • 4.2 MB JPG file size
  • Loaded at full resolution even on a 390-pixel-wide phone screen

What it should be:

  • 1600 x 1200 pixels max (desktop) with smaller responsive variants for mobile
  • 180–280 KB WebP or AVIF file
  • Served via responsive image markup so mobile devices download the mobile-sized version

The fix:

  1. Resize images to 2x the largest display size (Retina-ready) before uploading
  2. Convert to WebP or AVIF format (60–80% smaller than JPG at the same visual quality)
  3. Use responsive image markup (srcset attribute) so different devices download appropriately sized variants
  4. Lazy-load images below the fold (modern browsers do this with loading="lazy" attribute)

Most modern site builders (Astro, Next.js, modern WordPress with Smush or ShortPixel) handle this automatically if configured. If your site is on an older platform, this is the highest-ROI manual cleanup you can do.

Issue 2: JavaScript bloat (15–25% of the speed problem)

The second biggest cause: JavaScript that loads before it needs to.

Common JS culprits on contractor sites:

  • Live chat widgets (Intercom, Drift, Olark) loaded synchronously in the head
  • Tracking pixels (Facebook, LinkedIn, multiple analytics scripts) loaded on initial page render
  • Form builders with heavy dependencies loaded everywhere instead of just on form pages
  • Page builder plugins (WordPress especially) with their entire JS payload loaded on every page

The fixes:

  1. Defer non-critical JavaScript with the defer or async attribute so it doesn’t block initial render
  2. Lazy-load chat widgets so they only initialize after the page is interactive (most chat tools support this)
  3. Audit tracking pixels and remove anything you’re not actively using
  4. Use Google Tag Manager to load tracking scripts conditionally instead of hardcoding them all into the page head

A typical contractor site we audit has 1.2–2.4 MB of JavaScript loading on the homepage. After cleanup, the same site usually runs at 200–400 KB without losing any user-visible functionality.

Issue 3: Uncompressed video backgrounds (when present)

Hero video backgrounds are popular in agency-built contractor sites. They almost always hurt more than they help:

  • A 30-second 1080p MP4 typically runs 8–25 MB
  • Mobile devices download the entire file before playback starts (in many cases)
  • Autoplay is blocked on most mobile browsers, so the visitor sees a black box where the hero should be

The fix: use a real photo as the hero. If you’re committed to motion, host the video on YouTube or Vimeo and embed it below the fold, lazy-loaded.

Issue 4: Slow hosting (when applicable)

If your hosting is slow, no amount of optimization will fix it. Symptoms:

  • Server response time (TTFB, Time to First Byte) over 600ms in PageSpeed
  • Pages slow even on initial load with no images or JS
  • Inconsistent load times — sometimes fast, sometimes slow

The fix: move to a real CDN-backed host. For static sites (Astro, Hugo, plain HTML): Cloudflare Pages, Netlify, or Vercel — all have free tiers that outperform paid VPS hosting. For WordPress: Kinsta, WPEngine, or Rocket.net.

Cheap shared hosting on GoDaddy or Bluehost is the most common hosting cause of slow contractor sites we see. Migrating off costs $20–$50/month and produces immediate measurable speed lift.

Issue 5: Render-blocking resources

Render-blocking CSS and JavaScript prevent the browser from displaying anything until they finish downloading and parsing. Two specific failure modes:

  • External fonts loaded synchronously (especially Google Fonts loaded via @import in your CSS instead of via <link rel="preload">)
  • Multiple CSS files loaded sequentially instead of consolidated and minified

Fixes:

  • Preload critical fonts with <link rel="preload" as="font">
  • Use font-display: swap so text renders in a fallback font while the custom font loads
  • Concatenate and minify CSS into one or two files maximum
  • Inline critical above-the-fold CSS, defer the rest

Modern static-site frameworks handle most of this automatically. Older WordPress installs often need a caching plugin (WP Rocket, Autoptimize) configured properly to do this manually.

What “fast enough” looks like in real numbers

A residential roofing client we audited and optimized in early 2025:

  • Before: LCP 5.8s, TBT 720ms, CLS 0.18 on mobile
  • After: LCP 1.9s, TBT 140ms, CLS 0.04 on mobile
  • Mobile call-button click rate: from 1.4% to 3.6%
  • Page-1 organic ranking gain across 12 service-area pages: average improvement of 8 positions
  • Total optimization time: roughly 12 hours of dev work

The optimization broke down to:

  • Image compression and WebP conversion (35% of the speed gain)
  • JavaScript deferral and chat widget lazy-load (28%)
  • Hosting migration to a CDN-backed setup (22%)
  • Font loading and CSS optimization (15%)

None of it required redesigning the site. All of it was tactical cleanup of the existing site’s delivery.

What to measure and how often

Run PageSpeed Insights on your homepage and top 3–5 pages monthly. Two tabs to focus on:

  • Mobile tab is where most of your traffic actually lives
  • Field data (real Chrome User Experience Report data) matters more than lab data — field data reflects what actual visitors experience

If your mobile field data is in the green (LCP <2.5s, TBT <200ms, CLS <0.1), you’re not leaving speed-related conversion on the table. If anything is in the red, you have a clear, prioritized fix list — Lighthouse and PageSpeed both rank the impact of each suggestion so you know where to focus first.

What to do this week

If you’ve never measured your site’s speed:

  1. Run PageSpeed Insights on your homepage. Note the mobile scores.
  2. Identify the largest hero image and resize it to 1600px wide max, convert to WebP.
  3. Check your live chat widget (if you have one) — switch it to lazy-load mode.
  4. Re-run PageSpeed. Most sites see measurable improvement from these three changes alone.

For the broader Click chapter context, see Why Your Contractor Website Isn’t Ringing (the 5-Second Test) and The Anatomy of a High-Converting HVAC / Plumbing Hero Section.

The full Click chapter is in Why Your Website Isn’t Ringing. If you’d like a free speed audit of your current site as part of a 15-minute call, book one here.

Frequently asked questions

What's a 'fast enough' load time for a contractor website?
Largest Contentful Paint (LCP) under 2.5 seconds on 4G mobile. Total Blocking Time (TBT) under 200ms. Cumulative Layout Shift (CLS) under 0.1. Hit those three Core Web Vitals targets and you'll outperform 80% of contractor sites and stop leaving conversion on the table.
Why is my mobile site slow when my desktop site is fast?
Almost always: oversized images that desktop hides via responsive design but mobile downloads anyway, excessive JavaScript loading on the initial page, and uncompressed video backgrounds. Each of these can be cut by 60–90% with no visible quality loss.
Is page speed a Google ranking factor?
Yes — Core Web Vitals are part of Google's Page Experience signal, and slow mobile sites rank worse than fast ones for the same query. The bigger impact, though, is on conversion: a 1-second improvement in LCP correlates with a 7–15% lift in mobile call-button engagement in the audits we've run.

Stop guessing why your phone isn't ringing.

Book a free call and we'll review your website, your lead capture, and your follow-up — then tell you the three highest-leverage changes. Local business owners get a free copy of Why Your Website Isn't Ringing.