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
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
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
Scroll back to the top
Press Home. The images stay loaded — browsers do not unload them.
- 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
Automatic scrolling and sticky element handling
How the capture handles sticky headers, lazy-loaded images, animations and nested scroll containers so the joined image looks like one page.
Why your full page screenshot is cut off at the bottom
A full page screenshot that stops partway down has one of five causes. How to tell which one you have, and what to do about each.
How to screenshot an entire webpage
A step by step guide to capturing a whole webpage, including scrolling panels, pages behind a login, and the cases the browser will not allow.
How to take a full page screenshot in Chrome
Three ways to capture a full page screenshot in Chrome: DevTools, an extension, and the print dialog. What each one is good at and where each fails.