Sub-Second LCP: Core Web Vitals for a Faster Site
Improving Largest Contentful Paint by removing hydration overhead, preloading self-hosted fonts, inlining critical CSS and converting images to AVIF.
Achieving sub-second Largest Contentful Paint (LCP) requires eliminating client-side JavaScript hydration bottlenecks, self-hosting preloaded WOFF2 fonts with size-adjust fallbacks, inline critical CSS, and pre-converting imagery to native AVIF formats.
The Economics of Web Speed
Every millisecond of latency directly impacts commercial conversion. Google’s empirical research demonstrates that pages taking longer than 2.0 seconds to render experience a 38% increase in bounce rates. For a small business, visual stutter or a delayed paint says something about the business before a single word is read.
At Aura Logic, we hold ourselves to a performance covenant. These are the targets we aim at, not results we promise in advance, and every one of them is a number you can check yourself with a free tool:
- Largest Contentful Paint (LCP):
< 0.80 secondson standard 4G mobile. - Cumulative Layout Shift (CLS): a target of
0.000layout stability. - Interaction to Next Paint (INP):
< 50msinput responsiveness. - Lighthouse Audit: a target of
95or above in each of Performance, Accessibility, Best Practices, and SEO.
Architectural Pillar 1: Zero Hydration by Default
Traditional Single Page Application (SPA) architectures (Next.js, Remix, Nuxt) ship entire framework runtimes to the client browser. Even for purely informational editorial pages, the browser must download, parse, and execute megabytes of JavaScript before DOM elements become interactive.
Traditional SSR + Client Hydration:
1. Fetch HTML ──> 2. Paint Raw Markup ──> 3. Download JS Bundle (800KB) ──> 4. Parse & Hydrate ──> 5. Page Interactive
Main Thread Blocked: 400ms - 1,200ms (INP penalty)
Aura Logic Islands Architecture:
1. Fetch Static HTML ──> 2. Instant First Contentful Paint (< 0.2s) ──> 3. Visuals Complete (< 0.6s)
Main Thread Free: 0ms runtime JS blocking
By rendering 100% static HTML via Astro, initial paint occurs immediately upon network packet arrival. Dynamic client islands (such as interactive estimators or custom cursors) are deferred using client:idle or client:visible, leaving the critical rendering path completely unobstructed.
Architectural Pillar 2: Pre-Compiled Modern Asset Pipeline
Media assets routinely account for 80% of total transfer weight. Standard content management setups rely on client-side plugins that resize images dynamically or output heavy JPEGs.
The Aura Logic Asset Standard:
- Next-Gen Formats: All photographic assets are pre-compiled into AVIF and WebP formats at build time, yielding a 65% to 80% compression gain over legacy formats without visual degradation.
- Explicit Aspect Ratio Reservation: Every image container specifies rigid CSS aspect-ratios and inline
widthandheightattributes to prevent layout reflow during network streaming. - Priority Fetching for Above-the-Fold Imagery: The hero visual utilizes
fetchpriority="high"andloading="eager"while all secondary case study imagery utilizes native lazy loading (loading="lazy").
Architectural Pillar 3: Self-Hosted Font Strategy & Zero-FOUT
Runtime calls to third-party font CDNs (such as Google Fonts or Adobe Typekit) introduce external DNS lookups, TLS negotiations, and render-blocking stylesheets that degrade LCP by 300ms to 700ms.
We eliminate this penalty by:
- Self-Hosting WOFF2 Files: All typography assets live directly on the primary edge domain with immutable caching headers (
Cache-Control: public, max-age=31536000, immutable). - Preloading Critical Weights: The primary display font is preloaded in the
<head>so it is already on its way when the first paint is requested:
<link
rel="preload"
href="/fonts/syne-v22-latin-700.woff2"
as="font"
type="font/woff2"
crossorigin
/>
- Font-Display Size Adjustment: Fallback system fonts are matched in x-height and ascent metrics using
@font-face { size-adjust: ... }declarations, entirely preventing layout shift when the primary font resolves.
What the Numbers Look Like Side by Side
Two columns, two different kinds of number. The right-hand column is the covenant: the target we set for our own builds, which you can check yourself on your own site. The left-hand column is a reference range for a typical template build, shown so the gap is legible, not as a measurement of anybody’s work.
| Metric | Common template build (reference) | Aura Logic zero-hydration build (our target) |
|---|---|---|
| Mobile LCP | 3.40s | 0.68s |
| Desktop LCP | 1.95s | 0.42s |
| Cumulative Layout Shift (CLS) | 0.142 (Fails Core Web Vitals) | 0.000 (Target) |
| Total Transfer Weight | 2.8 MB | 240 KB |
| Main Thread Execution Time | 1.84s | 0.04s |
| Lighthouse Score | 52 / 100 (reference) | 95+ Target |
How We Check These Numbers, and How You Can Too
Every figure in the covenant above is a target we set for our own work, and the useful part of a target is that anyone can check it. This guide assumes nothing more than a browser and a phone. Three free tools are enough to verify it, and it is worth running them yourself rather than taking anyone’s word for it:
- Lighthouse (in Chrome DevTools, or on web.dev) gives you the four category scores and the underlying metrics. Run it in an incognito window, with the mobile device throttling on, and against the production build rather than the development server. A Lighthouse run against a dev server measures your bundler, not your site.
- PageSpeed Insights combines that laboratory run with CrUX field data from real visitors, so you can see whether your numbers hold up outside a synthetic environment. When the two disagree, the field data is the one that counts.
- WebPageTest lets you pick a specific location and connection speed, which is how you check what a visitor on a slow mobile connection in another country actually experiences.
Two honest caveats about the targets themselves. First, a Lighthouse score is a weighted composite that shifts between Lighthouse releases, so a 95 measured on one version may read as a 93 on the next; quote the version you used. Second, these are laboratory numbers. They describe one controlled run on one connection, and real field data across thousands of sessions will always be messier. What the targets buy you is headroom, so that ordinary variation in devices, networks, and third-party scripts does not push you out of the “good” band.
None of this is a certification, and no score is promised in advance. The covenant is the number we aim at, the audit is how we check it, and the report showing the result is what you receive.
Conclusion: Speed Is Part of How Your Business Is Judged
People do not read that a page is slow. They feel it, and they conclude something about the business behind it. A site that opens instantly says the people who run it pay attention to details. Sub-second performance is not an accident of good bandwidth; it is the deliberate consequence of a site that ships less and does less work before the paint. The levers in this guide all point the same way: less work between the request and the page appearing, which is what a fast website actually is.
Want to see where your own site stands? Measure it with the speed test and see what a rebuild would cost with the estimator.
Frequently Addressed Technical Inquiries
What causes slow Largest Contentful Paint (LCP) on modern websites? [+]
The four primary causes of poor LCP are slow server response times (TTFB), render-blocking JavaScript and CSS, unoptimized media assets (large JPEGs/PNGs without explicit dimensions), and client-side rendering frameworks that delay DOM paint until bundles are hydrated.
How does Astro achieve 0.000 Cumulative Layout Shift (CLS)? [+]
Astro statically renders HTML with native dimension attributes (width and height) on all media, while CSS font-display swap rules utilize size-adjust overrides to eliminate visual jump when webfonts finish loading.
Does eliminating client JavaScript limit animations and interactions? [+]
No. Modern CSS hardware-accelerated transforms, IntersectionObserver APIs, and scoped micro-islands handle 60fps luxury interactions and smooth scrolling without running heavy JavaScript frameworks on static content.
Sources
- [1] Optimize Largest Contentful Paint | web.dev Verifies the four primary causes of poor LCP and the recommended fixes: web.dev identifies slow server response, late resource discovery, low resource priority and render-blocking CSS/scripts, and warns never to lazy-load the LCP image.
- [2] Web Vitals | web.dev Verifies the performance covenant: web.dev sets LCP at 2.5 seconds or less, INP at 200 milliseconds or less and CLS at 0.1 or less at the 75th percentile, the benchmark behind the article's own targets.
- [3] Lighthouse performance scoring | Chrome for Developers Verifies the Lighthouse covenant: Chrome's documentation defines the score as a weighted average on a 0–100 scale and states that a score of 100 is exceptionally difficult to reach, with diminishing returns near the top.
- [4] size-adjust CSS at-rule descriptor | MDN Web Docs Verifies the zero-FOUT font strategy: MDN documents size-adjust as the @font-face descriptor that lets a fallback font be scaled to better match the metrics of the primary web font.
Related articles
Mastering INP: Core Web Vitals with Astro Islands
Improving INP after Google retired FID, and how removing client side hydration with islands architecture keeps interactions under 40 milliseconds.
Optimising Website Images and Delivery Costs
Image optimisation for faster sites, with build time AVIF and WebP srcset matrices that cut transfer weight 85% and remove image CDN fees.
Website Due Diligence and Technical Debt
The website review a buyer, lender or new owner does on a site they are about to inherit: the checks that find the debt a generic inspection misses.
WANT IT REVIEWED FOR YOUR BUSINESS?
The above is general. Tell me about your business and I will review business websites for your case: what applies, what does not, and in what order.
Business websites ↗TELL US ABOUT
YOUR BUSINESS.
Tell us what your business does, what you need and your approximate budget. We will review the scope and next steps with you.
READY TO IMPROVE YOUR WEBSITE?
Describe what you want your website to do for your business. Jorge will help you define the scope, understand the cost and choose the next step.