Skip to main content

Above-the-Fold Strategy

Above-the-fold (ATF) design has an outsized impact on LCP, CLS, and INP. The goal is simple: the browser discovers the primary content early, can render it without waiting on heavy work, and nothing jumps around while it loads.

The ATF Contract​

ATF ElementWhat "Good" Looks LikeWhy It Matters
H1 + supporting copyText renders immediately with a stable fallback fontPrevents FOIT and reduces CLS risk
Primary visual (often LCP)One image, responsive, compressed, and not lazy-loadedLCP depends on this element
Navigation/headerStable height; no late injection above contentPrevents layout shift
CTASimple button/link; minimal JS requiredKeeps INP healthy

LCP Element Rules​

If your LCP element is an image, follow these rules:

  • Use a real <img> (avoid CSS background images for your LCP element).
  • Provide dimensions (width/height) or aspect-ratio so space is reserved.
  • Do not lazy-load the LCP element.
  • Prefer WebP/AVIF and keep the file size reasonable.
  • Consider fetchpriority="high" and (sometimes) a preload hint.
hero-image.html
<img
src="/images/hero.webp"
width="1200"
height="630"
alt="Hero image"
fetchpriority="high"
decoding="async"
loading="eager"
/>

Optional preload (use sparingly):

preload-hero-image.html
<link rel="preload" as="image" href="/images/hero.webp" />

CLS-Safe Patterns​

Common causes of above-the-fold CLS:

  • Images/iframes without reserved space
  • Font swaps (custom font loads late)
  • Banners injected above the header
  • Sticky headers that change height after load

Fix patterns:

  • Reserve space for media: set width/height (or aspect-ratio).
  • Keep headers a fixed height; avoid adding bars above it after load.
  • Use font-display: swap and preload only the fonts you truly need for ATF.

INP-Safe Patterns​

Keep interactivity simple above the fold:

  • Avoid carousels and heavy animation libraries for the hero.
  • Delay non-essential third-party scripts (chat, marketing) until interaction.
  • Prefer CSS transforms/opacity for animations (avoid layout-affecting animations).

Quick Audit​

  1. PageSpeed Insights (mobile): identify the LCP element and what delays it.
  2. DevTools -> Performance: look for long tasks and heavy layout/paint work.
  3. DevTools -> Rendering: enable "Layout Shift Regions" and reload to see jumps.
  4. DevTools -> Network: confirm the hero image/font strategy matches intent.

What's Next​