
Website Speed Optimization: How to Get a Google PageSpeed Score Above 90
Why Speed Is a Business Problem, Not Just a Technical One
Google confirmed Core Web Vitals as a ranking factor in 2021. Nothing has changed â it still matters in 2026. A slow site doesn’t just rank lower. It loses money.
Amazon found that every 100ms of load time cost them 1% in sales. That’s their data. For a small business doing $500,000 a year, 100ms slower means $5,000 gone. Not theoretical. Real.
Bounce rate climbs sharply past 3 seconds. At 5 seconds, you’ve lost a significant portion of visitors before theyVe read a single word. Google’s own research pegs 53% mobile abandonment at 3+ second load times.
Core Web Vitals measures three things: Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS). Each one affects both rankings and user experience. You need all three in the green to pass.
Image Optimization: The Biggest Win for Most Sites
Images account for 50-75% of page weight on most small business websites. That’s the first thing to fix.
Convert everything to WebP. It compresses 25-35% better than JPEG at equivalent quality. Tools like Squoosh (free, browser-based) or the ShortPixel WordPress plugin handle bulk conversion. In Photoshop, export as WebP directly from the File menu.
Add lazy loading to every image below the fold. In HTML it’s one attribute: loading="lazy". In WordPress, it’s on by default since version 5.5. Images outside the viewport don’t load until the user scrolls to them. That alone cuts initial page weight dramatically.
Set explicit width and height attributes on every image. This prevents layout shift (fixes CLS) by reserving space before the image loads. Forgetting this is one of the most common CLS failures.
Compress without obsessing over perfection. An 80% quality WebP is visually identical to a 100% JPEG for most uses. Use TinyPNG, Imagify, or ShortPixel. Aim for hero images under 200KB, thumbnails under 50KB.
Render-Blocking Scripts: What They Are and How to Fix Them
Render-blocking resources are CSS and JavaScript files that pause the browser from displaying anything while they load. Every second spent waiting on a render-blocking file is a second the user sees a blank screen.
Open Chrome DevTools, run Lighthouse, and look at the “Eliminate render-blocking resources” recommendation. It’ll list exactly which files are causing delays.
For JavaScript: add defer or async attributes to non-critical scripts. defer loads the script after HTML parsing. async loads it in parallel but executes immediately. Use defer for most third-party scripts â Google Tag Manager, analytics, chat widgets.
<head> and defer non-critical stylesheets. The Critical npm package extracts above-the-fold CSS automatically. WordPress plugins like WP Rocket do this with a checkbox.Third-party scripts are often the worst offenders. Every chat widget, review badge, social embed, and ad pixel adds load time. Audit your third-party scripts quarterly. Remove what you don’t use. Load the rest with defer. Book a free 30-minute strategy call — I will review your setup and give you 3 specific fixes.


