How to save a complete web page with SingleFile in Chrome
Save a webpage as one HTML file with SingleFile in Chrome. Learn the steps, capture options, offline limits, and fixes for common problems.
To save a complete web page in Chrome as one HTML file, install the SingleFile extension, open the page, let it finish loading, then click the SingleFile button in the toolbar. The extension packages page resources such as CSS, images, fonts, and frames into a single file and saves it to Chrome’s configured download folder.
That file is useful for offline reading and reference, but “complete” does not mean it will behave exactly like the live website. Scripts are blocked by default, and some dynamic features or restricted resources may not be preserved or work offline.
Save a page as one HTML file
- Install SingleFile from the Chrome Web Store.
- Open the webpage you want to keep. Wait for its text, images, and other visible content to finish loading. If the page loads content as you scroll, scroll through the sections you need before capture.
- Click the SingleFile icon in Chrome’s extension toolbar. If you do not see it, open the Extensions menu and pin SingleFile to the toolbar.
- Wait while the extension processes the page. It saves a single HTML file to Chrome’s configured download destination by default. Check Chrome’s downloads list if you need to locate the file.
- Open the downloaded HTML file from your downloads folder to confirm that the parts you need are present.
If a capture is still processing, clicking the SingleFile button again cancels it. For repeated captures, the extension also documents a customizable Ctrl+Shift+Y shortcut for the current or selected tabs; assign or confirm the shortcut in Chrome’s extension shortcut settings.
Choose what to capture
SingleFile’s context menu provides alternatives to saving the entire current tab. Right-click the page or extension button and choose the capture action that matches the material you want to preserve. Depending on the selection and context, options include:
- Current tab: Save the page you are viewing.
- Selected content: Save the part of the page you selected.
- Selected frame: Capture a frame embedded in the page.
- Selected links: Save pages reached through links you selected.
- Multiple tabs: Capture more than one open tab.
- Annotate and save the page: Highlight text, add notes, and remove content before saving.
To adjust how captures are made, right-click the SingleFile toolbar button, choose Manage extension, then open the extension’s options. The names and placement of options can change between releases, so consult the extension’s current settings and FAQ for the exact control you need.
What “complete” means offline
SingleFile embeds page resources into one HTML file, including CSS, images, fonts, and frames. This avoids keeping a separate folder of page resources alongside the saved HTML, but it is still a snapshot of a page at capture time—not a guaranteed working copy of the original site.
- Interactive behavior can be missing: Scripts are blocked by default because they can change rendering and are not guaranteed to work offline. Folding titles, dynamic maps, carousels, and similar features may not behave as they do online.
- Late-loading content may be absent: If the page has not loaded an image or other resource by capture time, the saved file may not include it. Wait for loading to finish and scroll through lazy-loaded sections before capture.
- Some resources may be inaccessible: Browser restrictions, site behavior, or resource download requirements can prevent the extension from obtaining every asset.
- Saved content can differ from the live site: A page may depend on a server, account, current data, or online scripts. Embedding its resources does not preserve those services.
The SingleFile FAQ describes settings for retaining scripts and raw page content, but enabling them does not guarantee that scripts will work offline. Change these settings only when you have a reason to keep that content and understand that the saved page may behave differently.
Privacy and optional uploads
Under the normal save-to-downloads workflow, processing happens in the browser and the page is not uploaded to a third-party server. SingleFile can also upload saved files to destinations such as Google Drive, Dropbox, GitHub, or WebDAV if you enable a destination in its options. That upload is optional and separate from saving to Chrome’s download folder.
For image downloads, SingleFile leaves the Referer header setting off by default for privacy reasons. Some sites require a Referer header to serve images, so those images may be missing unless you change the relevant setting. Use care when enabling it because the setting changes what information may be sent with resource requests.
Common problems and fixes
| Problem | Likely cause | What to do |
|---|---|---|
| The toolbar button does not appear | The extension may be hidden in Chrome’s Extensions menu or not installed. | Open the Extensions menu, pin SingleFile, and check that it is enabled. |
| The saved page is missing images | Images may not have loaded yet, the site may require a Referer header, or the browser may restrict access to the resource. | Wait for images to load and scroll through lazy-loaded content before capture. If the site requires it, review SingleFile’s Referer setting with the privacy implications in mind. |
| A map, carousel, menu, or other control does not work offline | It depends on scripts, live data, or an online service. Scripts are blocked by default. | Treat the file as a reading snapshot. You can review the options for retaining scripts, but this cannot guarantee offline functionality. |
| A local HTML file cannot be processed or its infobar does not appear | Chrome restricts extension access to local file pages by default. | If you need this capability, open the extension’s settings and enable Allow access to file URLs. |
| A page or frame cannot be captured | The browser may block extension access on that domain or frame. | Try capturing the page or frame through the available context-menu action. If access remains blocked, the browser restriction may prevent the extension from processing it. |
| The file is incomplete even though the page looked loaded | Some content may load only after scrolling, interaction, or a delay. | Trigger the content you need, wait for it to appear, then capture again. Verify important sections in the saved file. |
| The capture seems stuck | A large or complex page may take time to process. | Wait for processing to finish. If you need to stop it, click the SingleFile button again to cancel, then try a less extensive capture such as selected content. |
Performance, reliability, and file management
Capture time and file size depend on how much content and how many resources the page contains. A long page with many images, fonts, or frames has more material to process than a short text page. For a smaller archive, capture selected content when a whole-page copy is unnecessary, and avoid keeping multiple full-page copies when one is enough.
- Wait for the target content to appear before starting the capture.
- For pages with lazy-loaded sections, scroll through the areas you want preserved and allow their resources to load.
- Open the output file and check the sections that matter; do not assume that a successful save means every interactive feature is functional offline.
- Use a clear filename and organize saved pages in folders so they are easy to find later.
- If you choose a cloud destination, enable it deliberately in the extension options and check that the resulting file reached the destination.
SingleFile’s ordinary local workflow does not require a paid capture service. The practical costs are the time needed to capture and verify pages and the storage needed for the resulting files. A cloud destination is optional; its storage terms depend on the provider and account you choose.
Or skip the browser setup
If your goal is a screenshot for a bug report, visual record, or automated workflow rather than an offline HTML archive, ScreenshotNeo captures a URL through one API request. This produces an image or PDF, not a self-contained HTML file. See the ScreenshotNeo API documentation for the available options.
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}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);
With ScreenshotNeo, 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, and 1,000 screenshots a month are free with no card; paid plans start at $5 for 3,000. Sign up for free and get 1,000 screenshots a month with no card.
FAQ
How do I save a webpage as one file in Chrome?
Use SingleFile: open the page, wait for it to load, and click the extension button. It saves a single HTML file to Chrome’s configured download folder.
Will the saved page look exactly like the live website?
Not always. The page’s embedded resources can be preserved, but scripts, live data, and restricted assets may not work or appear the same offline.
Does SingleFile upload my page when I save it?
Normal processing takes place in the browser. Uploading to a cloud service is optional and must be enabled in the extension’s options.
Can I capture several pages at once?
SingleFile’s context menu includes an option to capture multiple tabs. It also documents a customizable keyboard shortcut for the current or selected tabs.
Can I save a page as an image instead of HTML?
SingleFile’s purpose is to save a page as HTML. For a screenshot image or PDF from a URL, ScreenshotNeo offers an API and MCP server; its output is not an offline HTML archive.


