ScreenshotNeo

BlogHow-to

How to Save a Web Page as a Picture

Learn how to save a full web page or visible area as a PNG, JPEG, or WebP in Chrome, Edge, Firefox, Safari, and with an API.

By the ScreenshotNeo team1 October 20266 min read

To save a web page as a picture, use your browser’s screenshot tool and choose a full-page option. Full-page capture includes content below the viewport. Visible-area capture saves only what is currently on screen. After the capture, download the image or copy it to the clipboard.

1. Choose the right capture type

Need Choose Result
The entire article or landing page Full page One tall image containing content below the fold
Only what is visible now Visible area A normal viewport-sized screenshot
A specific section Area or element capture Only the selected region
A printable document PDF export Paginated document rather than a raster image

Use full-page capture for documentation, bug reports, archives, and sharing a complete page. Use visible capture for a single state, menu, dialog, or viewport comparison.

2. Save a full page in Microsoft Edge

  1. Open the page in Edge.
  2. Press Ctrl+Shift+S, or open the browser menu and choose Screenshot or Web capture.
  3. Choose Capture full page.
  4. Review the result, then save it or copy it.

Edge’s feature availability and exact behavior can vary by device type, market, and browser version. If the shortcut does not work, open the browser menu and look for Screenshot or Web capture.

3. Save a full page in Firefox

  1. Right-click an empty area of the page.
  2. Choose Take Screenshot.
  3. Select Save full page for the complete document, or Save visible for the current viewport.
  4. Download the image or copy it to the clipboard.

Firefox also provides a Developer Tools command. Open Developer Tools, run the :screenshot command with its full-page option, and use --file when you want to force file output. Firefox saves screenshots to the Downloads directory by default.

4. Save a full page in Chrome

  1. Open Chrome DevTools with F12 or Ctrl+Shift+I (Windows/Linux) or Cmd+Option+I (macOS).
  2. Open the Command Menu with Ctrl+Shift+P or Cmd+Shift+P.
  3. Search for Capture full size screenshot.
  4. Run the command. Chrome downloads the resulting image.

Chrome menu labels can change between releases. Search for “screenshot” in the Command Menu if the exact wording differs.

5. Save a full page in Safari on macOS

  1. If needed, enable the Develop menu in Safari settings.
  2. Open Web Inspector.
  3. Select the page document.
  4. Use the inspector’s screenshot capture command for a full-page image.

Safari’s exact command label varies by release. If you only need the current viewport, use the normal macOS screenshot shortcuts instead.

6. Capture on phones and tablets

Some mobile browsers and operating systems offer a Full Page screenshot option after taking a normal screenshot. Availability depends on the device, browser, and app. When the option is missing, use visible-area capture or open the page on a desktop browser with full-page support.

For a long page, wait for images and expandable sections to finish rendering before capturing. Mobile pages may also use a different responsive layout, so verify that the saved picture has the intended width.

7. Improve the result before saving

  • Wait for lazy content: scroll through the page first or wait until images, charts, and embedded media appear.
  • Close overlays: dismiss cookie prompts, newsletter dialogs, chat bubbles, and permission requests.
  • Set the viewport: resize the browser before capture when you need a particular desktop or mobile layout.
  • Use a stable state: pause animations, open required menus, and hover elements before taking the screenshot.
  • Check access: sign in and complete any required permission step before capture. Content behind a login prompt will not appear automatically.

8. Image format and file handling

Browser tools usually save a raster image such as PNG. PNG preserves sharp text and transparent pixels, while JPEG is smaller for photographic content. WebP often provides a smaller file with good quality when your workflow supports it. If your browser only exports PNG, convert it afterward with an image editor or command-line tool.

Very long pages can create very tall files. Check the final dimensions and file size before uploading them to documentation, issue trackers, or image APIs.

9. Troubleshooting common problems

