

Most sites fail Google's Core Web Vitals for three reasons: a bloated hero image, unoptimised photos, and JavaScript nobody removed after the last redesign. All three are fixable without an agency — in about two hours.
This checklist walks you through the highest-impact fixes, ranked easiest to hardest. Free tools included after every section.
PageSpeed Target
80+
achievable with just these 3 fixes
LCP is how long it takes the biggest visible element on your page to load. Google wants it under 2.5 seconds — most sites fail this on the hero image alone.
🎯 Target
Under 2.5s
LCP load time
⚠️ Why it matters
Google uses LCP as a direct ranking signal. If LCP creeps past 4 seconds, bounce rates climb sharply — and rankings drop with them.
Most sites have a hero image that's 2MB when it should be 200KB. Run it through squoosh.app or tinypng.com — drag in, quality to ~75%, download. You won't see the difference; the browser will.
Counter-intuitive but correct — the hero is the one image you want loaded immediately. Find the hero <img> tag and add the attribute. This skips lazy-load behaviour on your most important asset.
<img src="hero.jpg" loading="eager" />
Add one line to your <head> and the browser starts downloading the hero before it even finishes parsing the page. Free speed-up, two lines of HTML.
<link rel="preload" as="image" href="/hero.jpg" />
WebP gives 60–80% smaller files at the same visual quality. Squoosh exports WebP directly. On WordPress, 'Converter for Media' plugin does it across your whole library automatically.
Free tool: Google PageSpeed Insights — paste your URL, scroll to the LCP section. Google names the exact element causing your slow LCP.
Most sites are 70–90% image weight. The HTML, CSS, and JavaScript are tiny compared to a few uncompressed photos. This is the easiest weight to cut.
500KB
Target total image weight per page
Run every image through squoosh.app. Aim for under 100KB each. A 1200px product photo at 80% WebP quality lands at 40–80KB and looks identical to the 2MB original.
Don't serve a 4000×3000 photo in a 600px slot. The browser downloads every pixel and shrinks them. Resize to actual display dimensions — Squoosh, Preview (Mac), or Photos (Windows) all have resize toggles.
Anything below the first screenful should not block initial load. One attribute does it — add it to every image tag below your hero.
<img src="..." loading="lazy" />
Cloudflare's free tier with the Polish setting enabled automatically compresses and optimises images at the edge. 15-minute setup. Works even without touching your image library.
Free tool: web.dev/measure — look at "Eliminate render-blocking resources" and "Properly size images". These tell you exactly which files are the problem.
Most sites load 4–10x more JavaScript than they need. Legacy plugins, half-installed widgets, and abandoned tracking scripts nobody removed after the last redesign.
200KB
Target JS on initial page load
Open site → right-click → Inspect → Cmd/Ctrl+Shift+P → type 'Coverage' → reload. You'll see every JS file and what percentage is actually used. Under 30% usage = dead weight.
Any script tag not needed to render the first screen should be deferred. One word change that often shaves a full second off load time.
<script defer src="..."></script>
Audit for Hotjar, FullStory, Crazyegg, old Facebook Pixels, A/B testing tools nobody logs into anymore. Each one is a network request and 20–100KB of JavaScript. If you're not using it, remove it.
Anything you haven't touched in 6 months is a candidate for removal. Each active plugin typically adds 10–50KB of JS and CSS. Deactivate, test, delete.
Free tool: web.dev/measure → "Reduce unused JavaScript" report — lists every JS file, its size, and how much is dead code.
Most sites can move PageSpeed scores from 30–50 to 80–90 using only the steps above. Try them — most take about 2 hours total. Re-test on PageSpeed Insights to see your delta. The numbers will tell you whether you needed an agency or just a free afternoon.
If your stack is more complex (e-commerce checkout, custom backend, weird CDN behaviour, server-side rendering issues) or you'd rather have someone handle this end-to-end, that's what we do at Adri.
Book a 15-min audit walkthrough →We'll audit your site live on the call — you leave knowing exactly what's broken.