Core Web Vitals Diagnostic & Field-Data Audit Checklist
Interactive diagnostic scorecard targeting Interaction to Next Paint (INP), Largest Contentful Paint (LCP) sub-parts, and Cumulative Layout Shift (CLS).
Core Web Vitals Pipeline & Field Data Architecture
Maps the 5 stages of modern web performance lifecycle: TTFB (Server Ingress), FCP (DOM Render), LCP (Main Content), INP (Interaction to Next Paint), and CLS (Layout Stability).
Core Web Vitals Diagnostic & Field-Data Audit Checklist Configurator
Core Web Vitals 2026 Diagnostic — 40-Point Performance Audit
Weighted diagnostic audit evaluating real-user field data thresholds across LCP, INP, CLS, and TTFB.
1 Input Parameters & Assumptions
| Parameter | Value | Context & Provenance |
|---|---|---|
| Largest Contentful Paint (LCP) | 12 checks (35%) Weight: 0.35 | Hero image fetchpriority, render-blocking CSS, preloading |
| Interaction to Next Paint (INP) | 10 checks (30%) Weight: 0.30 | Long task breakdown, requestIdleCallback, main thread yields |
| Cumulative Layout Shift (CLS) | 10 checks (20%) Weight: 0.20 | Explicit aspect-ratio, font-display: swap with size-adjust |
| TTFB & Edge Infrastructure | 8 checks (15%) Weight: 0.15 | Edge CDN caching, 103 Early Hints, HTTP/3, TLS resumption |
2 Explicit Mathematical Formula
Audit Score = ∑ (Passed Checks in Category / Total Category Checks) × Category Weight × 100
Category Weights: LCP (35%), INP (30%), CLS (20%), TTFB & Architecture (15%)
Certification Thresholds: PASS (Score >= 90%) / NEEDS IMPROVEMENT (70% - 89%) / POOR (< 70%)
Standard Metric Targets: LCP <= 2.5s, INP <= 200ms, CLS <= 0.10, TTFB <= 800ms3 Computed Output Metrics
| Computed Metric | Result | Interpretation & Threshold |
|---|---|---|
| Total Audit Criteria | 40 Points Checks | Comprehensive performance governance checklist across all 4 Core Web Vitals pillars |
| Target LCP Threshold | ≤ 2.5s 75th Percentile | Google 75th percentile pass threshold for mobile users |
| Target INP Threshold | ≤ 200ms 75th Percentile | Google 75th percentile pass threshold for interaction responsiveness |
| Target CLS Threshold | ≤ 0.10 Shift Score | Maximum allowable visual layout shift score |
Core Web Vitals Diagnostic & Field-Data Audit Checklist — Scope & Limitations
Explicit operational boundaries and constraints defining target use cases and out-of-scope scenarios.
Built For (Target Use Cases)
- A stateful checklist covering Interaction to Next Paint, Largest Contentful Paint, and Layout Shift only.
- Producing a weighted health score from your own pass/fail answers to eight checklist items.
- Exporting your completed audit as a Markdown report or CSV for sharing internally.
Not Built For (Limitations & Out-of-Scope)
- Measuring real Core Web Vitals field or lab data; every result comes from manual checkbox answers.
- Auditing Time to First Byte or edge infrastructure; only three of the four vitals categories are checked.
- Persisting results across devices or browsers; progress is saved only in this browser's local storage.
Operational Assumptions & Defaults
- Category weighting is fixed at INP 40%, LCP 35%, and CLS 25% of the total score.
- Health score assumes every unanswered item counts as a fail, not as pending.
- Saved progress uses browser localStorage keyed to this checklist and is lost if storage is cleared.
Core Web Vitals Diagnostic & Field-Data Audit Checklist
Stateful multi-category audit engine. Your progress and notes are saved automatically in your browser.
Weighted Category Score Breakdown
1. Interaction to Next Paint (INP) Triage
Weight: 40%Long-task mitigation, event handler optimisation, and thread responsiveness.
cwv-1Break up long JavaScript tasks (> 50ms)CRITICALYield execution to the browser main thread using scheduler.yield() during complex processing.
cwv-2Eliminate render-blocking click handlersHIGHAvoid synchronous DOM measurements and forced reflows inside user interaction listeners.
cwv-3Offload third-party marketing tagsHIGHDefer non-critical tracking pixels and chat widgets or run them via server-side Google Tag Manager.
2. Largest Contentful Paint (LCP) Optimisation
Weight: 35%Sub-part resource timing, fetch priority, and server response time.
cwv-4Preload primary LCP imageCRITICALDeclare <link rel="preload" as="image" fetchpriority="high"> for above-the-fold banner assets.
cwv-5Serve modern image formats via CDNHIGHDeliver responsive AVIF and WebP variants with accurate srcset attributes.
cwv-6Optimise critical CSS and font renderingMEDIUMInline critical layout CSS and declare font-display: swap with size-adjust matching fallbacks.
3. Cumulative Layout Shift (CLS) Mitigation
Weight: 25%Explicit image dimensions, dynamic banners, and web font layout stability.
cwv-7Reserve layout space for dynamic ads and consent bannersCRITICALSet minimum height CSS rules on ad containers and CMP banners to prevent content reflow.
cwv-8Explicit width and height on all media assetsHIGHInclude width and height attributes on images, SVGs, and iframe embeds.
Deploy Real-User CWV Field Telemetry
Inject the lightweight web-vitals.js SDK to capture real-user 75th-percentile INP, LCP, and CLS field metrics directly into your analytics pipeline.
Optimising Interaction to Next Paint (INP)
INP measures page responsiveness by observing the latency of all user interactions. The most common bottlenecks stem from heavy JavaScript execution inside click listeners and unoptimised third-party tags executing on the main browser thread.
Implementation Code & Script
Logs long interaction tasks directly in DevTools console with duration and target element details.
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
if (entry.duration > 50) {
console.warn('Long Interaction Task detected:', {
duration: Math.round(entry.duration) + 'ms',
startTime: Math.round(entry.startTime) + 'ms',
name: entry.name,
target: entry.target,
});
}
});
});
observer.observe({ type: 'event', buffered: true, durationThreshold: 50 });Core Web Vitals Field & Lab QA
Inspect Chrome User Experience Report (CrUX) field data and Chrome Performance profiler traces for long tasks (>50ms).
Pre-Production Verification Checklist
Verify Chrome DevTools Performance panel shows zero main thread blocking tasks over 50ms during click events.
Confirm hero image tag carries fetchpriority="high" and is preloaded in <head>.
Ensure all images, ad slots, and video embeds declare explicit width/height or aspect-ratio CSS rules.
Terminal Diagnostic & Debug Commands
Launches automated Chrome Lighthouse lab test and displays interactive performance report.
npx lighthouse https://gordongeraghty.com --only-categories=performance --viewFailure Remediation & Troubleshooting
Cause: Heavy synchronous JavaScript event handlers executing on main thread during UI state update.
Fix: Wrap non-critical state updates in React startTransition() or yield to main thread via requestAnimationFrame / setTimeout.
Cause: Late-loading web fonts causing FOUT/FOIT layout shifts, or dynamically injected banner elements without height reservations.
Fix: Use font-display: optional or size-adjust in @font-face, and set min-height on dynamic containers.
How to cite and attribute this tool
MIT LicenceThis resource is free, open and un-gated under the MIT Open Source Licence. You are encouraged to use, integrate and cite it with attribution:
@misc{geraghty_core_web_vitals_audit,
author = {Geraghty, Gordon},
title = {Core Web Vitals Diagnostic & Field-Data Audit Checklist},
year = {2026},
url = {https://gordongeraghty.com/resources/technical-seo/core-web-vitals-audit},
note = {Head of Performance Media, Empire Amplify}
}Changelog & Version History
v1.0.0Initial release of interactive CWV scorecard with INP task breakdown.
Strategic Takeaway & Operational Guidelines
INP replaces FID as the primary responsiveness metric. Prioritizing main-thread yields and replacing heavy third-party tracking scripts with server-side GTM is the single highest-leverage lever to ensure all 40 criteria pass.