Skip to content
Full Page Screenshot

Why images come out blank in a full page screenshot

Short answer

Images that load only when scrolled into view have not finished downloading and decoding by the time a fast capture passes them, so they are photographed as empty placeholders. Scrolling the page to the bottom once before capturing forces every image to request, which fixes it in nearly every case.

Updated 16 July 2026Written by the Full Page Screenshot team

Lazy loading exists because loading forty images on a page where a visitor will see four is wasteful. The browser holds off until an image is near the viewport, then requests it. That is good for page speed and directly hostile to screenshot capture.

This is one of the two failures that separate a naive full page capture from one that handles real pages. A capture scrolls faster than a human. It arrives at an image, triggers the load, photographs the viewport perhaps 300 milliseconds later, and moves on. If the image needed 600 milliseconds to arrive and decode, what got photographed was the placeholder.

The fix that always works

Twenty seconds of preparation, and it resolves the problem regardless of which capture tool you use.

  1. 1

    Scroll to the very bottom of the page

    Press End, or drag the scrollbar down. Every lazy image passes through the viewport and starts loading.

  2. 2

    Wait for the network to settle

    Two or three seconds on a normal connection. On an image-heavy page, watch for the images to visibly appear.

  3. 3

    Scroll back to the top

    Press Home. The images stay loaded — browsers do not unload them.

  4. 4

    Capture

    Everything is already decoded, so nothing is waiting on the network.

What a capture can do automatically

Prompt content to load before starting
Dispatching scroll and resize events, and touching each image's loading attribute, makes most lazy loaders release their images before the capture loop begins.
Wait for decoding, not just for the request
An image that has arrived is not necessarily painted. Waiting on the decode step rather than the load event is the difference between a partial fix and a real one.
Increase the per-step delay
The blunt instrument, and sometimes the only thing that works with an aggressive custom loader. It makes the capture slower in exchange for being right. The setting lives with the rest of the automatic scrolling behaviour.

Frequently asked questions

Why are some images blank in my full page screenshot?

They were lazy loaded and had not finished arriving when the capture passed. Scroll the page to the bottom first, wait, then scroll back up and capture.

Does Chrome DevTools capture handle lazy images?

No. It does not wait for content, which is one of its two main failure modes alongside sticky headers.

Will increasing the capture delay always fix it?

Usually, but not always. A loader that keys off an IntersectionObserver with a large threshold may need the manual scroll regardless of delay.

Do lazy images unload if I scroll away?

No. Once decoded they stay in memory, which is why the scroll-down-then-up trick works.

Capture your first full page screenshot

Free, no account, and nothing leaves your computer.

Keep reading