How to Capture a Whole Web Page Screenshot
Capture an entire webpage below the fold with Firefox, Chrome, Edge, or a phone—and automate reliable full-page shots with ScreenshotNeo.
A normal screenshot records only the visible viewport. A whole-page screenshot captures the document from the top to the bottom, including content below the fold.
For a quick desktop capture, use Firefox’s built-in Take Screenshot → Save full page. Chrome and Edge provide developer and web-capture commands. On phones, long-capture controls depend on the device and app. Before capturing, let the page render and scroll through it so lazy-loaded content appears.
1. Prepare the page before capturing
- Open the exact URL and wait for the initial layout to settle.
- Dismiss or accept cookie dialogs when appropriate. A banner can obscure content or change the captured state.
- Scroll from the top to the bottom once. This prompts many lazy-loaded images and sections to load.
- Stop animations or video when a stable frame matters. Dynamic content can change between the top and bottom of a long capture.
- Check whether the page contains an inner scrolling panel. A browser’s full-document command may not expand that panel.
After saving, inspect the top, middle, and bottom of the resulting image. A successful command can still produce missing images, clipped content, or a stale loading state.
2. Firefox: Save full page
- Open the webpage in Firefox desktop.
- Right-click the page and choose Take Screenshot.
- Choose Save full page.
- Save the image and review it for missing or clipped sections.
Mozilla documents the Developer Tools route for capturing an entire page or a single element in its Taking screenshots documentation. If the screenshot button is not visible, open Developer Tools settings, find Available Toolbox Buttons, and enable Take a screenshot of the entire page. The enabled button captures the current page and saves it to Downloads.
Firefox also supports keyboard shortcuts for saving a page: Mozilla Support lists Command + S on macOS and Ctrl + S on Windows and Linux. Shortcut behavior depends on version and context, so use the on-screen Take Screenshot command when the shortcut does not open the capture interface.
3. Chrome: Capture full size screenshot
- Open the page in Chrome.
- Open Developer Tools with F12, Ctrl+Shift+I on Windows/Linux, or Command+Option+I on macOS.
- Open the DevTools command menu. In many versions, press Ctrl+Shift+P on Windows/Linux or Command+Shift+P on macOS.
- Search for Capture full size screenshot.
- Run the command and save the generated image.
Chrome’s DevTools labels can change between releases. If the exact wording differs, search the current command menu for full size or screenshot. Scroll the page first when it uses lazy loading, then verify the saved file.
4. Edge: Capture full page
- Open the page in Microsoft Edge.
- Open Web Capture from the browser menu or toolbar.
- Choose Capture full page.
- Save the result and inspect it for missing content.
Edge menu names and toolbar placement vary by version. If you do not see the command, open the browser menu and search for Web Capture, then look for its full-page option.
5. iPhone and Android long screenshots
Phone support is device-, operating-system-, app-, and browser-dependent. The same control is not available everywhere.
iPhone
- Take a normal screenshot with the device’s screenshot buttons.
- Tap the screenshot preview.
- If the app supports it, select Full Page.
- Save or share the resulting PDF or image according to the options shown by your device.
Samsung Android
- Take a screenshot.
- When the screenshot toolbar appears, tap Scroll capture.
- Continue tapping or holding the control until the required page length is included.
- Save the result.
Other Android phones may use different names or provide no long-screenshot control in a particular app. Check the toolbar immediately after taking the screenshot.
6. When a full-page image is the wrong output
| Goal | Better choice | Reason |
|---|---|---|
| Show the visual design in one tall frame | Full-page screenshot | Preserves the rendered appearance as one image. |
| Read, print, or select text | Print or save to PDF | Text remains document-oriented, but pagination and layout can differ from the webpage. |
| Show one component | Element screenshot | A focused crop is easier to review than a very tall image. |
| Capture a nested scrolling panel | Element capture or several section captures | The main document command may not expand an independently scrolling region. |
A full-page screenshot is not automatically the most accessible or legible format. Choose the output based on whether the reader needs visual fidelity, text selection, printing, or a specific component.
7. Troubleshooting full-page captures
Images or sections are missing
Cause: lazy loading, delayed requests, or an unfinished script. Fix: scroll from top to bottom, wait for images to appear, then run the capture again. Review the middle of the result, not only its top and bottom.
An inner panel is cut off
Cause: the panel has its own scrollbar and is not part of the document’s normal height. Fix: capture that element separately when the browser supports element capture, or capture the panel in multiple sections.
The page changes during capture
Cause: animation, ads, live data, or delayed network activity. Fix: wait for stable content, pause animation where possible, and compare the top, middle, and bottom of the saved file.
The result is blank
Cause: the page has not rendered, navigation is still in progress, or a script blocked the content. Fix: reload, wait for visible content, disable extensions that interfere with the page, and try the capture command again.
The screenshot is too tall to use
Cause: the page contains a large amount of content. Fix: capture the relevant element or section, or save a PDF when the reader needs a document for reading and printing.
The browser command is missing
Cause: a version-specific interface or disabled Developer Tools button. Fix: search the current command menu for screenshot or full size; in Firefox, enable the screenshot button in Developer Tools settings.
8. Automate whole-page captures with ScreenshotNeo
For repeatable captures, [ScreenshotNeo](https://screenshotneo.com) provides a website screenshot API and MCP server. It can capture full pages, load lazy images, wait for a selector, delay, or network idle, and return PNG, JPEG, WebP, or PDF. You can also set a viewport or device preset, use retina scale, hide selectors, block ads and trackers, add custom CSS or JavaScript, and choose a cache TTL.
Or skip the browser setup
Use one GET request. See the [ScreenshotNeo API documentation](https://screenshotneo.com/docs/) for the complete option list.
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 removes cookie and consent banners, newsletter popups, and chat widgets before the shot. 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. 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 each month with no card. Paid plans start at $5 for 3,000 shots; every feature is available on every plan. [Create a free ScreenshotNeo account](https://screenshotneo.com/account/sign-up/).
9. Reliability, performance, and cost considerations
- Wait deliberately: network-idle or selector waits are more predictable than capturing immediately after navigation.
- Control page weight: blocking ads, trackers, or unused resource types can reduce work, but verify that required images still load.
- Use caching for repeated URLs: choose a TTL that matches how often the page changes. A cache hit is identified in the response and is not billed by ScreenshotNeo.
- Prefer element captures when appropriate: they produce smaller files and avoid the extreme height of a full document.
- Use PDF for document workflows: page ranges, paper size, margins, and landscape mode are available when a printable result is needed.
- Plan for failures: check the HTTP response and ScreenshotNeo’s
X-Page-VerdictandX-Billedheaders before storing a result as successful. - Use asynchronous jobs for large workloads: signed webhooks can notify your system when a capture completes.
10. Checklist for a dependable whole-page screenshot
- ☐ The page finished rendering.
- ☐ You scrolled through the document to trigger lazy loading.
- ☐ Cookie dialogs, popups, and chat widgets do not cover required content.
- ☐ Any nested scrolling panel was captured separately.
- ☐ The saved file was checked at the top, middle, and bottom.
- ☐ You selected an image or PDF based on the reader’s actual need.
- ☐ Automated captures have waits, timeouts, caching, and failure checks.
11. FAQ
Does a full-page screenshot include content below the fold?
Yes. Its purpose is to capture the document’s full vertical content rather than only the visible viewport, subject to lazy loading and nested-scroll limitations.
Why is my full-page screenshot longer than the visible page?
Fixed headers, hidden content, margins, and browser capture behavior can increase the document’s measured height. Inspect the page structure and capture a specific element if the extra area is not useful.
Can I capture a page that requires login?
Browser tools use the current browser session. An automated service needs the appropriate cookies, headers, or authorization supplied through its supported configuration.
Should I use PNG, JPEG, WebP, or PDF?
Use PNG for lossless UI detail, JPEG for photographs where smaller files matter, WebP for compact modern web delivery, and PDF for reading, printing, or selectable text.
What is the fastest repeatable method?
For occasional work, use the browser’s native full-page command. For recurring or batch work, an API with explicit waits, resource controls, caching, and result-status headers is easier to operate consistently.


