Blog / Apr 15, 2026
Why most small-business sites score in the 40s on mobile
by Connor
Drop a typical small-business website into pagespeed.web.dev on mobile and you will usually see a number in the 40s or 50s. Sometimes the 30s. The site looks fine on the owner’s laptop, but Google is grading it on a throttled phone, and the throttled phone is what most of your real customers are using. The same four problems show up on almost every audit.
1. Unsized hero images causing layout shift
Most templates ship hero images without explicit width and height attributes. The browser does not know how big the image will be until the bytes arrive, so it leaves a zero-pixel gap, paints the text, then yanks the text down when the image loads. That visible jump is Cumulative Layout Shift, and Lighthouse penalizes it heavily. The fix is one line of HTML per image: width and height attributes that match the natural aspect ratio.
2. Forty third-party scripts before the page paints
WordPress sites with a stack of plugins commonly load thirty to fifty scripts before the page is interactive: analytics, chat widgets, popup builders, A/B testing, three different SEO tools, a cookie banner, a social-share kit. Each one adds 50-300 ms of blocking time. The fix is not to optimize them; the fix is to delete most of them. The chat widget and the popup builder are the same conversion in 90% of cases.
3. Web fonts that flash for a full second
Custom Google Fonts loaded the wrong way will leave the page invisible until the font arrives, then flash to swap. On a slow mobile connection that gap is 600-1200 ms. The fix is font-display: swap (so the system font shows immediately and swaps when the custom font arrives) plus a self-hosted subset that only includes the characters you actually use. We use next/font on every site to do this automatically.
4. Animation runtimes shipping 100 KB to render a fade-in
framer-motion is 60-80 KB gzipped. Lottie is 100+ KB. Both ship to the browser before the page is interactive, just to render a fade-in or a scroll-driven reveal. CSS keyframes do the same thing in 0 KB and the browser composites them on the GPU for free. We do not install JavaScript animation libraries on any site we ship. The visual result is identical; the Lighthouse score is 8-12 points higher.
What this looked like on mod585
When we rebuilt Monroe Overhead Door in early 2026, the old site had all four problems. Mobile Lighthouse Performance was 82. We removed the animation runtime, sized every image, swapped the font loading, and trimmed the third-party scripts to just the ones the business actually uses. The new site scores 94 on mobile and 100 on desktop. The owner did not change anything about how the site looks. The fix was almost entirely subtraction.