Group
  • Performance

    Lazy load what users don't see immediately

    Defer offscreen images, heavy components, and below-the-fold code so first paint stops waiting for everything.

    • Improve quality
    • Ship faster
    • Intermediate
    • General

Free Prompt

My pages load everything up front, including things the user can't see without scrolling or clicking. I want lazy loading where it matters. Find the candidates: 1. Below-the-fold images and media: apply native lazy loading or intersection-based loading. 2. Heavy components hidden behind tabs, modals, or accordions: defer their data fetching and rendering until they're opened, where my framework supports it. 3. Route-level code splitting: each page should load only its own JavaScript, not the whole app. Check my bundler setup and add dynamic imports where the framework allows. 4. Expensive third-party widgets (chat boxes, video embeds, maps): load them on interaction or when scrolled into view, not on initial page load. Constraints: - Never lazy load above-the-fold content. The first screen should render without waiting for deferred anything. - Deferred components need loading states so the UI doesn't pop or jump when they arrive. - If a deferral would break SEO-relevant content (search engines need it in the initial HTML), keep it server-rendered and tell me why. When done, list what now loads lazily, what stayed eager and why, and the measured or estimated improvement in initial load.

What This Does / How This Helps

This defers everything users don't immediately see: offscreen images, hidden tab content, route-level code, and heavy third-party widgets, while keeping the first screen fast. Initial page load is the performance users actually judge, and vibe-coded apps tend to load the entire application on the first request. Lazy loading the rest doesn't make the app smaller, it makes the first impression faster, which is the impression that decides whether a visitor stays. The constraint about not lazy loading the first screen matters: over-eager deferral is its own bug, producing a blank page with spinners.

Want to skip doing this by hand?

Fortivibe audits your app for all of the areas these prompts cover (and more).

See What We Check

Related Prompts