ScreenshotNeo

BlogHow-to

Why does Chrome’s full-page screenshot miss part of my webpage?

A Chrome full-page screenshot can miss content because it captures only the viewport, the page dimensions exclude it, or rendering is unfinished. Here’s how to find the cause.

By the ScreenshotNeo team4 October 20266 min read

A Chrome full-page screenshot can miss part of a webpage when the capture only covers the visible viewport, the page’s measured dimensions do not include the missing content, or that content has not rendered when capture starts. First confirm that you are using a full-page capture, then check the page’s scrolling structure and render state. If the capture is exceptionally tall, try smaller sections.

The exact cause depends on the page and capture method. These checks help isolate it; without the page URL, Chrome version, and capture workflow, there is no single diagnosis.

1. Confirm Chrome is capturing beyond the viewport

A normal screenshot captures the visible viewport. In the Chrome DevTools Protocol, Page.captureScreenshot has a captureBeyondViewport option, which defaults to false. A restrictive clip can also limit the captured area. Chromium’s full-page handler calculates the main frame’s full-page dimensions and captures with beyond-viewport capture enabled.

In Chrome DevTools, use the full-page screenshot option rather than the ordinary visible-area screenshot. In automation, inspect the screenshot call and remove or widen any clip that excludes the missing section. See the Chrome DevTools Protocol screenshot method and its screenshot parameters.

2. Check whether the content belongs to the document or a scrolling panel

Scroll the page manually and locate the missing material. If it appears inside a panel with its own scrollbar, it may not extend the main document’s measured height. A full-page capture of the document may therefore omit the panel’s off-screen contents.

  • If the missing content is in a nested scrolling region, scroll that region and capture it separately, or use an element-specific capture method.
  • If the content sits below the document’s apparent end, check for unusual layout or positioning that places it outside the measured page bounds.
  • Compare the screenshot with the document’s actual scrollable height and the panel’s height. The expected capture extent is based on the page frame, not every independently scrollable region on screen.

These are diagnostic possibilities, not guaranteed explanations. The relevant layout depends on the page.

3. Wait for delayed content and images

Some pages render sections or load images only after scrolling, waiting, or completing a request. Inspect the page after it has settled before taking another screenshot. If the missing section appears only when you scroll to it, a capture that starts immediately may happen too soon.

  1. Open the page and scroll through the entire document.
  2. Wait for the missing section and images to appear.
  3. Repeat the full-page capture after the page settles.
  4. If it still fails, compare a screenshot of the affected section with the full-page result.

For automation, wait for a reliable page-specific condition, such as a selector for the target section, instead of assuming that navigation completion means every delayed element is ready.

4. Handle exceptionally tall pages

Very large captures can encounter implementation constraints. Current Chromium source contains a guard that rejects full-page width or height at or above 128 × 1024 pixels. This is an implementation detail, not a universal maximum for every Chrome version, operating system, or capture path. If a very tall capture fails or looks incomplete, try capturing separate sections or generating a PDF.

An older Chromium issue describes corruption beyond 8192 pixels and is marked fixed. That historical report should not be treated as a current general Chrome limit. See the Chromium issue for that report.

5. If you use automated capture or device emulation

When the problem happens only in automation, record the Chrome and automation-library versions, the viewport and device-emulation settings, the capture parameters, and whether a clip is set. Then compare a capture with and without device emulation.

A specific Google Issue Tracker report associates a Puppeteer captureBeyondViewport case with navigator.maxTouchPoints. Treat this as a narrow lead only when the page or setup depends on touch behavior; it is not evidence that touch emulation causes all missing-content screenshots. See the issue report.

6. Troubleshooting checklist

Symptom Likely area to inspect What to try
Only the visible screen appears Capture mode Use DevTools’ full-page option or enable beyond-viewport capture in automation.
The bottom is cut off at a consistent boundary Clip or measured document size Check for a restrictive clip and compare the page’s measured height with the expected extent.
Content inside a panel is missing Nested scrolling region Scroll and capture the panel separately or capture the relevant element.
Images or sections are absent intermittently Render timing or scroll-triggered loading Wait for the content to appear, then capture; use a page-specific readiness condition in automation.
A very tall capture fails or is corrupted Capture size Capture sections separately or use PDF output; do not assume one universal height limit.
It fails only with emulation enabled Automation and device settings Record versions and settings, compare without emulation, and investigate touch-dependent behavior if relevant.

7. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. One GET request can return a screenshot or PDF; its full-page capture loads lazy images. Cookie banners, popups, and chat widgets are removed before the shot, and each cleanup step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing; response headers say which page verdict and billing status applied. AI agents can use its MCP tools: take_screenshot, get_page_info, and capture_pdf.

For options and parameter details, see the ScreenshotNeo API documentation. This runnable cURL example captures Stripe as a WebP image:

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

Equivalent Python and Node.js requests are available below.

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()
open("shot.webp", "wb").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 bytes = new Uint8Array(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', bytes));

ScreenshotNeo removes cookie banners, popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed; its MCP server lets AI agents take screenshots; and 1,000 screenshots a month are free with no card, with paid plans starting at $5 for 3,000. Create a free ScreenshotNeo account.

8. Performance, reliability, and cost

For a local Chrome capture, the main practical tradeoff is capture scope: waiting for delayed content and capturing a long page takes more time and produces a larger image. If the output is unwieldy, capture sections or use PDF. The sources cited here do not establish a universal capture-time benchmark or screenshot-height limit across environments.

With ScreenshotNeo, the listed plans are Free: 1,000 shots/month with no card; Starter: $5 for 3,000; Growth: $15 for 15,000; Pro: $39 for 60,000; Scale: $99 for 250,000; and Business: $249 for 1,000,000. Yearly billing gives two months free, and every feature is on every plan. Only clean shots are billed; check the response’s X-Page-Verdict and X-Billed headers to see the result for a request. Use caching with a chosen TTL when a page does not need a fresh capture every time.

9. FAQ

Does “full-page” include content in every scrollable panel?

Not necessarily. A panel can scroll independently of the document. Test it separately and capture the panel or element if needed.

Is 8192 pixels Chrome’s current full-page screenshot limit?

No. That figure comes from an older issue marked fixed. Current Chromium source has a large-page guard, but the reviewed sources do not establish a universal usable-height limit.

Can this be diagnosed without the page and capture details?

Not definitively. The capture mode, page structure, render timing, and capture size are the first checks; a specific diagnosis needs the affected URL and capture setup.

Sources