Save website as HTML for offline reading

Turn a public page or a reachable set of pages into files you can inspect and keep. Choose HTTP for server-delivered content or JS-rendered mode for a static snapshot of browser-rendered content. Download the ZIP with its available assets, preserve the folder layout and test what actually works without the original website.

Save a page as HTML

Download reachable HTML and assets within your plan’s page and depth limits.

Start free — 2 copies a month

Copy only sites you own or have permission to archive. See permissions.

A file archive, not a screenshot or running app

  • Readable HTML and assets

    The result is a static ZIP containing captured HTML and available resources, rather than only an image of the page. Text can remain selectable and the files can be inspected or edited. Actual fidelity depends on the source and capture result; missing styles, fonts or images can change how the saved document appears.

  • A page or a linked scope

    A single-page capture keeps the entry page without following navigation. A broader capture follows reachable links within the allowed page and depth budgets. Assets such as stylesheets and images are distinct from navigation pages. An archive is not automatically the entire domain, and external or unvisited destinations may remain online links.

  • Static content, explicit limits

    A saved DOM is not a portable SPA. JS-rendered exports remove page scripts, while forms, accounts and live API features need their original or replacement services. HTTP archives can retain scripts, but that does not make their dependencies available offline. Inspect downloaded code separately from the restricted in-app preview.

Save, inspect and open in three steps

  1. Choose a URL and mode

    Paste a public page URL into the tool above. Start with HTTP when the useful content arrives in the initial HTML, or select JS-rendered for browser-built content. Sign in when prompted. Use the advanced workspace if you need to set page and depth limits explicitly.

  2. Check the delivered files

    Inspect the saved-page list and capture report before downloading an eligible ZIP. Look for missing assets, skipped pages and budget limits. Verify the content you intended to save instead of judging only the first preview or assuming that a successful entry page means every linked page is included.

  3. Extract and test offline

    Extract all files into one folder and leave their relative paths intact. Locate the entry HTML using the manifest or saved routes, then test it and several linked pages. Check again with the network disconnected so cached or online resources do not hide gaps in your archive.

Decide between one page and a site scope

Before you save website as HTML, decide what you need to read later. A single article, a product reference or an announcement may need only one page and its resources. A documentation section may need navigation across several pages. Depth describes how far the capture follows links from its starting point; it is not a count of folders in the URL. A page limit and a depth limit both constrain coverage, so neither number alone promises a complete site.

Start from a useful entry URL and compare the resulting saved-page list with your intended reading list. Pages that are not linked, live on another host or require an interaction may not be discovered. The inline tool uses effective account defaults; the workspace offers explicit page, depth and path controls for a more deliberate scope. If you only need one page on a paid account, set that scope there rather than assuming a higher allowance will automatically choose the smallest possible job.

Use HTTP for server-delivered HTML

HTTP mode requests the source documents and available referenced assets without rendering them in a browser. It suits pages whose initial server response already includes the text you want to keep. Stylesheets, images and fonts can be collected along with that HTML, subject to reachability and resource budgets. Resource discovery can inspect JavaScript or JSON references, but it does not execute the application or provide an offline API. A script file in the ZIP is not evidence that the script's data was saved.

If an HTTP result contains a navigation frame but little useful content, compare the source behavior before retrying. The page may depend on client rendering, a login or data that is unavailable to this workflow. Choose JS-rendered mode for public client-rendered content when appropriate, not as a way around access restrictions. HTTP archives may retain active scripts and links to remote services, so review downloaded files before running them locally or putting them on a host you control.

Use JS-rendered mode for an observed static DOM

JS-rendered mode opens the public page in a browser, waits briefly and scrolls before saving the observed DOM with available assets. This can capture content that was absent from the original HTML response. The result is then static: page scripts are removed and dynamic APIs are not replayed. It is not an export of the application's source project, client router or every state a visitor could reach. A working live page can therefore become a readable document without retaining its controls.

Content behind a consent dialog, a click, a login or a slow request can still be missing. The tool does not expose a custom interaction recorder or accept login cookies to unlock those states. Linked pages can be followed within the same page and depth budgets, but discovery is not a guarantee of full application coverage. Check a page with representative content before widening the scope, and plan to remove or rebuild controls whose behavior depended on scripts in the source application.

Open the extracted archive without relying on the source

After extracting the whole ZIP, find the entry document from the manifest or saved-page list. Opening that HTML directly in a browser may work for straightforward static content. If local file restrictions or route resolution interfere, serve the extracted folder with a trusted local static server bound only to your own machine. This is a separate testing setup you provide, not a service included with the download. Do not disable browser security features to make an unfamiliar archive appear to work.

Inspect HTTP scripts before opening the files and use an isolated browser profile or environment for untrusted material. Test with the network disconnected and without relying on an already populated cache. Navigate to several pages, reload a nested route and check images and fonts at different screen widths. Search boxes, forms, account buttons and embedded players may not function offline. Replace them if you intend to publish the files, or document their limitations if the archive is only for private reference.

Diagnose missing content and keep a durable archive

Read report.json for missing, failed and skipped resources, and check whether the result reached a page, size or time limit. Issue lists are bounded and show truncation when applicable. Compare the report with actual saved files instead of treating a progress counter as a file inventory. A partial capture offers a ZIP only when delivery policy permits it; failed and cancelled captures do not. If important content is absent, reassess the mode and scope rather than assuming a second identical attempt will fix it.

Keep the original ZIP, report, source URL and date together so you can understand the snapshot later. Save important downloads within the 30-day retention window and make your own long-term storage arrangements. The file archive can support offline reading or a later move to static hosting, but it is not a backup of databases or server files. Recheck the extracted result whenever you change paths or edit assets; an archive that opened correctly before an edit may no longer have working local references afterward.

Choose a scope that fits your plan

Free: $0 — 2 copies/month, 1 page each, depth 0. PRO: $19.90/month or $99/year — 50 copies/month, up to 200 pages, depth 5. Unlimited: $29.90/month or $149/year — no plan copy, page or depth cap; safety caps apply. All prices are in USD.

Free gives you real files, not just a preview. Monthly quotas reset each UTC calendar month, including on yearly plans.

Unlimited means no plan quota for copies, pages or depth, not an unlimited job. Default safety limits are 1000 pages, depth 20, 200 MiB and up to 24 hours per capture, with 1 active job per account. Server limits may be lower; the capture form shows your effective limits.

Download access is available for 30 days after completion, subject to the delivery result. Download important files promptly. Missing resources and partial captures are reported, not hidden.

Frequently asked questions.

General

Capturing

Billing & plans

Privacy & permissions

Found a site to archive? Paste the URL.

Start with Free: 2 copies per month, 1 page each. No card required.

View pricing