Full-page screenshots that don't cut off lazy-loaded content
Blank sections, missing images and half-rendered carousels are almost always a timing problem. Here are the four settings that fix them.
You ask for isFullPage: true and get a beautiful hero followed by 6,000 pixels of grey boxes. The browser did exactly what it was told - it captured the page as soon as it was "loaded". The trick is telling it what loaded means for your page.
1. Pick the right waitUntil
waitUntil controls which page lifecycle event we wait for before capturing:
commit- The first response bytesdomcontentloaded- HTML parsedload- All initial resources, including images (default)networkidle- No network activity for a short period
For content-heavy pages, load or networkidle fixes most missing-image problems.
2. Give images time
imageLoadTimeout is the maximum time to wait for images after the page loads. We return early as soon as every image has finished, so a higher limit only costs time on pages that need it.
3. Add a delay for animations
Fade-ins, count-up numbers and carousels often start after load. delay adds a fixed pause (in milliseconds) before the shutter:
{
"url": "https://example.com",
"isFullPage": true,
"waitUntil": "networkidle",
"delay": 1500
}4. Raise the timeout for slow sites
timeout is the navigation timeout. If a page regularly takes longer than the default to respond, raise it instead of retrying.
Still blank?
- Some sites only load content when it scrolls into view and ignore full-page rendering. A longer
delayusually helps. - Sticky headers can repeat down the page on some layouts. Capturing at a larger viewport height sometimes avoids it.
- If the site shows a bot check instead of content, try
antiBot: true.