ScreenshotNeo

BlogHow-to

How to Capture Webpages with Lazy-Loaded Images in FireShot

FireShot supports full-page captures, but its listings do not specify how it handles lazy-loaded images. Use this cautious scroll-first workflow, then check the saved image for gaps.

By the ScreenshotNeo team4 October 20265 min read

Short answer: FireShot documents full-page capture, including content outside the visible screen, but the reviewed FireShot listings do not say whether it scrolls the page to trigger lazy-loaded images or waits for them to load. As a precaution, scroll through the page first, pause for images to appear, return to the top, and then use FireShot’s entire-page capture. Inspect the saved result; if an image is missing, revisit that section, let it load, and capture again.

1. Why lazy-loaded images can be missing

Some pages load images only when their section approaches the visible area. A full-page capture can include off-screen portions of a page, but that does not establish whether those images were loaded before the capture. FireShot’s reviewed product and store listings describe capture modes, not a lazy-image trigger or wait guarantee. Results may vary by site and extension version.

Keep these two questions separate:

  • Can FireShot capture the whole page? Its listings describe full-page or entire-page capture, including content not visible without scrolling.
  • Will every lazy image be loaded for that capture? The reviewed listings do not specify this. Scrolling first is a precaution, not a documented FireShot feature or guarantee.

2. Scroll-first FireShot workflow

  1. Open the webpage and allow its initial content to settle.
  2. Scroll downward in sections, pausing when new images enter view. Continue to the bottom if you need a full-page capture.
  3. Check that the images you need have appeared. If an image remains blank, wait a little longer or revisit that section.
  4. Return to the top of the page.
  5. Open FireShot and select its entire-page or full-page capture option. The label can depend on the version or edition.
  6. Save in the format you need, then inspect the capture from top to bottom.
  7. If an image is absent, return to that section, let it appear, and take another full-page capture.

FireShot listings mention PDF, PNG, and JPEG; the Pro manual also lists GIF and BMP. Available formats can depend on the version or edition. Choose the format offered by your installation.

3. Optional browser-console precaution

If you are comfortable using your browser’s developer tools, this JavaScript snippet scrolls the open page downward in viewport-sized steps, pauses between steps, then returns to the top. It is a general browser precaution, not a FireShot command, and it does not prove that every site’s images have finished loading. Run it only on a page you trust.

(async () => {
  const pauseMs = 800;
  const step = Math.max(300, window.innerHeight * 0.8);
  const originalY = window.scrollY;
  const maxY = Math.max(
    document.documentElement.scrollHeight,
    document.body.scrollHeight
  ) - window.innerHeight;

  for (let y = 0; y <= maxY; y += step) {
    window.scrollTo(0, y);
    await new Promise(resolve => setTimeout(resolve, pauseMs));
  }

  window.scrollTo(0, maxY);
  await new Promise(resolve => setTimeout(resolve, pauseMs));
  window.scrollTo(0, originalY);
})();

Increase pauseMs if images appear slowly. A fixed pause cannot account for every site, network, or image-loading method, so verify the page visually before capturing.

4. Troubleshooting missing images

What you see Likely explanation What to try
An image is blank in the saved page The image may not have loaded before capture. Scroll to that section, wait until the image appears in the page, return to the top, and capture again.
The page capture ends before the bottom The selected capture mode may be visible-area or selection rather than entire-page. Choose FireShot’s entire-page/full-page mode and inspect the saved result.
The page looks different after scrolling The site may change content as sections enter view; the reviewed FireShot listings do not specify how such pages are handled. Let the page settle, check the relevant sections, and repeat the capture.
An image is still missing after scrolling The available documentation does not give a FireShot-specific repair procedure; the image may not have appeared on the page. Reload the page if appropriate, revisit the section, confirm whether the image appears in the browser, and capture again.
You cannot find a named option or output format Format and interface options can vary by FireShot version or edition. Use the options available in your installed version; listings mention PDF, PNG, and JPEG, while the Pro manual also lists GIF and BMP.

5. Reliability and practical limits

  • Scrolling first can help trigger images that load near the viewport, but it cannot guarantee a complete capture.
  • Pause long enough to see images appear; the right wait depends on the page and is not specified by the reviewed FireShot sources.
  • Always inspect the exported page. A successful full-page capture does not itself confirm that each image loaded.
  • For long pages, scrolling and checking take extra time. Repeat the relevant section and capture if inspection finds a gap.
  • The cited FireShot listings do not establish compatibility guarantees or a specific lazy-loading repair feature.

6. Or skip the browser setup

For an API-based capture, ScreenshotNeo returns an image or PDF from one GET request. This example saves a WebP capture:

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 parameters. Python:

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
r.raise_for_status()
with open("shot.webp", "wb") as f:
    f.write(r.content)

Node.js:

const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://stripe.com'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const fs = await import('node:fs/promises');
await fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer()));

ScreenshotNeo accepts cookie and consent banners like a visitor and removes more than 60 known consent platforms, 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 in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month without a card; paid plans start at $5 for 3,000 screenshots. See the docs and sign up for 1,000 free screenshots a month, no card required.

7. FAQ

Does FireShot guarantee lazy-loaded images appear in a full-page capture?

The reviewed FireShot listings document full-page capture but do not specify lazy-image triggering or waiting, so they do not establish that guarantee.

Should I scroll all the way to the bottom?

Yes, if you need images throughout a full-page result. Pause as sections enter view, then return to the top before selecting the entire-page capture option.

Which file formats can I save?

Reviewed listings mention PDF, PNG, and JPEG. The Pro manual also lists GIF and BMP; options depend on the version or edition.

What should I do if the browser page itself never shows the image?

FireShot cannot capture an image that has not appeared in the page. Check the page first, revisit the section, and try again after it loads.