Why Your Corporate Website Fails the 1.8-Second Test
Digital Engineering
Most corporate sites land between 3.5 and 7 seconds on LCP. The four things causing it are unglamorous and fixable in an afternoon. What we changed on our own site to get under 2.
By Arjun Raghavan, Security & Systems Lead, BIPI · March 15, 2026 · 6 min read
Google started using Largest Contentful Paint as a ranking signal in 2021. The threshold for 'good' is 2.5 seconds. The threshold that correlates with conversion is 1.8. Most corporate websites we audit land between 3.5 and 7 seconds.
That is not a marketing opinion. It is the stopwatch on your homepage.
The four LCP killers
In our audits, four things cause the LCP hit on 80 percent of marketing sites. In descending order.
- Fonts loaded render-blockingly. A single Google Fonts link in the head without preload or display=swap can add 600 to 900 ms to LCP on a cold fetch. The browser cannot paint the headline because the font it needs is still downloading.
- An oversized hero image. Corporate sites ship 3,200-pixel hero images because design delivered them at 4K. On a 1,400-pixel screen you are downloading roughly six times the pixels you display. The usual fix is a single picture element with AVIF or WebP sources and correct sizes.
- Render-blocking third-party scripts. Analytics, consent management platforms, chat widgets, and feature-flag SDKs dropped synchronously into the head all queue behind the main bundle. Each one adds main-thread time that gates LCP.
- A hero fold that mounts after JS hydrates. The most common sin on React, Vue, and Angular sites. The hero headline lives inside a client component, so until the bundle loads and hydrates, the user sees white. For SSR frameworks this is fixable. For SPAs, the fix is a server-rendered above-the-fold shell.
What we changed on our own site
I'll use the site I have the strongest opinions on. Ours. When we first deployed bipi.in, our LCP was 3.1 seconds on throttled 4G. Here is what we did to get it under 2.
We moved the Inter font from a render-blocking stylesheet to a preloaded style with an onload swap. That bought us 420 ms.
We downscaled our brand mark from 2,082 x 2,082 pixels (1.4 MB) to 256 x 256 (50 KB) and then to WebP at 14 KB. Because the mark appears in the LCP element, this directly improved paint time by roughly 180 ms.
We replaced direct motion imports with the LazyMotion plus m pattern from framer-motion, which reduced initial JavaScript by about 20 KB gzipped. That shaved another 140 ms of main-thread parse.
We added preconnect for pagead2.googlesyndication.com (AdSense) and dns-prefetch for analytics. Third-party DNS and TCP handshakes now overlap with our first-party fetches.
3.1s to 1.7s on throttled 4G. Nothing exotic. Four changes, all in one afternoon.
The checklist
If you want to run this audit on your own site, in order of ROI:
- Fonts: preload the one stylesheet, display=swap, subset if you can.
- Hero image: picture element with AVIF or WebP, sizes attribute, fetchpriority=high.
- Above-the-fold HTML: server-render the LCP element. Do not hydrate for paint.
- Third-party scripts: async at minimum, defer where possible, preconnect the origin.
- Cache headers: 1-year immutable on hashed assets.
- JavaScript: dynamic-import non-critical chunks and use LazyMotion on framer-motion.
Run Lighthouse in Chrome DevTools before and after each change. Numbers tell you whether the change actually helped.
Why any of this matters
Performance is not a vanity metric. A homepage that paints in 1.7 seconds converts noticeably better than one that paints in 3.1. The effect is larger than most A/B experiments you will run this quarter. If your marketing site is slow, the cheapest lever you have, before you redesign the CTA, is to make it fast.
Closing
The 1.8-second threshold is not arbitrary. It is the point at which a user stops perceiving the load. Get under it and you are no longer in the waiting-room business. You are in the content business. That is usually what the marketing team thought they had shipped in the first place.
Read more field notes, explore our services, or get in touch at info@bipi.in. Privacy Policy · Terms.