Site Speed & Core Web Vitals
Core Web Vitals fixed on real CrUX data, not Lighthouse.
We get LCP under 2.5s, INP under 200ms, CLS under 0.1 in field data. Fixed in your codebase, measured in CrUX.
- Field data first: CrUX + GSC, not Lighthouse
- Code-level LCP, INP and CLS fixes as Git PRs
- Real-user monitoring tracked monthly

Trusted by ambitious brands worldwide
SEMrush agency
Rated #1 SEO agency in The Netherlands by SEMrush
100% Dedicated to SEO
SEO is all we do, and we're good at it
Most speed reports chase a green Lighthouse score.Then ignore the red CrUX data Google actually uses.We fix what real users feel.
Most speed reports chase a green Lighthouse score. Then ignore the red CrUX data Google actually uses. We fix what real users feel.
Lighthouse is a lab simulation on a throttled Moto G4. CrUX is the 28-day rolling field dataset Google pulls from real Chrome users on your site, and it is the data Google uses for the Core Web Vitals ranking signal. We baseline both, prioritise the metrics that are failing in the field, and ship code-level fixes for LCP, INP and CLS until your origin passes assessment.
See speed outcomesHow a speed engagement runs
How a LASEO site speed engagement runs
Five distinct phases. Baseline first, then LCP, then INP, then CLS, then RUM. Each phase ships fixes to production before the next begins, so improvements compound month over month in CrUX.
- 01
CrUX baseline + Lighthouse audit (week 1)
We pull 28-day CrUX origin and URL-level data via the PageSpeed Insights API for your top 20 templates (home, PLP, PDP, blog, pillar pages). Lighthouse runs in CI mode against the same set. Deliverable: baseline scorecard showing where each template sits versus the Good/Needs Improvement/Poor thresholds.
- 02
LCP analysis + image and preload optimisation (weeks 2-3)
We profile the LCP element on every template, add fetchpriority=high and preload hints, convert hero images to AVIF or WebP with correct responsive sizes, move the LCP image out of any lazy-load layer, and configure the CDN (Cloudflare Polish, Imgix or Vercel) to serve the right format per device.
- 03
INP analysis + JS bundle splitting + long-task fixes (weeks 4-5)
Chrome DevTools Performance profile of the slowest interactions. We split bundles by route, defer non-critical third parties to onload, break long tasks with scheduler.yield, and replace synchronous event handlers with passive listeners. INP is verified in field data via the web-vitals library.
- 04
CLS analysis + font/ad/image space reservation (week 6)
We reserve dimensions for every image, ad slot and embed, switch web fonts to font-display: optional or use size-adjust descriptors, and stop late-loading content from pushing layout. Cumulative Layout Shift is verified across the full user session, not just initial paint.
- 05
Real-user monitoring + continuous tracking (ongoing)
We instrument RUM (web-vitals JS reporting to GA4, Cloudflare Web Analytics, Vercel Analytics or SpeedCurve), set up alerting for regressions over the 75th percentile threshold, and add Lighthouse CI to your deployment pipeline so a slow PR cannot ship to production without review.

