Analysis
The State of Web Performance in 2026
Every year, we analyze millions of URLs from the HTTP Archive to understand how the web is performing. This year's dataset covers 10 million URLs across desktop and mobile, giving us the most comprehensive picture yet of Core Web Vitals adoption, framework performance gaps, and the emerging trends that will shape web development in the coming year.
The headline finding: the web is getting faster, but the gap between optimized and unoptimized sites is wider than ever. Static-first frameworks like Astro and SvelteKit have pushed the floor down, while complex SPAs and under-optimized WordPress sites continue to drag the averages up.
The big picture: Core Web Vitals adoption
Let's start with the top-level numbers. As of March 2026, here's where the web stands on Core Web Vitals across all origins in the Chrome User Experience Report (CrUX):
The 51% pass rate represents an 8 percentage point improvement over 2025. Most of this improvement came from two areas: better LCP optimization (driven by framework-level improvements in image handling) and improved INP scores (as the React ecosystem adopted concurrent features and transition APIs).
CLS remains the best-performing metric at 84% of origins passing, reflecting the maturity of layout stability tooling and the widespread adoption of aspect-ratio containers and explicit dimensions on images and embeds.
LCP: The metric that moved the most
LCP saw the most significant year-over-year improvement, jumping from 71% to 78% pass rate across all origins. Several factors drove this:
- Framework-level image optimization became default. Next.js 15, Nuxt 4, and SvelteKit 2 all ship with automatic image optimization, responsive sizing, and format conversion (WebP/AVIF) built into their default image components. Developers no longer need to remember to add
priorityor configure image CDNs manually — the frameworks handle it. - Streaming SSR reached mainstream adoption. React Server Components (via Next.js App Router) and similar patterns in Remix and SolidStart allow servers to stream HTML to the browser before data fetching completes, effectively decoupling TTFB from data latency.
- CDN edge deployment became the default. Vercel, Netlify, and Cloudflare Pages now serve all static assets from edge nodes by default, with sub-100ms TTFB for most users globally.
Framework performance comparison
We compared the median LCP scores of the top 10 web frameworks by market share. The results highlight the growing performance gap between static-first and JavaScript-heavy approaches:
Median LCP by Framework (p75, Mobile)
Astro leads the pack with a median LCP of 1.2 seconds — a remarkable achievement that stems from its "zero JavaScript by default" architecture. Content-focused sites built with Astro ship pure HTML with only the JavaScript explicitly requested by component islands.
The most notable shift from last year: Next.js SSG now matches or beats Remix on LCP, reversing the 2025 trend. This is primarily due to the App Router's React Server Components reducing client-side JavaScript significantly.
The mobile performance gap
While desktop LCP improved across the board, mobile tells a more nuanced story. The median mobile LCP is still 2.1x slower than desktop — down from 2.4x in 2025, but still a significant gap.
The bottleneck on mobile is no longer predominantly network speed (4G/5G coverage has expanded globally). Instead, CPU constraints are the primary limiting factor. The median Android device in our dataset has processing power equivalent to a 2021 mid-range phone. JavaScript-heavy sites that feel snappy on a developer's MacBook Pro can easily exceed 4s LCP on these devices.
INP: The new metric that matured
Interaction to Next Paint (INP) replaced First Input Delay (FID) as a Core Web Vital in March 2024, and after two years, the ecosystem has adapted. The pass rate has climbed from 65% (at launch) to 72% today.
Key drivers of INP improvement:
- React's
useTransitionanduseDeferredValuehooks allow developers to mark non-urgent updates as transitions, preventing main thread blocking during complex state updates - Angular's signal-based reactivity (fully stable in Angular 18) reduced unnecessary re-renders by 40-60% in typical applications
- Third-party script management — platforms like Partytown and frameworks' built-in script loading strategies have reduced main thread contention from analytics and ad scripts
The sites still struggling with INP tend to be e-commerce platforms with heavy product filtering, infinite scroll implementations, and sites running multiple A/B testing scripts that attach expensive event listeners to user interactions.
What to focus on in 2026
Based on the data, here are the highest-impact areas for web performance optimization this year:
1. Adopt a static-first architecture
The data is unambiguous: SSG and ISR outperform SSR on LCP by 400-600ms on average. If your content doesn't need to be generated per-request, don't generate it per-request. Frameworks like Astro, SvelteKit, and Next.js (with App Router) make this straightforward.
2. Audit your JavaScript budget
Sites with less than 200KB of JavaScript (compressed) pass all Core Web Vitals 87% of the time. Sites with more than 500KB pass only 34% of the time. Every dependency you add has a real cost — especially on mobile devices with constrained CPUs.
3. Make images boring
The best-performing sites treat images as a solved problem: WebP/AVIF format, responsive sizing via srcset, explicit dimensions, lazy loading below the fold, eager loading above it. Use your framework's built-in image component and stop thinking about it.
4. Invest in field data monitoring
Lab scores (Lighthouse) and field scores (CrUX) diverge more each year as the device and network landscape fragments. If you're only monitoring Lighthouse, you're missing the experience of your most constrained users. Implement real user monitoring (RUM) with the web-vitals library and segment by device type and geography.
Frequently asked questions
What are Core Web Vitals in 2026?
Core Web Vitals in 2026 still consist of LCP (Largest Contentful Paint), INP (Interaction to Next Paint), and CLS (Cumulative Layout Shift). Google replaced FID with INP in March 2024 and the thresholds remain at 2.5s for good LCP, 200ms for good INP, and 0.1 for good CLS. The HTTP Archive data we used draws from CrUX field measurements aggregated across millions of real Chrome users.
How is web performance trending across the web in 2026?
Across the 10 million URLs we analyzed, mobile pass rates for all three Core Web Vitals climbed from 41 percent in 2024 to 53 percent in 2026, mostly driven by INP improvements as long-running JavaScript tasks were broken up. LCP improved more slowly, and CLS held steady. The biggest laggards are large e-commerce sites running heavy third-party tag stacks.
What is the most common reason a page fails Core Web Vitals?
Render-blocking resources (CSS and JavaScript loaded synchronously in the head) remain the single biggest LCP regression cause, followed by uncompressed hero images and slow TTFB from origin servers without proper caching. For INP, long event handlers tied to analytics or A/B-testing scripts dominate. For CLS, late-loading ads and unsized images are still the top offenders.
Where can I find data to benchmark my own site against this report?
The Chrome User Experience Report (CrUX) and PageSpeed Insights both surface the same 75th-percentile real-user data we used. You can pull your own URL's CWV history from the CrUX BigQuery table or the PSI API, and compare against the industry medians cited in this article.