--- title: "Core Web Vitals for SaaS: Field Data, Not Lab Scores" description: "How to read field-data LCP, INP, and CLS for a B2B SaaS site, which pages to optimise first, and why the PageSpeed Insights lab score is not the metric Google actually uses." url: "https://serpnaut.xyz/playbook/technical-seo-for-saas/core-web-vitals-for-saas" verifiedAt: "2026-06-09" canonical: "https://serpnaut.xyz/playbook/technical-seo-for-saas/core-web-vitals-for-saas" --- # Core Web Vitals for SaaS: Field Data, Not Lab Scores > TL;DR — Google's CWV ranking signal uses CrUX field data — real Chrome users' LCP, INP, and CLS over a rolling 28 days. PageSpeed Insights' lab score is a diagnostic, not the signal. On a SaaS site, fix CWV on the home page, pricing page, and top three landing pages; ignore the blog posts that get under 50 visits a month. The thresholds: LCP <2.5s, INP <200ms, CLS <0.1. In plain English: Core Web Vitals for SaaS marketing sites means measuring LCP, INP, and CLS from CrUX field data on the templates that drive ranking — home, pricing, comparison, feature, integration — and optimising those specifically. Lab scores diagnose; field data ranks. ## Key takeaways - Google's ranking signal is field data from CrUX, not the PageSpeed Insights lab score. - LCP threshold is 2.5s, INP threshold is 200ms, CLS threshold is 0.1 — all at the 75th percentile of real users. - CrUX is reported per origin and per URL when the URL has enough traffic; small SaaS sites usually have only origin-level data. - Fix CWV on the home page, pricing page, and top three landing pages; ignore low-traffic blog posts. - INP replaced FID in March 2024 — most SaaS sites that 'passed' FID now fail INP because INP measures all interactions, not just the first. ## Definition Core Web Vitals for SaaS is the practice of monitoring and optimising real-user LCP, INP, and CLS — sourced from CrUX field data — on the marketing templates that actually drive ranking and revenue. ## Why it matters Most SaaS teams chase the wrong CWV number. PageSpeed Insights returns a single lab score that's easy to optimise toward but isn't what Google ranks on — and that gap is why teams can ship 'green' Lighthouse scores and still fail CWV in Search Console. The fix is to measure what Google measures: 28-day CrUX field data, at the 75th percentile, on the templates that actually drive ranking. ## Lab data is a diagnostic; field data is the signal PageSpeed Insights reports two sets of numbers: the lab score (one simulated load) and the field data (real users over 28 days). Google ranks on the field data. The lab score is useful for diagnosing what's slow, never for proving a page passes. On a typical SaaS marketing page the lab and field numbers diverge: lab LCP shows 1.8s, field LCP shows 3.4s. The difference is usually a third-party script that doesn't fire in the lab environment but absolutely fires for real users. ## Which pages to fix, in which order Fix the home page, the pricing page, and the top three landing pages first. These five templates produce 80–95% of organic ranking signal on a typical B2B SaaS site, and they're the pages where a CWV tiebreaker actually matters. Ignore CWV on blog posts under 50 visits per month. The traffic is too small to generate field data, the URL-level signal doesn't accumulate, and the engineering time produces no measurable rank lift. ## INP is the new failure mode INP replaced FID in March 2024 and is meaningfully harder to pass. FID measured only the first interaction; INP measures all of them. SaaS sites with heavy JavaScript bundles and DOM-mutating third-party scripts routinely passed FID and now fail INP. The three highest-leverage INP fixes for SaaS: (1) code-split routes so the JS bundle is smaller per page, (2) defer non-critical third-party scripts past first interaction, (3) avoid controlled inputs (React state on every keystroke) in any form longer than three fields. ## Reading the Search Console Core Web Vitals report Search Console → Experience → Core Web Vitals shows CrUX data grouped by URL pattern, split by mobile and desktop. The Status column ('Good', 'Needs Improvement', 'Poor') is what Google uses for ranking — read it monthly and prioritise patterns where 'Poor' is over 10% of impressions. Small SaaS sites often see 'Insufficient data' for individual URLs because per-URL CrUX requires enough traffic. The origin-level CWV still applies — Google rolls it up — but the fix prioritisation has to come from PageSpeed Insights lab data plus the templates Search Console flags. ## Quick answers ### How much do Core Web Vitals affect SaaS rankings? (https://serpnaut.xyz/playbook/technical-seo-for-saas/core-web-vitals-for-saas#qa-rank-impact) Modestly — Google uses CWV as a tiebreaker among pages of similar relevance. Passing CWV on a low-relevance page won't rank it; failing CWV on an otherwise winning page can hold it just outside the top five. The leverage is on already-competitive pages. ### Should I optimise for the PageSpeed Insights score or for CrUX data? (https://serpnaut.xyz/playbook/technical-seo-for-saas/core-web-vitals-for-saas#qa-field-vs-lab) CrUX. The PageSpeed score is a single-run lab simulation; CrUX is what real Chrome users experienced over 28 days. Google ranks on CrUX. The lab score is useful for diagnosing why field data is bad, not for proving it's good. ### How do I fix poor INP on a SaaS site? (https://serpnaut.xyz/playbook/technical-seo-for-saas/core-web-vitals-for-saas#qa-inp-fix) INP measures interaction responsiveness across the entire session. The top three SaaS causes are (1) heavy JavaScript bundles that block the main thread, (2) third-party scripts (chat widgets, analytics) that hijack input, and (3) React re-renders triggered by every keystroke in form fields. Code-split aggressively, defer third-party scripts, and use uncontrolled inputs for high-frequency forms. ### What's the most common LCP problem on SaaS marketing pages? (https://serpnaut.xyz/playbook/technical-seo-for-saas/core-web-vitals-for-saas#qa-lcp-saas) A hero image or hero animation that loads after the JS bundle. Mark the LCP element with `fetchpriority='high'`, serve it from the same origin (no third-party CDN redirects), and avoid layering it behind a client-rendered component. On most SaaS sites this single change moves LCP from 3.5s to under 2.0s.