ScreenshotNeo

BlogHow-to

How to Capture an Entire Web Page With a Browser Extension

Capture a complete webpage as one image or PDF with Firefox, Chrome extensions, and a repeatable workflow for long or dynamic pages.

By the ScreenshotNeo team1 October 20266 min read

Fastest answer: In Firefox, right-click an empty area of the page, choose Take Screenshot, then select Save full page. Firefox downloads one image or copies it to your clipboard. If you need Chrome, Edge, PDF export, annotations, iframe support, or repeatable extension controls, use a reputable full-page screenshot extension.

1. Use Firefox without installing an extension

Firefox includes full-page capture. Open the page, right-click an empty part of it, and choose Take Screenshot. You can also press Ctrl+Shift+S on Windows or Linux, or Command+Shift+S on macOS. Select Save full page, then download the image or copy it. Mozilla documents this workflow in Take screenshots in Firefox.

  1. Open the target webpage and wait for its content to load.
  2. Right-click an empty area, or use the keyboard shortcut.
  3. Choose Take Screenshot.
  4. Select Save full page.
  5. Save the downloaded image or choose copy if you only need it in another application.

This method is useful when you need a quick capture and do not need extension-specific export or annotation features.

2. Use Firefox Developer Tools for repeatable captures

Firefox Developer Tools has a full-page screenshot button. Its Web Console also supports a :screenshot command with a full-page option, delay, device-pixel ratio, filename, and CSS selector controls. Mozilla documents the command in Firefox screenshot command documentation.

  1. Open Developer Tools with F12 or Ctrl+Shift+I.
  2. Open the Developer Tools command line or Web Console.
  3. Run a full-page capture command such as :screenshot --fullpage.
  4. Add the documented delay, filename, device-pixel-ratio, or selector options when the page needs them.

Use this route when a normal context-menu capture is unavailable or when you want a command you can repeat while debugging a page.

3. Capture a full page with a browser extension

An extension captures the visible page in sections, scrolls through it, and stitches those sections into one result. GoFullPage documents image and PDF export and support for difficult layouts such as inner scrollers and embedded iframes. FullPage Capture documents one-click stitched capture, annotations, PNG/JPEG/PDF export, iframe and inner-scroller support, and local processing without an account or network requests. These are vendor-stated capabilities; check the current store listing before installing.

Installation and first capture

  1. Install an extension from your browser’s official extension store.
  2. Review its permissions and data disclosure before adding it.
  3. Open the page you want to capture.
  4. Wait for lazy-loaded sections, images, charts, and fonts to finish loading.
  5. Click the extension’s toolbar icon. GoFullPage also documents Alt+Shift+P as a shortcut.
  6. Let the extension scroll through the page and assemble the sections.
  7. Inspect the result for duplicated sticky headers, missing content, clipped nested scrollers, or animation artifacts.
  8. Export as PNG or JPEG for an image. Choose PDF when you need a paginated document and the extension supports it.

Very large pages can exceed an extension’s image-size limits. GoFullPage documents that unusually large pages may be split into separate images.

4. Prepare the page before scrolling capture

Most failures happen because the page changes while the extension is scrolling. Use this checklist:

  • Dismiss cookie or sign-in dialogs that cover content.
  • Wait for images and sections loaded only after scrolling.
  • Pause animated carousels, videos, and blinking banners when possible.
  • Expand accordions only if their hidden content belongs in the capture.
  • Scroll once through the page manually to trigger lazy loading.
  • Close browser UI panels that reduce the viewport.
  • For authenticated pages, confirm the extension is allowed to run on that site.
  • Do not capture restricted browser pages such as extension settings or store pages unless the browser explicitly supports them.

5. Choose the right output

Need Best choice Watch for
One quick image Firefox Save full page Fewer export and annotation controls
Chrome or Edge capture Full-page extension Permissions, dynamic content, stitching artifacts
Annotations or redaction An extension that documents annotation or blur tools Verify whether processing is local
PDF for sharing An extension with PDF export Pagination, margins, and very tall pages
Repeatable technical capture Firefox Developer Tools command Command syntax and page timing