Problem Likely cause Fix
The result contains only the viewport Visible capture was selected Choose Full page, Save full page, or Capture full size screenshot.
Images are missing Lazy loading or slow network requests Scroll through the page, wait for images, then capture again.
The page changes halfway through Animations, ads, live feeds, or client-side updates Pause motion, wait for a stable state, disable extensions that alter the page, and recapture.
A cookie banner or chat widget covers content An overlay is still active Accept or dismiss it before taking the screenshot.
A login page appears instead of the content The page requires authentication Sign in in the same browser profile and confirm the page is accessible before capture.
The screenshot command is missing Browser version, platform, or menu changes Search the Command Menu, open the browser’s screenshot menu, or update the browser.
The file is too large Full-page images can be extremely tall Capture a selected section, reduce the viewport width, or resize and compress the output.
Text or hover content is absent The state was not rendered during capture Move the pointer, open the menu, or trigger the interaction before capturing.

10. Automate page screenshots with ScreenshotNeo

For repeated captures, CI jobs, or server-side workflows, ScreenshotNeo provides a website screenshot API. Send one GET request with a URL and receive a PNG, JPEG, WebP, or PDF. Its full-page mode loads lazy images, and you can control selectors, viewport and device presets, dark mode, retina scale, waiting conditions, custom CSS and JavaScript, headers, cookies, user agent, timezone, geolocation, caching, and more. See the ScreenshotNeo documentation for the complete parameter list.

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 data = Buffer.from(await res.arrayBuffer());
require('fs').writeFileSync('shot.webp', data);

Useful automation options

  • Capture the whole page or one element with a CSS selector.
  • Choose a device preset, any viewport, dark mode, or retina scale.
  • Wait for a selector, a delay, or network idle.
  • Click an element before capture and hide selectors.
  • Block ads, trackers, requests, or resource types.
  • Set custom headers, cookies, user agent, Authorization, timezone, and geolocation.
  • Use transparent backgrounds, image resizing, and a cache TTL you choose.
  • Create signed links for public <img> tags.
  • Submit asynchronous jobs with signed webhooks or capture up to 100 URLs per bulk call.

11. Reliability, performance, and cost notes

  • Reliability: Dynamic pages can change while a browser stitches a long screenshot. Wait for a selector or network idle when consistency matters.
  • Performance: Full-page captures take longer than viewport captures, especially when pages contain lazy images, video, or many third-party requests. Blocking unnecessary resources can reduce work.
  • Authentication: Pass cookies, headers, or Authorization when a page is private, and avoid placing secrets in a public URL.
  • Caching: Choose a cache TTL when the page does not change frequently; this reduces repeated rendering.
  • Billing: ScreenshotNeo reports X-Page-Verdict and X-Billed headers. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing; only clean shots are billed.
  • Plans: Free includes 1,000 shots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is available on every plan.

12. Or skip the browser setup

Use the same one-call request when you need repeatable screenshots from scripts, CI, or an AI workflow:

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

ScreenshotNeo removes cookie and consent banners, newsletter popups, and chat widgets before the shot. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents such as Claude or Cursor call take_screenshot, get_page_info, and capture_pdf. You get 1,000 screenshots a month free with no card, and paid plans start at $5 for 3,000 shots.

Create a free ScreenshotNeo account.

13. FAQ

Can I save a web page as PNG instead of PDF?

Yes. Use a browser screenshot command or an image endpoint such as ScreenshotNeo. PDF export is a separate workflow designed for paginated documents.

Why is my full-page image blank below the fold?

The page may lazy-load content only after scrolling, or a script may require a wait condition. Scroll first in a browser, or configure a selector, delay, or network-idle wait in an automated capture.

Can I capture a page behind a login?

Yes, when the browser session or automation request includes valid authentication. Public screenshot links should not expose private credentials.

Should I use full page or visible area for bug reports?

Use visible area for a specific visual defect and full page when context below the fold is needed to reproduce or review the issue.