ScreenshotNeo

BlogHow-to

How to Save a Full Webpage as a Single File with Save Page WE

Save a webpage and its resources as one HTML file with Save Page WE. Configure content options, handle lazy loading, and troubleshoot offline gaps.

By the ScreenshotNeo team4 October 20268 min read

To save a webpage as one local file with Save Page WE, open the page in Firefox or Chrome, wait for the content you need to appear, then use the Save Page WE toolbar button or its page context menu. The extension saves the page as currently displayed and embeds many page resources into a single .html file you can reopen in a browser. For delayed or lazy-loaded content, configure the extension to wait or load that content before saving.

1. Save the current page

  1. Install Save Page WE from the official Mozilla Add-ons listing or Chrome Web Store listing.
  2. Open the webpage you want to preserve. Wait until the important text, images, and other visible content have loaded. Save Page WE captures the page as currently displayed; it cannot preserve content that has not appeared yet.
  3. Click the Save Page WE toolbar button, or right-click the page and choose the Save Page WE item from the context menu. The extension can save the selected tab or selected tabs.
  4. Alternatively, use the documented Alt+A shortcut. You can change shortcuts in the extension options if that key is already used by your browser or another extension.
  5. Choose a download location if your browser asks, then open the downloaded .html file in a browser and inspect the parts you need.

The extension also documents saving a list of URLs through its options. That is useful for a set of known pages, while the toolbar and context-menu actions are the direct workflow for the page you are viewing.

2. Choose which page content to include

Open Save Page WE’s options and choose a saved-items level. The names describe which resource types the extension attempts to include; they do not guarantee that every remote resource or browser behavior will work offline.

Level What it includes Use it when
Basic HTML elements, currently displayed HTML images, canvas graphics, stylesheets, currently displayed CSS images, and CSS fonts used by the browser. You want the visible page essentials and a smaller capture.
Standard Basic items plus all HTML images, HTML audio and video, object/embed content, and WOFF fonts for any browser. You want broader media and image coverage.
Custom Basic items plus the additional resource types you select. Options include all CSS images, broader font inclusion, and scripts in same-origin frames. You need to choose resource types for a particular page.

Custom settings can also affect lazy-content handling, cross-origin frames, whether elements are removed or rehiden, source formatting, filename rules, and resource-loading limits. Review those settings when a capture is missing content or produces a file larger than expected. Scripts in cross-origin frames are never saved.

3. Handle delayed and lazy-loaded content

Some pages populate results after the initial page load, and some only fetch images or other content when you scroll. Since Save Page WE captures the page as displayed, first make the desired content appear.

  1. For results that arrive after a delay, enable a save delay in the extension options and choose enough time for the page to populate.
  2. For lazy-loaded page content, enable the option to load lazy content by scrolling or shrinking the page.
  3. For lazy images already present in the page, enable the option to load lazy images in existing content.
  4. Return to the page, let the content load, and save again. Check the saved file rather than assuming that a completed download means every item was captured.

A long delay can make capture slower and still cannot guarantee that a site will expose all content. Pages that require interaction, authentication, or a working connection for later actions may not become fully self-contained.

4. What the single HTML file contains

Save Page WE stores saved HTML elements and referenced resources in one .html file. Its documentation describes converting external stylesheets into internal CSS, representing frame contents and external scripts as UTF-8 data URIs or iframe srcdoc, and embedding binary resources such as images, fonts, audio, and video as Base64 data URIs.

This packaging makes a single download convenient, but it does not make every page a perfect offline replica. Some cross-origin frames cannot be saved: a frame is included only if all its cross-origin ancestor frames can run content scripts. Cross-origin frame scripts are not saved. Unavailable resources and site behavior that depends on a live server can also leave gaps.

Save Page WE can show a list of unsaved resources. If you want the local file not to try fetching missing resources from the internet when reopened, enable the option to remove their URLs. That avoids a confusing network fallback, but the missing item remains missing.

5. Set filenames and save multiple pages

Filename options support fields such as %TITLE%, save date or time, host, path, and URL query values. You can select a separator for spaces and set a maximum filename length. Check the resulting filenames when saving pages with long titles or query-heavy URLs.

