ScreenshotNeo

BlogScreenshots on your device

How to Use a Chrome Tool for Full-Page Screenshots

Capture an entire webpage in Chrome with DevTools, extensions, or ScreenshotNeo, including fixes for lazy loading and infinite scroll.

By the ScreenshotNeo team1 October 20267 min read

To screenshot an entire webpage in Chrome, open DevTools, enable the device toolbar, select More options → Capture a full size screenshot, and let Chrome download the image. The full-size command includes content below the visible viewport; the regular Capture screenshot command does not. Chrome documents this workflow in its DevTools screenshot guide.

Capture a full webpage with Chrome DevTools

  1. Open the webpage in desktop Chrome.
  2. Wait for the page to finish loading. Scroll through important sections if the page loads images or other content only when it approaches the viewport.
  3. Open DevTools by right-clicking the page and choosing Inspect, or by using your operating system’s DevTools shortcut.
  4. Turn on the device toolbar by clicking the phone-and-tablet icon in DevTools. If the screenshot commands are missing, the device toolbar is usually the reason.
  5. Open the device-toolbar More options menu.
  6. Choose Capture a full size screenshot.
  7. Find the downloaded image in Chrome’s downloads folder and inspect the top, middle, and bottom of the page for missing content or layout changes.

Chrome’s screenshot menu also includes commands for the current viewport, a selected area, a DOM node, an oversized node, and device-frame captures. Use Capture a full size screenshot when the goal is one image containing the whole page, including content that is not currently visible.

Full-size versus viewport capture

Command What it captures Use it when
Capture screenshot Only the visible viewport You need a hero image, bug report, or current-screen reference.
Capture full size screenshot The page’s full scrollable height You need a complete article, landing page, or documentation page in one image.
Capture node screenshot A selected DOM element You need one card, chart, table, or component.
Capture area screenshot A rectangle you select You need a precise region from a complex layout.

Prepare a page before capturing

A full-page command can only capture content that the page has rendered. Use this checklist for pages with scripts, animations, or lazy loading:

  • Wait for network activity to settle. A page that is still loading can produce a screenshot with blank cards or missing images.
  • Trigger lazy-loaded images. Scroll through the page once, pause while images appear, then capture again.
  • Stop infinite loading. Social feeds, search results, and dashboards may keep adding content as you scroll. Capture after the desired amount has loaded.
  • Close obstructing UI. Dismiss cookie dialogs, newsletter popups, chat bubbles, and account prompts when they cover content.
  • Pause animations. Animated banners, carousels, and video frames can be captured at inconsistent points. Use the page’s pause control or temporarily disable animations in DevTools when visual consistency matters.
  • Check sticky elements. Headers and floating buttons may repeat at every scroll position or cover text in the final image.
  • Inspect nested scroll areas. A page can have a scrolling document plus an inner panel. The full-size command follows the document’s height and may not expand the inner panel.
  • Check iframes. Embedded documents and cross-origin frames can have their own loading and scrolling behavior.

Set the viewport and device mode first

The device toolbar controls the viewport used for the capture. Choose a device preset, orientation, or responsive width before selecting the full-size command. This is useful when you need a desktop, tablet, or mobile layout. Capture separate images for separate viewport sizes; changing the viewport after capture does not change an existing file.

When the built-in tool is not enough

DevTools is a good choice for occasional, local captures because it is built into Chrome and does not require an extension. Repeated work can be faster with a purpose-built extension, but review permissions, privacy disclosures, and current Chrome Web Store availability before installing one.

Tool Useful for Checks and limitations
DevTools full-size capture Occasional screenshots without installing anything Several menu steps; dynamic pages may need preparation.
GoFullPage Frequent one-click full-page captures The listing documents PNG and PDF export and fixes for scrolling, iframes, fixed elements, animations, smooth scrolling, frames, and PDF export. The listed version is 8.9, dated 2026-09-24.
FullPageShot Local PNG capture for privacy-sensitive workflows The listing says it saves locally and does not upload screenshots. It requires debugger and downloads permissions. Virtualized feeds, infinite-scroll pages, and some editor preview shells may not capture completely. The listed version is 2.3.0, updated 2026-09-24.

Common problems and fixes

