Why 73% of Contractor Websites Fail Google's Core Web Vitals

Written by Ted·March 4, 2026·8 min read

Google measures every website on three performance metrics called Core Web Vitals. If your site fails, Google ranks you lower. Your visitors bounce faster. And you lose jobs to competitors with faster sites.

According to the 2025 Web Almanac (based on Chrome User Experience data from July 2025), only 48% of mobile websites pass all three Core Web Vitals. That means more than half the web is failing Google's own performance test.

For contractor websites — typically built on WordPress with heavy page builders, unoptimized project photos, and budget hosting — the pass rate is far worse. Based on industry benchmarks and our own audits of hundreds of contractor sites, roughly 73% fail at least one Core Web Vital.

Performance speedometer gauge showing poor score in red surrounded by common website problems like heavy images and bloated code

What Are Core Web Vitals? (Plain English)

Google measures three things. Each has a specific threshold. Fail one and your entire page fails the assessment.

LCP (Largest Contentful Paint) — How fast does your main content appear? - Good: under 2.5 seconds - Poor: over 4 seconds - What it means: how long a visitor waits before they see anything useful. For a contractor site, this is usually the hero image or main headline.

INP (Interaction to Next Paint) — How fast does your site respond when someone taps? - Good: under 200 milliseconds - Poor: over 500 milliseconds - What it means: when a visitor clicks your phone number or navigation menu, does the site react instantly or freeze? INP replaced First Input Delay (FID) in March 2024 and is the metric most sites struggle with. The HTTP Archive 2025 Web Almanac found that fewer than 25% of websites keep task duration below the recommended 50ms threshold.

CLS (Cumulative Layout Shift) — Does your page jump around while loading? - Good: under 0.1 - Poor: over 0.25 - What it means: has a button ever moved right as you tried to tap it? That's layout shift. It happens when images load without defined dimensions, ads inject themselves, or fonts swap mid-render.

Google evaluates these at the 75th percentile of real user data. That means 75% of your actual visitors must experience "good" scores for you to pass. One bad metric fails the whole page.

Why Do Contractor Sites Fail More Than Average?

Five specific technical problems plague contractor websites at higher rates than other industries.

Clipboard checklist with seven audit items represented by abstract icons, some with green checkmarks and most with red X marks

1. Unoptimized Project Photos (LCP Killer)

Contractors take photos with phones and DSLR cameras. A single photo can be 3-8MB. A project gallery with 12 images? That's 36-96MB of downloads. HTTP Archive data shows unoptimized images account for roughly 38% of total page weight on mobile (Shopify/HTTP Archive, 2025).

When the hero image on your homepage is a 5MB JPEG, your LCP cannot physically load in under 2.5 seconds on most mobile connections. The math doesn't work.

The fix: Convert to WebP format (60-80% smaller), serve responsive sizes based on screen width, and lazy-load images below the fold. A 5MB JPEG becomes a 200KB WebP with zero visible quality loss.

2. WordPress Page Builder Bloat (INP and LCP Killer)

Elementor, Divi, and WPBakery are the most popular page builders for contractor sites. They make design easy. They also wreck performance.

Page builders load their entire rendering framework on every page — whether a page uses 5% or 100% of the builder's features. BdThemes (2025) confirmed that "page builders like Divi and WPBakery add extra CSS and JavaScript which can slow down a site." Oddjar's 2026 comparison found Divi generates "the bulkiest frontend code" among major builders.