For multiple pages, select multiple tabs or use the options dialog to load a list of URLs. Automation mode is documented for Firefox: it starts a configured save action when Firefox starts and closes Firefox after the save completes. Treat that as the extension’s Firefox automation workflow, not as a general browser automation interface.

6. Troubleshooting

Problem Likely cause What to try
Text, results, or images are missing The page had not displayed them when saved, or they load lazily. Wait for the content, enable a save delay, and turn on the relevant lazy-content options. Save again and inspect the file.
A frame is blank or incomplete offline It may be cross-origin and unable to run the required content script through its ancestor frames. Check the page online and the unsaved-resource list. Cross-origin frame scripts are not saved, so some frame behavior cannot be preserved.
Some images, fonts, or media do not appear The resource may have failed to load, may not be included at the selected saved-items level, or may be unavailable to the extension. Try Standard or select the resource type in Custom. Check the unsaved-resource list; removing missing URLs prevents online fallback but does not restore those resources.
The file is large or takes a long time to save Embedding images, video, audio, fonts, or other resources increases file size and work. Use Basic if it covers your needs, or choose only the required types in Custom. Save after the page has reached a stable state.
Chrome does not remember the last save location, or saving fails on a page The Chrome listing describes differences between its old and new save methods: the new method can save all pages but does not remember the location; the old method remembers it but can fail on some pages. Try the other save method in the extension settings and follow the Chrome listing’s guidance for the installed version.
The downloaded filename becomes a UUID in Chrome The Chrome listing says other download extensions may rename files when Save Page WE uses the new method. Try reinstalling Save Page WE or reverting to the old method, as the listing suggests.
Firefox opens the HTML file instead of prompting, or handles it differently than expected Firefox’s download handling preferences determine the action for Firefox HTML Documents. Review Firefox General settings, the Firefox HTML Document application action, and download preferences.
You want to convert an existing local MHT or MAFF file Save Page WE cannot directly read local files because Firefox WebExtensions add-ons cannot access them that way. Use the advanced workaround described in the Mozilla listing involving Firefox’s Save Page As and a local web server.

7. Platform and version details

The Firefox and Chrome store listings have separate release histories and save-method notes. The Mozilla Add-ons listing identifies version 28.11, last updated 31 March 2023; the Chrome Web Store listing identifies version 33.9, updated 5 September 2023. Check the listing for your browser for current details rather than assuming one version applies to both.

8. Alternatives and when to use a screenshot

SingleFile is another extension described by its Chrome Web Store listing as saving a complete page, including CSS, images, fonts, and frames, as one HTML file. Its listing also describes options for selected content or frames, multiple tabs, annotations, and cloud destinations. Those are feature descriptions, not evidence from a comparative test that one extension is more reliable or produces a more faithful archive.

A single HTML archive is useful when you want to reopen page content. If you need a visual record in an image or PDF, use a screenshot or PDF capture instead; it preserves a rendered appearance rather than a navigable HTML document.

9. Or skip the browser setup

For a rendered image or PDF, ScreenshotNeo is a website screenshot API and MCP server. One GET request can return a PNG, JPEG, WebP, or PDF. It is not an HTML archive: use Save Page WE when you need a local page file to reopen, and ScreenshotNeo when you need a captured image or PDF.

Here is a runnable cURL example:

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}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', new Uint8Array(await res.arrayBuffer()));

See the ScreenshotNeo API documentation for request options. Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000.

Sign up for ScreenshotNeo and get 1,000 free screenshots a month with no card.

10. FAQ

Can I open the saved file in a different browser?

Save Page WE describes the output as a single HTML file that can be opened in any browser. Some embedded or remote page behavior may still differ or be unavailable offline.

The file preserves saved page content and resources, but it is not a guarantee that server-backed links, forms, scripts, or embedded services will behave as they did on the live site.

Can I save a page I already downloaded as MHT or MAFF?

Not directly with the extension’s normal local-file workflow. See the advanced workaround in the Mozilla listing if you need to process an existing local archive.