How to Capture a Full Webpage as a JPG
Capture an entire webpage below the fold as a JPG using Edge, Firefox, Chrome extensions, developer tools, or ScreenshotNeo.
To capture a full webpage as a JPG, use Microsoft Edge’s built-in full-page Screenshot tool, Firefox’s full-page screenshot followed by PNG-to-JPG conversion, or a Chrome extension that explicitly supports JPG export. If you need repeatable captures in code, use a screenshot API such as ScreenshotNeo.
Choose the right method
| Method | Full page | JPG produced directly | Extra software |
|---|---|---|---|
| Microsoft Edge Screenshot | Yes | Save from the capture overlay | Edge |
| Firefox Screenshot | Yes | No; Firefox downloads PNG | Image editor or converter for JPG |
| Firefox Developer Tools | Yes | No; documented output is PNG | Image editor or converter for JPG |
| Chrome extension such as GoFullPage | Yes | Yes, according to its listing | Third-party extension |
| ScreenshotNeo API | Yes | Yes, with the format option |
API key |
A full-page capture includes content below the visible browser viewport. Browser features can change, and Microsoft notes that Edge Screenshot availability and behavior can vary by device, market, and browser version.
Microsoft Edge: capture and save a full webpage
- Open the webpage in Microsoft Edge.
- Right-click the page and choose Screenshot, or press Ctrl+Shift+S.
- Choose the full-page capture control.
- Inspect the resulting image, including content below the fold.
- Save the capture from the overlay. Choose JPG if the save dialog offers an image-format choice; otherwise save the available image and convert it.
Edge’s Screenshot feature is designed to capture sections that require scrolling. If you do not see the command, update Edge, check the context menu on an empty part of the page, or use another method below.
Firefox: capture the full page, then convert PNG to JPG
- Open the page in Firefox.
- Right-click an empty area and select Take Screenshot, or press Ctrl+Shift+S (Windows/Linux) or Command+Shift+S (macOS).
- Select Save full page.
- Click Download.
- Open the downloaded PNG in an image editor and export it as JPG.
Firefox documents PNG output for this workflow. Selecting “Save full page” does not make the built-in download a JPG.
Convert the PNG from a terminal
ImageMagick can convert the file locally:
magick full-page.png -background white -alpha remove -alpha off -quality 90 full-page.jpg
Use a solid background when the PNG has transparency; JPG does not support an alpha channel. For a smaller file, reduce the quality value or resize the image after conversion.
Chrome: use a JPG-capable full-page extension
Chrome’s researched JPG route is a third-party extension. The GoFullPage Chrome Web Store listing describes full-page capture and compressed JPG export. Install extensions only when your organization permits them, review their permissions, and avoid treating a listing as a guarantee for every website.
- Install a full-page extension that lists JPG export.
- Open the target webpage and start the extension’s full-page capture.
- Wait for the capture to finish scrolling through the page.
- Choose JPG in the export controls and save the file.
Some pages use lazy-loaded images, sticky elements, or infinite scrolling. Review the result before sharing it; an extension may need page-specific settings or may not capture content that only appears after interaction.
Firefox Developer Tools: repeatable full-page capture
Firefox Developer Tools can capture an entire page with the screenshot toolbox button or the Web Console :screenshot helper.
:screenshot --fullpage
The documented output is PNG, so convert it to JPG afterward. To capture one element rather than the entire page, use a selector:
:screenshot --selector "main.article"
Element capture is useful when the page contains a very large header, navigation, or unrelated content that should not appear in the deliverable.
Or skip the browser setup
ScreenshotNeo returns a webpage screenshot from one GET request and supports PNG, JPEG, WebP, and PDF. See the ScreenshotNeo API documentation for all parameters.
cURL
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -d format=jpg -o shot.jpg
Python
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com", "format": "jpg"},
timeout=90,
)
r.raise_for_status()
open("shot.jpg", "wb").write(r.content)
Node.js
const q = new URLSearchParams({
access_key: 'YOUR_API_KEY',
url: 'https://stripe.com',
format: 'jpg'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const body = Buffer.from(await res.arrayBuffer());
require('fs').writeFileSync('shot.jpg', body);
Before the capture, ScreenshotNeo accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets. You can turn each cleanup step off. It supports full-page capture with lazy images loaded, CSS-selector element capture, dark mode, device presets, custom viewports, retina scale, custom CSS and JavaScript, clicks, waits, blocked requests, headers, cookies, user agents, authorization, time zones, geolocation, resizing, caching, signed links, asynchronous jobs, webhooks, bulk capture, and a usage API.
Only clean shots are billed. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and the response identifies the result with X-Page-Verdict and X-Billed headers. ScreenshotNeo also provides an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.
The Free plan includes 1,000 shots each month with no card. Paid plans start at $5 for 3,000 shots; yearly billing gives two months free.
Create a free ScreenshotNeo account and start with 1,000 screenshots per month without a card.
Full-page JPG options and settings
Control the output format
- Use JPG for photographs, gradients, and smaller files.
- Use PNG when text must remain lossless or transparency matters.
- Use WebP when your downstream system accepts it and file size matters.
JPG is always lossy. Repeatedly opening and saving a JPG can reduce quality, so keep the original PNG or capture output when you may need future conversions.
Handle long or dynamic pages
- Wait for a known selector, a fixed delay, or network idle before capture.
- Scroll or use a full-page mode so lazy images load below the fold.
- Hide sticky headers, cookie controls, and chat launchers if they obscure content.
- For infinite-scroll pages, define a stopping condition; “full page” may otherwise have no finite end.
- Capture a specific article container when advertisements or recommendations make the page excessively tall.
Preserve a consistent appearance
- Set a fixed viewport width and device preset for repeatable results.
- Choose light or dark mode explicitly.
- Set the timezone and geolocation when the page personalizes dates or local content.
- Provide authentication headers or cookies only when you are authorized to access the page.
- Use a retina scale for sharper text, while checking the resulting pixel dimensions.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| The capture stops at the visible viewport | Full-page mode was not selected or the browser feature is unavailable | Choose full-page capture explicitly, update the browser, or use Developer Tools/API capture. |
| Firefox saved a PNG instead of JPG | Firefox’s built-in tool outputs PNG | Convert the PNG with an image editor or ImageMagick. |
| Images below the fold are missing | Lazy loading did not trigger | Use a capture tool that loads lazy images, scroll before capture, or wait for the image selector. |
| A cookie banner covers the page | The banner was not dismissed | Accept or close it before capture, hide its selector, or use ScreenshotNeo’s consent cleanup. |
| The page is blank or shows a bot check | The site blocked automated access | Capture manually when authorized, provide the required session context, or inspect the verdict from an API response. |
| The JPG has a black or unexpected background | The source used transparency | Flatten the image onto a white or intended background before JPG conversion. |
| The result is too tall to use | The page contains long feeds or repeated sections | Capture the article element, hide unrelated selectors, or split the page into sections. |
| ScreenshotNeo returns an HTTP error | Invalid key, URL, parameter, or inaccessible page | Check the API key, URL encoding, format value, response status, and request timeout; consult the API docs. |
Performance, reliability, and cost
- Browser captures: are convenient for one-off work but depend on the browser version, extension behavior, page length, and your local machine.
- Automation: use explicit waits and stable selectors. Network-idle alone may be insufficient for pages that fetch content after initial load.
- File size: depends on pixel dimensions, image quality, and page complexity. Resize after capture when a publishing system has dimension limits.
- Repeatability: fix viewport, device scale, theme, timezone, geolocation, and authentication state.
- API billing: ScreenshotNeo bills only clean shots; failed loads, blank pages, bot checks, timeouts, and cache hits are not billed. Use its TTL cache for repeated URLs and bulk capture for up to 100 URLs per call.
- Privacy: capture only pages and account content you are authorized to reproduce. Check screenshots for personal data, tokens, private URLs, and internal dashboards before sharing.
FAQ
Can I capture a full webpage as JPG without installing anything?
Yes. Edge includes a full-page Screenshot feature. Firefox includes full-page capture but requires a PNG-to-JPG conversion step.
Does Chrome have a built-in full-page JPG export?
The researched JPG workflow uses a third-party extension. Do not assume Chrome’s native tools export a full-page JPG.
Why is my full-page image cut off?
Check that full-page mode is enabled and that the page has finished loading. Dynamic and infinite-scroll pages may need waits, scrolling, or element capture.
Should I use JPG or PNG for text-heavy documentation?
PNG usually preserves small text more cleanly. Choose JPG when smaller files or photographic content matter more than lossless edges.
Can I capture only the article instead of the entire site?
Yes. Firefox Developer Tools supports selector capture, and ScreenshotNeo can capture one element by CSS selector.