6. Common problems and fixes

The result stops at the visible viewport

Cause: You selected a visible-area mode or the page prevents scrolling. Fix: Choose full-page mode, unlock the page’s scroll container, or use Firefox Developer Tools with :screenshot --fullpage.

Sticky headers appear many times

Cause: The extension captures a fixed header in every stitched segment. Fix: Hide or temporarily disable the fixed element with page CSS or an extension option, then capture again.

Images or sections are missing

Cause: Lazy loading, delayed API responses, blocked third-party resources, or capture starting too soon. Fix: Wait longer, scroll through the page once, disable aggressive content blocking for the capture, and retry.

An inner scroll area is clipped

Cause: The content scrolls inside a nested element instead of the document. Fix: Use an extension that states it supports inner scrollers, or capture that element separately.

An iframe is blank

Cause: Cross-origin restrictions, a frame that loads after the parent page, or extension limitations. Fix: Wait for the frame, confirm the extension documents iframe support, or capture the framed page directly when you have permission.

The page layout changes between segments

Cause: Responsive breakpoints, ads, live data, or animations react to scrolling. Fix: Keep the viewport fixed, pause motion, block changing overlays where possible, and retry after the page reaches a stable state.

The extension cannot run on the page

Cause: Browser-protected URLs, store pages, file restrictions, or denied site access. Fix: Capture a normal HTTP or HTTPS page, grant site access in the extension settings, or use Firefox’s built-in tool.

The download is huge or fails

Cause: A very long page creates an image larger than browser or format limits. Fix: Export separate sections, reduce device scale if supported, use PDF, or capture only the required element.

7. Reliability, privacy, and performance

  • Reliability: A full-page extension depends on stable scrolling, page timing, and a layout that does not change while capture runs. Recheck pages with live feeds, ads, animations, or nested scrollers.
  • Performance: Long pages require more memory because the extension keeps multiple segments before stitching. Large images and high device-pixel ratios increase processing time and file size.
  • Privacy: Read permissions and data disclosures in the official store listing. FullPage Capture states that it keeps screenshots on the device and makes no network requests; treat that as the publisher’s claim and verify the current listing.
  • Cost: Firefox’s built-in tool has no extension subscription. Extensions may be free or offer paid features; check the current listing before relying on PDF export, annotations, or advanced controls.

8. Or skip the browser setup

If you need screenshots in a script, CI job, CMS, or AI workflow, ScreenshotNeo returns a clean image or PDF from one GET request. Read the ScreenshotNeo API documentation for all options.

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)
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}`);

ScreenshotNeo accepts options for full-page capture, element selectors, dark mode, device presets or custom viewports, retina scale, PDF paper and margins, custom CSS and JavaScript, click actions, hidden selectors, selector or network-idle waits, request blocking, headers, cookies, user agents, authorization, timezone, geolocation, transparent backgrounds, resizing, caching, signed image links, asynchronous webhooks, bulk capture, and usage reporting. Cookie and consent banners, newsletter popups, and chat widgets are removed before capture. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing result. 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 per month with no card. Paid plans start at $5 for 3,000 screenshots, and every feature is available on every plan. Create a free ScreenshotNeo account.

9. FAQ

Can I capture an entire webpage in Chrome without an extension?

Chrome has browser and Developer Tools approaches that vary by version. If your build does not expose a reliable full-page command, a full-page extension is the practical route.

Why is my full-page screenshot several images?

Very tall pages can exceed image dimensions or memory limits. Some extensions document splitting unusually large pages into separate images.

Can a scrolling screenshot include content inside an iframe?

Only when the browser and extension can access and render that frame. Check the extension’s stated iframe support and consider capturing the framed page separately.

What format should I use?

Use PNG for sharp interfaces and text, JPEG for smaller photographic files, and PDF when pagination and printing matter.

How do I capture only one section?

Use an extension’s element-selection mode if available, Firefox’s selector option in the screenshot command, or ScreenshotNeo’s CSS-selector capture option.