October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk6 min

Fix Missing Images and Fonts in Browserless Screenshots

Make Browserless screenshots wait for images, trigger lazy loading, and verify font requests instead of relying on longer timeouts.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To fix missing images in a Browserless screenshot, make the capture wait for images and trigger lazy loading before capture. In BAP, set waitForImages: true; for below-the-fold images, scroll the page. For fonts, wait for document.fonts.ready in a connected browser session and inspect font requests if the fallback remains. Extra waiting cannot fix a blocked or failed asset request.

First identify what is missing

Compare the screenshot with the page at the same viewport. The right fix depends on whether an image is still loading, a lazy image has not been triggered, a font request failed, or the screenshot captured a challenge or the wrong area.

As an Amazon Associate I earn from qualifying purchases.

  • Image present but blank: wait for image loading, then check whether its request succeeded.
  • Images missing below the fold: scroll to trigger the page’s lazy-load behavior before taking a full-page screenshot.
  • Text uses a fallback font: wait for page font readiness, then inspect the font request and response.
  • Challenge, access-denied page, or 403: investigate blocking rather than increasing the timeout.
  • Content is outside the screenshot: check viewport and capture bounds.

Browserless lists blank captures, CAPTCHA, access denied or 403 responses, and broken or missing elements among signs that automation may be blocked. Its troubleshooting guidance describes bot-detection handling through /unblock.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Wait for images in BAP

Browserless documents waitForImages as an opt-in BAP screenshot option; it is false by default. Set it to true when ordinary images have not finished loading by capture time. Browserless’s “Screenshots and PDFs with BAP” documentation says: “The capture happened before the images finished loading. Pass waitForImages: true, or wait for a specific element with waitForSelector() first.”

#1 Best Overall
await page.goto(url);
await page.screenshot({ path: "capture.png", fullPage: true, waitForImages: true });

If the page has a known image-bearing component, waiting for its selector can make the condition more specific than adding a fixed delay. Image waiting does not necessarily cause below-the-fold lazy images to load; trigger those separately by scrolling.

Trigger lazy-loaded images

Lazy loading commonly starts when an image approaches the viewport. A full-page capture describes the captured area, but does not guarantee that scrolling-based page behavior has run. Scroll through the content before capture so lazy-load observers can request the images.

Browserless REST screenshot endpoint

For REST requests to the /screenshot endpoint, Browserless documents the top-level scrollPage: true option to trigger lazy loading. Pair it with options.fullPage: true when you need the full long page. The relevant request configuration is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
{
  "url": "https://example.com",
  "scrollPage": true,
  "options": {
    "fullPage": true
  }
}

Use the endpoint’s documented request format and authentication for your Browserless deployment; the example shows the capture options, not a complete authenticated HTTP request.

BAP browser session

In BAP, scroll the page before calling screenshot. One straightforward approach is to step through the document in viewport-sized increments, then return to the top if the final capture should begin there:

await page.goto(url);
await page.screenshot({ path: "capture.png", fullPage: true, waitForImages: true });

The BAP screenshot call above enables image waiting. Add scrolling in the connected page before that call when lazy images are involved; waiting alone does not trigger them. Browserless’s screenshot guide documents the need to scroll for below-the-fold lazy content.

Wait for fonts separately

Browserless’s BAP screenshot options identify waitForImages, not a screenshot option named waitForFonts. Do not assume that adding waitForFonts to a screenshot call will wait for fonts. In a connected Puppeteer page, wait for the browser’s font readiness promise before taking the screenshot:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
await page.evaluate(() => document.fonts.ready);
await page.screenshot({ path: "capture.png", fullPage: true });

document.fonts.ready indicates that the document’s font loading and layout work has settled; it does not prove that the intended font file loaded successfully. If the text still appears in a fallback font, inspect the font request URL and its response in the browser session. A failed, blocked, or inaccessible font request needs a network or access fix, not a longer wait.

Browserless and Puppeteer document waitForFonts for PDF generation, where Puppeteer’s PDF option waits for document.fonts.ready. That PDF-specific option is not evidence of an equivalent Browserless screenshot flag.

Wait for application-specific rendering

Navigation completion and visual readiness are different. Browserless examples use Puppeteer’s waitUntil: 'networkidle2' or Playwright’s waitUntil: 'networkidle'; these are useful navigation checkpoints, but they do not guarantee that a particular application has finished hydrating or fetching the content you need. The REST screenshot configuration also supports waiting for events, functions, selectors, or timeouts.

When content appears asynchronously, wait for the page-specific condition that proves it is ready: for example, a selector for the image component or a function that checks the expected state. Browserless recommends a browser connection when you need interaction or to wait for dynamic content. Avoid treating a longer fixed timeout as a universal asset guarantee.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check failed requests, filters, and blocking

If the image or font remains missing after the appropriate readiness wait, inspect the request itself. Confirm that the asset URL resolves and that the response is not an error or denial. In REST requests, check that your own rejectResourceTypes or rejectRequestPattern settings are not suppressing images, stylesheets, or fonts. A request filter that blocks the needed asset cannot be corrected by waiting.

If the rendered page is a CAPTCHA, access-denied screen, 403, or similar challenge, follow Browserless’s bot-detection guidance rather than repeatedly increasing the capture timeout. A screenshot of a challenge page is not an asset-loading delay.

Set the viewport and capture bounds deliberately

Set the viewport before capture when responsive breakpoints affect the page’s layout or asset selection. Then choose the capture scope that matches the goal:

  • fullPage captures the full document area, but scrolling may still be needed to trigger lazy loading.
  • selector targets a particular element.
  • clip captures a fixed region.

For REST, Browserless documents options.fullPage alongside scrollPage for long-page captures. Check the REST screenshot documentation for the current option syntax.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. It removes cookie and consent banners, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and responses identify the page verdict and billing status. Its MCP server lets AI agents use screenshot tools.

Make a one-request capture (replace the URL with the page you need):

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for request options. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Sign up for the free plan.

Troubleshooting checklist

Symptom Likely cause Next step
Image appears only after waiting Capture ran before ordinary image loading finished Set BAP waitForImages: true or wait for the relevant selector.
Images near the top load, lower images do not Lazy-load observers have not been triggered Scroll through the page; for REST use scrollPage: true with options.fullPage: true.
Text remains in a fallback font Font request failed, was blocked, or is still pending Await document.fonts.ready, then inspect the font request and response.
Blank page, CAPTCHA, access denied, or 403 Possible automation blocking or a rejected request Inspect the rendered page and asset responses; consult Browserless bot-detection guidance.
Only some asset types disappear Request rejection configuration may exclude them Review rejectResourceTypes and rejectRequestPattern.
Correct content is cut off or rearranged Viewport or capture bounds do not match the desired view Set viewport before capture and verify fullPage, selector, or clip.

Frequently Asked Questions

Does Browserless BAP enable image waiting by default?

No. Its documented default for waitForImages is false.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Does fullPage: true load every lazy image?

Not necessarily. Scrolling may be needed to trigger the page’s lazy-loading behavior.

Can I use waitForFonts in a Browserless screenshot call?

The reviewed Browserless screenshot options do not document that flag; use document.fonts.ready in a connected page instead.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.