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
Save, inspect and open in three steps
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.
Understand rewritten links and local asset paths
The static export rewrites supported references to captured pages and downloaded assets so they can point at files inside the archive. Keep HTML, CSS, images and fonts together in the exported folder structure: moving only one HTML file can break its relative references. The route manifest helps connect saved source pages with their exported paths. Do not expect every original URL to become a simple file with the same name; route aliases and helper files can also be part of the output.
Rewriting cannot make an uncaptured destination available. Links beyond scope, external sites and missing resources may still require the network. Script-generated URLs, embedded media and service calls are not guaranteed to become local references. Review navigation and CSS asset loading as well as the main text, and use the report to investigate failures. A relative link is useful only if its destination really exists in the ZIP; a plausible-looking path is not proof that the page or resource was delivered.
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
Extract the entire ZIP and locate the entry HTML using the manifest or saved-page list. Try opening it locally; if file or routing restrictions interfere, use a trusted local static server. Inspect scripts first and test with the network disconnected. The in-app sandboxed preview is not the same as running downloaded files.
Capturing
Use JS-rendered mode when useful public content appears only after browser rendering. It saves the observed DOM as static HTML with page scripts removed and no API replay. HTTP is suitable when the content is already present in the server-delivered HTML. Neither mode preserves a working backend or every application state.
No. Supported references to saved pages and downloaded assets are rewritten for the static archive, but missing, external or out-of-scope destinations may still need the network. Keep the exported folder structure intact and check the report and actual files to verify coverage.
Billing & plans
Yes. Free captures 1 page at depth 0, with 2 downloads per UTC calendar month. Paid accounts can also choose a single-page scope in the advanced workspace. A wider site capture follows reachable links within the effective page and depth budgets; it does not guarantee every URL on the domain.
Privacy & permissions
It depends on your rights and intended use. You can archive your own site or a client's site with authorization. A public page is not automatically free to copy or republish; personal backups must still comply with terms, copyright and applicable law. A capture grants no new rights. See the permissions page linked in the hero and footer for guidance and rights-concern reporting; this is not legal advice.