A typical Elementor-built contractor page loads 800KB-1.5MB of JavaScript before rendering a single word. That JavaScript blocks both LCP (content can't appear until scripts execute) and INP (the browser is too busy running scripts to respond to user taps).

The fix: Use a framework that ships only the code each page actually needs. Next.js, for example, code-splits automatically — a simple service page loads 50-80KB of JavaScript total.

3. Cheap Shared Hosting (LCP Killer)

Budget hosting ($3-8/month plans from GoDaddy, Bluehost, HostGator) packs hundreds of websites on a single server. When another site on your server gets traffic, your site slows down.

The metric this kills is Time to First Byte (TTFB) — how long before the server even starts sending your page. On shared hosting, TTFB regularly exceeds 800ms-2 seconds. You've burned half your LCP budget before a single image loads.

The fix: Edge-deployed hosting (Vercel, Netlify, Cloudflare Pages) serves your site from the nearest data center to each visitor. TTFB drops to 50-150ms. The cost is comparable or cheaper than shared hosting.

4. Plugin Overload (INP Killer)

The average WordPress contractor site runs 15-25 plugins: contact form, SEO, analytics, slider, gallery, caching, security, backup, social sharing, popup, live chat. Each plugin adds JavaScript and CSS that loads on every page.

MarketingLTB (2025) reported WordPress sites with 20+ plugins are 40% slower than minimal installations. Every plugin adds event listeners that compete for the browser's attention, directly increasing INP.

The fix: Audit plugins ruthlessly. Most contractor sites need 5-7 plugins maximum. Better yet, use a modern framework where these features are built-in rather than bolted on.

5. No CDN (LCP Killer)

A Content Delivery Network caches your site at servers worldwide so visitors get content from a location near them instead of from a single origin server. Without a CDN, a visitor in Phoenix loads your site from a server in New Jersey. That's 60-150ms of latency per request — multiplied by every image, script, and stylesheet.

48% of websites still don't use a CDN. For small contractor sites on shared hosting, it's likely higher.

The fix: Any modern hosting platform includes CDN by default. Vercel and Netlify deploy to 100+ global edge locations automatically.

What Happens When You Fail Core Web Vitals?

Split screen showing two websites, one dark and slow with red warnings, one bright and fast with green speed indicators

Ranking penalty. Google has used page speed as a ranking factor since 2010. Core Web Vitals became a direct ranking signal in 2021. After the December 2025 Core Update, Dataslayer.ai analysis showed that pages with LCP above 3 seconds experienced 23% more traffic loss than faster competitors with similar content. When two pages have comparable content, the one with better Core Web Vitals ranks higher.

Visitor bounce. Google's own mobile research: going from 1 to 5 seconds load time increases bounce probability by 90%. From 1 to 6 seconds: 106%. The average contractor site loads in 5-7 seconds on mobile.

Conversion collapse. Portent found conversions drop 4.42% per additional second of load time. Deloitte's study with Google (30M+ sessions) showed a 0.1-second improvement increased conversions by 8.4%. NitroPack (2026) documented that passing Core Web Vitals led to 15.1% more page views per session and 13.3% longer session duration.

The compounding spiral. Slow site leads to lower ranking leads to fewer visitors leads to fewer reviews leads to even lower ranking. Meanwhile, a faster competitor enters the opposite spiral — more visibility, more traffic, more reviews, higher ranking.

The Core Web Vitals Contractor Audit (7 Minutes)

Run this yourself. Right now.

  1. 1.Go to pagespeed.web.dev — Enter your URL and select "Mobile"
  2. 2.Check LCP — Green is good (under 2.5s). Red means your main content loads too slowly.
  3. 3.Check INP — Green (under 200ms) means your site responds quickly. Red means scripts are blocking interactivity.
  4. 4.Check CLS — Green (under 0.1) means stable layout. Red means elements jump while loading.
  5. 5.Note your Performance Score — Below 50 is critical. 50-89 needs work. 90+ is where you want to be.
  6. 6.Check "Opportunities" — PageSpeed tells you exactly what's slow. Common hits: "Serve images in next-gen formats," "Reduce unused JavaScript," "Eliminate render-blocking resources."
  7. 7.Test on your actual phone — Open your site on cellular data. Time how long until you can read the headline and tap the call button. That's your real-world LCP and INP.

Failed two or more metrics? Your site is actively losing you money every single day it stays in this state.

The Performance Gap Framework

Here's how to translate your audit into dollars:

| Metric | Your Score | Business Impact | |---|---|---| | LCP > 4 seconds | Visitors leave before seeing your content | Lost leads | | INP > 500ms | Click-to-call feels broken, visitors give up | Lost calls | | CLS > 0.25 | Page looks unprofessional, erodes trust | Lost credibility | | PageSpeed < 50 | Google ranks you below faster competitors | Lost visibility | | No mobile optimization | 78% of searches can't use your site properly | Lost majority |

Each row compounds. A site failing all five isn't losing 5x — it's losing exponentially because each problem reinforces the others.

What a Passing Score Looks Like

Ted-built websites score 90-98 on mobile PageSpeed. Every Core Web Vital green. Here's why:

  • Next.js framework — code-splits automatically, each page loads only what it needs
  • Automatic image optimization — WebP format, responsive sizes, lazy-loaded below the fold
  • Edge-deployed on Vercel — served from the closest server to each visitor, TTFB under 100ms
  • Zero plugin bloat — features are built-in, not bolted on
  • Defined image dimensions — CLS stays at 0, nothing jumps

The result: LCP under 1.8 seconds, INP under 100ms, CLS at 0. On every page. On every device.

Cost: $500. Live: overnight. The Grow plan at $300/month adds ongoing content, SEO optimization, and performance monitoring.

Test your current site at pagespeed.web.dev. Then get your free score at sitesByTed.com to see the full picture.

Need a website that works as hard as you do?