Symptom Likely cause Fix
The image stops at the viewport The regular screenshot command was selected. Open More options in the device toolbar and choose Capture a full size screenshot.
Images are blank below the fold Lazy loading has not been triggered, or requests are still pending. Scroll through the page, wait for images to appear, then capture again.
The bottom is cut off The document height changed while Chrome was capturing, often because of ads, fonts, or late script execution. Wait for the layout to stabilize, disable or close changing elements, and repeat the capture.
An infinite feed never finishes New items are appended whenever the page reaches the bottom. Stop scrolling at the desired point and use a viewport or area capture, or use a tool that supports a defined capture boundary.
A dashboard panel is incomplete The panel has its own overflow scroll container. Scroll the inner panel separately, capture that DOM node, or export the panel from the application if supported.
Text is hidden under a sticky header The header is fixed while the page is stitched or rendered. Temporarily hide the fixed element in DevTools, or use an extension that handles fixed elements.
A cookie banner or chat bubble covers content The overlay is part of the page at capture time. Dismiss it before capture or hide its selector temporarily in DevTools.
An embedded frame is missing The frame is still loading, blocked, or has independent scrolling. Wait for the frame, check its permissions and network requests, and capture the frame or its source page separately.
The screenshot has the wrong mobile or desktop layout The device toolbar viewport was not set before capture. Select the intended device preset, width, height, and orientation, then capture again.
The extension requests unexpected permissions Extensions need access to inspect the current tab or save downloads. Read the current store listing and privacy policy. Remove the extension if its permissions do not fit your workflow.

Performance, reliability, and file size

  • Long pages take longer. More DOM content, images, fonts, and scripts increase rendering and encoding time.
  • High-density viewports produce larger files. A mobile or retina-like layout can contain more pixels than its CSS dimensions suggest.
  • PNG preserves sharp text but can be large. JPEG is usually smaller for photographic pages, while WebP can provide a smaller file when your downstream tools support it.
  • Capture after fonts load. A late web font swap can change line breaks and page height.
  • Repeat captures consistently. Use the same viewport, zoom, login state, cookie state, and page preparation steps when comparing revisions.
  • Protect private pages. A local DevTools capture keeps the image on your machine. Treat downloaded files as sensitive if the page contains account or customer data.

Or skip the browser setup

ScreenshotNeo provides a website screenshot API when you need repeatable captures from code or a server. Its API accepts one GET request and returns PNG, JPEG, WebP, or PDF. The options include full-page capture with lazy images loaded, CSS-selector element capture, dark mode, device presets or custom viewports, retina scale, custom CSS and JavaScript, click and wait controls, ad and tracker blocking, custom headers and cookies, timezone and geolocation, resizing, caching, signed links, asynchronous jobs, webhooks, bulk capture, and a usage API.

See the ScreenshotNeo API documentation for the complete parameter list. These runnable examples capture Stripe; replace the URL with the page you need.

cURL

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

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 failed: ${res.status}`);
const buffer = Buffer.from(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', buffer));

ScreenshotNeo removes cookie and consent banners, newsletter popups, and chat widgets before the capture. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed; the response identifies the result with X-Page-Verdict and X-Billed headers. Its MCP server exposes take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients.

The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 screenshots; every feature is available on every plan. Create a free ScreenshotNeo account.

FAQ

Can Chrome save a full webpage without an extension?

Yes. DevTools includes Capture a full size screenshot in the device-toolbar More options menu.

Why is my full-page screenshot much taller than the visible page?

The command captures the document’s full scrollable height, including content below the viewport. Check for hidden overflow containers and dynamically appended content if the height is unexpected.

Does full-page capture work with infinite-scroll feeds?

It may not produce a stable complete result because the page keeps changing as it scrolls. Stop loading at a defined point or capture a specific section instead.

Should I use an extension for private pages?

Review its permissions and privacy disclosures first. DevTools keeps a local capture workflow, while an extension’s behavior depends on its implementation and current listing.

When should I use an API instead of Chrome?

Use an API when captures need to run in jobs, CI, server code, or at repeatable scale. ScreenshotNeo also handles consent overlays, failed-load verdicts, caching, bulk requests, and MCP clients.