We work in your repo,not behind a speed plugin.
Speed plugins concatenate, lazy-load and cache around your problems. They never fix the long task in your hydration script or the layout shift from your web font. We sit in your Next.js, Liquid or WordPress codebase, identify the root cause of each failing metric, and ship the fix as a reviewable pull request your engineers merge.
What site speed work actually means
Site speed optimization, explained without the marketing fluff
Core Web Vitals is three metrics with very specific definitions, measured in two different ways, and what you optimise depends on which measurement you trust. Here is the honest decomposition.
LCP, INP and CLS explained
Largest Contentful Paint: time until the largest above-the-fold element renders. Interaction to Next Paint: 75th percentile of all interaction delays in a session, replacing FID since March 2024. Cumulative Layout Shift: total layout movement over the session lifetime. Good thresholds are 2.5s, 200ms and 0.1 at the 75th percentile.
Lab data vs field data
Lab data comes from Lighthouse running a throttled headless Chrome under controlled conditions. Field data is CrUX, which Google aggregates from real Chrome users over a rolling 28 days. Field data is what feeds the Core Web Vitals ranking signal and the GSC Core Web Vitals report. Optimising for Lighthouse without checking CrUX is optimising the wrong number.
Why mobile is always slower
Mobile means slower CPU (often 4-6x slower than desktop), slower network (median 4G is far from gigabit fibre), and the same JavaScript bundle being parsed and executed on a thermally throttled phone. The fix is not 'make the desktop site faster'; it is mobile-first asset budgets, route-level code splitting and avoiding heavyweight third-party tags.
INP is the metric most sites fail
Since INP replaced FID in March 2024, sites that used to pass Core Web Vitals started failing. INP measures the full delay from user input to next paint, so any long task on the main thread now hurts. JS-heavy SPAs (React, Vue, Shopify Hydrogen) are the most affected. Fixing INP is mostly JavaScript work, not network work.
HTTP/2 push is dead, 103 Early Hints is the replacement
HTTP/2 server push was deprecated by Chrome in 2022. The modern equivalent is 103 Early Hints, an HTTP status returned before the final response that lets the browser start preloading critical resources. Supported in Cloudflare, Fastly and Vercel. Pairing Early Hints with fetchpriority=high on the LCP element can reduce LCP by 200-600ms.
Speed plugins cannot fix everything
WP Rocket, Autoptimize, NitroPack and the Shopify equivalents can concatenate JS, defer non-critical CSS and add browser caching. They cannot fix layout shift from a Google Ads slot, INP from a heavy hydration cascade, or LCP from a hero video that has no poster image. Those require code changes.
Why LASEO vs alternatives
Site speed work compared honestly
Speed plugins, designer-led front-end shops and in-house hires all have legitimate use cases. Here is where LASEO fits and where it does not.
Plugin installs and Lighthouse chasing
- Lighthouse score from a single isolated run, screenshotted into a report.
- Install a speed plugin (WP Rocket, NitroPack, Autoptimize) and configure it. No code changes.
- INP is mentioned in the audit but no actual flame chart analysis is done. Recommendation is usually 'reduce JavaScript'.
- One-off audit, no ongoing tracking. Regressions are discovered months later when traffic drops.
- Optimised for visual polish first, with speed treated as a secondary concern. Heavy hero videos, custom fonts, animation libraries.
- Capable engineers but speed is one priority of many. INP profiling is rarely the urgent ticket.
Performance engineering in your codebase
- 75th percentile CrUX field data over 28 days, cross-checked with GSC Core Web Vitals report and a Looker Studio dashboard.
- Code-level fixes as Git pull requests to your Liquid, Next.js or WordPress codebase. Your engineers review and merge.
- Chrome DevTools Performance profiling of the slowest interactions, long tasks split with scheduler.yield, third parties deferred, INP verified in field data.
- Real-user monitoring via web-vitals JS, alerting on 75th percentile regressions, Lighthouse CI in the deployment pipeline.
- Performance engineering with the same rigour as accessibility. Visual decisions are weighed against their metric cost in CrUX.
- Speed is the engagement. Senior consultants dedicate weekly hours to field-data improvement, alongside your team.
Topical cluster
Related services in this pillar
← Back to pillar: Technical SEOHreflang Implementation
Hreflang for 50+ multi-market sites on Shopify Plus, custom Liquid and headless Next.js. No orphan tags, no br
Mobile SEO
Mobile-first indexing has been Google's default since 2024. Your mobile UX is your SEO. We test on real device
Core Web Vitals
LCP, INP and CLS fixed at the root cause. CrUX field data baseline, code-level PRs, monthly RUM scorecard. Not
Website Migration
40+ migrations shipped. Magento, Shopify, WordPress, Next.js, Webflow. URL mapping, redirect QA, live cutover
Speed engagements at scale
Site speed work that moved CrUX from Poor to Good
What our speed clients say
Core Web Vitals work in their own words
Our mobile LCP went from 4.1s to 2.2s in field data over 8 weeks. The previous agency had been quoting Lighthouse scores of 92 while CrUX was deep red. LASEO read the flame charts, fixed the LCP image preload and the hydration cascade, and shipped it to our Next.js repo.
INP was killing us after the March 2024 metric change. We dropped from 92 Good URLs to 31 overnight. LASEO profiled the long tasks, split our bundle by route, and got us back to 89 Good in two months. The GSC Core Web Vitals report went from red to green.
Layout shift from our ad slots and web font swap was costing us conversions and rankings. They reserved every dimension, switched to font-display: optional with size-adjust, and our CLS at the 75th percentile dropped from 0.34 to 0.07. Revenue per visitor lifted 11% the next quarter.
Our mobile LCP went from 4.1s to 2.2s in field data over 8 weeks. The previous agency had been quoting Lighthouse scores of 92 while CrUX was deep red. LASEO read the flame charts, fixed the LCP image preload and the hydration cascade, and shipped it to our Next.js repo.
INP was killing us after the March 2024 metric change. We dropped from 92 Good URLs to 31 overnight. LASEO profiled the long tasks, split our bundle by route, and got us back to 89 Good in two months. The GSC Core Web Vitals report went from red to green.
Layout shift from our ad slots and web font swap was costing us conversions and rankings. They reserved every dimension, switched to font-display: optional with size-adjust, and our CLS at the 75th percentile dropped from 0.34 to 0.07. Revenue per visitor lifted 11% the next quarter.
Honest answers about site speed and Core Web Vitals 
What buyers actually ask before signing a Core Web Vitals optimisation engagement.

Yes, but as a smaller factor than most agencies suggest. Google has confirmed Core Web Vitals is a ranking signal since 2021, applied at the page level via the page experience system. In competitive SERPs where the top results are otherwise comparable on relevance and authority, the page with better LCP, INP and CLS in CrUX field data will usually edge ahead. In non-competitive SERPs, content quality and links matter far more. The real reason to fix speed is the user experience and conversion lift, with the ranking benefit as a bonus rather than the primary driver.

Senior strategy call
Bring a Core Web Vitals problemto a senior consultant.
30 minutes with a LASEO senior consultant. We will not pitch. We will pull your CrUX data live in the call, identify the biggest LCP, INP or CLS blocker, and tell you whether we are the right partner for the fix.












