BlogScreenshots on your device
How to Add Full-Page Screen Capture to Chrome
Capture an entire webpage in Chrome with DevTools, extensions, or an API. Learn the exact steps, limits, troubleshooting fixes, and automation options.
Fast answer: Open the page in desktop Chrome, open DevTools with Ctrl+Shift+I (Windows/Linux) or Command+Option+I (macOS), open the Command Menu with Ctrl+Shift+P or Command+Shift+P, search for screenshot, and choose Capture full size screenshot. Chrome saves a PNG containing the whole rendered page, including content below the visible viewport. This is the built-in method documented by Chrome DevTools.
1. Capture a full webpage with Chrome DevTools
- Open the webpage you want to save in Chrome.
- Open DevTools: Ctrl+Shift+I on Windows/Linux, or Command+Option+I on macOS.
- Open the DevTools Command Menu: Ctrl+Shift+P on Windows/Linux, or Command+Shift+P on macOS.
- Type
screenshot. - Select Capture full size screenshot.
Chrome downloads a PNG to your normal download location. The command captures the page’s rendered, scrollable content rather than only the area currently visible on screen. It is useful for design reviews, bug reports, documentation, and preserving a reference copy.
Other screenshot commands in the same menu
| Command | Use it for |
|---|---|
| Capture screenshot | Only the current viewport. |
| Capture full size screenshot | The complete scrollable page. |
| Capture node screenshot | A selected element in the Elements panel. |
| Capture area screenshot | A rectangular region you draw. |
| Capture screenshot with device frame | A viewport surrounded by a device frame. |
2. What Chrome captures
A full-size capture is one tall image assembled from the page’s rendered content. It includes content below the fold, but the exact result depends on how the site is built and on your Chrome version.
- Lazy-loaded images: Images that load only after scrolling may be missing or appear at different times.
- Nested scrolling: A page may contain an inner scrollable panel. The full-size command primarily follows the document scroll, so inner panels can remain partially captured.
- Fixed headers: A header fixed to the viewport can appear repeatedly or overlap content when the page is stitched.
- Virtualized feeds: Infinite lists may render only nearby items; content that is never rendered cannot be captured.
- Animations and videos: The frame shown at capture time is not a complete recording.
- Authentication: The capture uses your current Chrome session, including cookies and login state. Treat downloaded files as potentially sensitive.
3. Make difficult pages more reliable
Wait for content before capturing
Let the page finish loading, then scroll through it once if important images or sections load on demand. Stop animations where possible, close transient dialogs, and return to the top before running the command.
Handle cookie banners and popups
Dismiss consent dialogs, newsletter forms, chat widgets, and other overlays manually. If a dialog returns after scrolling, the resulting image may contain it or have content obscured.
Capture a specific element instead
For a long table, article column, or application panel, inspect the element in DevTools and use Capture node screenshot. This avoids unrelated page content and can work better when the document itself has complex scrolling.
Check the output dimensions
Very long pages create very tall PNG files. If an image viewer or documentation system rejects the dimensions or file size, capture sections or export through a tool that supports resizing or PDF output.
4. Extensions for a toolbar workflow
If opening DevTools every time is inconvenient, a Chrome Web Store extension can add a toolbar action. The GoFullPage listing describes full scrolling capture with PNG, JPEG, and PDF export. The Full Page Screen Capture listing describes editing features such as annotation, redaction, OCR, cropping, and PNG/JPG/PDF export.
Review an extension’s permissions and privacy terms before installing it, especially when capturing pages containing customer data, internal tools, or authenticated screens. Extension behavior can differ on nested scrolling containers, lazy-loaded content, fixed headers, and virtualized feeds.
5. Automate full-page capture with ScreenshotNeo
For scripts, scheduled jobs, CI pipelines, or captures from a server, ScreenshotNeo provides a GET endpoint that returns a PNG, JPEG, WebP, or PDF. It can capture full pages, load lazy images, select one element by CSS selector, set a viewport or device preset, emulate dark mode, run custom JavaScript and CSS, wait for a selector, delay, or network idle, and more. See the ScreenshotNeo documentation for the complete parameter list.
Or skip the browser setup
One request returns the screenshot:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo accepts cookie and consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed; response headers identify the page verdict and whether the request was billed. An MCP server provides take_screenshot, get_page_info, and capture_pdf tools 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 shots.
Create a free ScreenshotNeo account and start with 1,000 screenshots per month at no charge.
6. Useful ScreenshotNeo options for full-page jobs
| Need | Option or capability |
|---|---|
| Entire document | Full-page capture with lazy images loaded. |
| One section | Capture an element by CSS selector. |
| Responsive checks | 12 device presets or any custom viewport. |
| Sharper output | Retina scale. |
| Clean layout | Custom CSS, JavaScript, hidden selectors, and click-before-capture actions. |
| Private pages | Custom headers, cookies, user agent, and Authorization. |
| Regional rendering | Timezone and geolocation. |
| Repeat captures | Caching with a TTL you choose. |
| Large batches | Bulk capture of up to 100 URLs per call. |
| Background processing | Async jobs with signed webhooks. |
| Public embeds | Signed links for <img> tags. |
| Documents | PDF paper size, margins, landscape mode, and page ranges. |
7. Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| No full-size command appears | DevTools Command Menu is not focused, or Chrome is outdated. | Click inside DevTools, press the Command Menu shortcut again, type screenshot, and update Chrome if needed. |
| Only the visible viewport is saved | The regular screenshot command was selected. | Run the command again and choose Capture full size screenshot. |
| Images are blank | Lazy loading or a slow network request. | Wait for the page, scroll through it once, then capture again. |
| A popup covers content | Consent, newsletter, or chat overlay. | Dismiss it before capture, or hide the element with DevTools for a one-off capture. |
| Inner panel is cut off | The page uses a nested scrolling container. | Capture the panel as a node, or use an automated capture tool that can target its selector. |
| Infinite feed ends early | Virtualized rendering or pagination. | Load the required items first; content not rendered in the DOM cannot appear in the image. |
| Image is too large to use | A very tall PNG exceeds a viewer or upload limit. | Capture sections, resize the output, or generate a PDF. |
| ScreenshotNeo returns an unexpected result | The target blocks automation, needs authentication, or has timing-sensitive content. | Provide the required headers or cookies, add a selector or network-idle wait, and inspect the X-Page-Verdict and X-Billed response headers. |
8. Performance, reliability, and cost
- Speed: A full document takes longer than a viewport because more content must render and encode. Waiting for network idle or lazy images improves completeness but increases request time.
- Reliability: Deterministic waits, a fixed viewport, disabled animations, and targeted selectors reduce visual differences between runs.
- File size: PNG preserves exact pixels but can be large. JPEG or WebP is usually smaller; PDF is better when the result will be printed or paginated.
- Browser workflow cost: DevTools is built into Chrome. Extensions may add setup and permissions that need review.
- API cost: ScreenshotNeo bills only clean shots. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing. Plans include Free (1,000/month), Starter ($5/3,000), Growth ($15/15,000), Pro ($39/60,000), Scale ($99/250,000), and Business ($249/1,000,000); yearly billing gives two months free.
9. FAQ
Can Chrome capture a page longer than my screen?
Yes. Use Capture full size screenshot from the DevTools Command Menu.
Does full-page capture produce a PDF?
Chrome’s built-in command downloads a PNG. Use the browser print dialog, an extension, or ScreenshotNeo’s PDF capture when you need a PDF.
Can I capture only one element?
Yes. Select the element in DevTools and use Capture node screenshot, or target a CSS selector in ScreenshotNeo.
Why is a long screenshot different from what I see while scrolling?
Lazy loading, fixed overlays, nested scrolling, virtualization, and animations can change what is rendered during capture. Prepare the page or capture a specific element.
Is an extension required?
No. Chrome DevTools includes full-size capture. Extensions are optional for toolbar access, editing, annotation, or additional export formats.


