Short answer: use your browser’s Save Page or developer tools when you need one page, and use a recursive copier such as HTTrack or GNU Wget when you need a browsable offline copy of several pages. A mirror can preserve linked HTML, CSS, images, and scripts, but it is not guaranteed to reproduce a JavaScript application or content that requires a live server.
Choose the right kind of download
“Download a website” can mean two different jobs:
- Capture one page: save the rendered page and its immediately referenced resources for offline reading or inspection.
- Mirror a site: crawl links, retrieve multiple documents and assets, and rewrite links so the local tree can be browsed offline.
HTTrack describes the second job this way: “HTTrack copies a website to your disk, rewriting its links so the local copy browses like the original.” Its official documentation covers Windows and Linux/Unix interfaces, an Android app, and a command-line program. GNU Wget also supports recursive retrieval and link conversion in its 1.25.0 manual.
| Need | Best starting method | What you receive |
|---|---|---|
| Read one page offline | Browser Save Page | A local HTML file plus a browser-created resource folder, depending on the save mode |
| Inspect individual requests | Developer tools | Separate HTML, CSS, JavaScript, image, and API responses; not automatically a browsable package |
| Copy linked pages on one site | HTTrack | A directory with downloaded files and rewritten local links |
| Automate a controlled crawl | GNU Wget | Files retrieved recursively, with options for scope and offline link conversion |
Save a single page in a browser
Use the built-in Save Page command
- Open the page and wait until the content you need is visible.
- Choose Save Page As (usually from the browser’s File menu or the page context menu).
- Select a complete-page option when offered, rather than HTML-only, if you need linked images, stylesheets, and scripts.
- Open the saved HTML file locally and check navigation, styling, images, and interactive controls.
Browser saving captures what the browser knows about that document at save time. It does not turn server-side code, databases, authentication, or API responses into a standalone application. A page that fills itself with JavaScript after load can save with an incomplete DOM or with references that still require the original server.
#1 Best Overall
- Massive capacity, up to 22TB capacity. (1TB = one trillion bytes. Actual user capacity may be less depending on operating environment.).Specific uses: Personal
- Includes software for device management and backup with password protection (Download and installation required. Terms and conditions apply. User account registration may be required.)
- 256-bit AES hardware encryption
- SuperSpeed USB (5 Gbps); USB 2.0 compatible
- Trusted storage built with WD reliability
Inspect and save separate resources with developer tools
- Open developer tools (for example, F12 or Ctrl+Shift+I on Windows/Linux; Cmd+Option+I on macOS).
- In Elements or Sources, identify the document, linked stylesheets, scripts, fonts, and images.
- In Network, reload the page and filter by Doc, CSS, JS, Img, or Fetch/XHR.
- Open a request and use the browser’s save or “open in new tab” action to retain that response.
This approach is useful for debugging a particular file or request. It is not a crawler: seeing a resource in developer tools does not package every page, rewrite links, or discover URLs that were never requested.
Mirror a site with HTTrack
Install and create a project
Install HTTrack from the project’s official site, https://www.httrack.com/html/. The graphical workflow asks for a project name, a destination directory, one or more starting URLs, and an action such as mirroring or updating an existing mirror.
- Set a dedicated destination directory; do not point a mirror at a folder containing unrelated files.
- Enter the final starting URL, including the correct HTTPS scheme and host.
- Keep the default scope initially and start the mirror.
- Open the generated local index file and test several internal links.
HTTrack can resume interrupted downloads and update an existing project. An update may remove files no longer included in the mirror, so preserve a backup when the old local tree matters.
Use the command line
The documented same-host example is:
httrack https://example.com/ --path mydir
For a depth-limited crawl, the guide shows:
httrack https://example.com/ --depth=2 --path mydir
The start page counts as depth one. Depth two therefore includes links found on the start page, but not an unlimited traversal of every discovered page. Start conservatively, inspect the result, and increase depth only when necessary.
Free tools Windows power users keep installed
One-click scans. No signup required.
HTTrack’s command-line guide documents filters, sitemap support, external-resource controls, robots.txt handling, and rate and connection controls: https://www.httrack.com/html/cmdguide.html. Use those controls to keep the crawl inside the intended site and to avoid unnecessary server load.
Build an offline mirror with GNU Wget
GNU Wget is a non-interactive downloader. Its official overview and manual document recursive retrieval and conversion of links for offline viewing. A typical starting command is:
wget --recursive --level=2 --convert-links --page-requisites --no-parent https://example.com/
--recursivefollows links.--level=2limits traversal depth; remove or change it only after deciding how much of the site you need.--convert-linkschanges downloaded links so local files can open one another offline.--page-requisitesasks Wget to fetch resources needed to display retrieved pages, such as CSS and images.--no-parentprevents climbing above the starting path.
Option names and interactions vary by Wget version and target site, so consult the manual before adding authentication, host-spanning, or rate-related options. Wget respects robots.txt; do not copy commands that disable that protection merely to force a result.
Control scope, hosts, and crawl depth
Redirects can change the host
A URL may redirect from HTTP to HTTPS, from an apex domain to www, or to another host entirely. HTTrack’s default same-host scope can then stop after the first response, making it look as if only the home page downloaded. Start with the final URL, or explicitly allow the destination host when you have permission and actually need its resources.
Recommended Free Tools
Rank #2
- USB 3.1 Gen 1 interface
- Up to 2TB storage capacity
- Three-stage shock protection system
- One-touch auto backup button
- Offers Transcend Elite data management software and RecoveRx data recovery software
External assets are a separate decision
Stylesheets, fonts, images, analytics, video, and scripts often live on content-delivery or third-party domains. A same-host mirror may omit them. Broadening host filters can improve visual fidelity but can also fetch a much larger and less predictable set of files. Define an allow-list where your tool supports one, and review the output before distributing it.
Use a sitemap for unlinked pages
Link-following discovers URLs present in fetched HTML and CSS. Pages that are not linked cannot be found by ordinary crawling. HTTrack’s guide documents sitemap support; supply a sitemap or another permitted URL source when the site owner provides one.
Respect robots.txt and service limits
Both documented tools provide robots.txt-aware behavior. Keep conservative connection and rate settings, identify your purpose where appropriate, and stop if the server refuses requests. A 403 response is an access refusal, not a reason to evade controls.
Why JavaScript-heavy sites do not copy cleanly
HTTrack parses HTML and CSS but does not execute JavaScript. Consequently, it can miss URLs assembled only at runtime, client-side routes, lazy-loaded resources, and data returned by API calls after the initial document. A mirror may contain an app shell while showing no records, or it may contain the initial HTML but not the state you saw after clicking controls.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →- If the required content is present in the server-delivered HTML, a crawler can usually discover it.
- If a button creates a URL only after a click, add that URL through a supported source such as a sitemap or a manually supplied start URL.
- If content requires login, a live API, a token, or a database, a static mirror cannot reproduce that service without separately exporting and adapting the data.
For a faithful snapshot of a rendered state, use a browser-automation workflow that you control and have permission to run. Do not assume that any downloader can clone an application’s behavior.
Diagnose an incomplete download
Only the start page appears
- Check the final URL after redirects and compare its host with the crawl scope.
- Confirm that the page contains ordinary links; JavaScript-only navigation will not be discovered by HTTrack.
- Check whether filters, depth, or
--no-parentexcluded the target path.
Styles, scripts, or images are missing
- Inspect the original page’s network requests for another asset host.
- Review external-host permissions and include only domains you are authorized to retrieve.
- Check whether CSS references assets through
url(); Wget documents parsing HTML and CSS references such ashref,src, and CSSurl(), but server rules can still block a request.
JavaScript content is blank
Determine whether the data arrives through Fetch/XHR after load. A static crawler does not execute that JavaScript or recreate the API session. Save the server-rendered equivalent, provide explicitly permitted URLs, or use an appropriate browser-based capture instead.
A request returns 403 or another refusal
Verify the URL, authorization, and site policy. Do not bypass access controls, robots rules, CAPTCHAs, or bot defenses. An incomplete but permitted copy is preferable to an unauthorized one.
An update changed or removed local files
HTTrack’s update behavior can remove files no longer included by the current mirror. Keep dated copies or a version-control snapshot when you need to compare revisions.
Rank #3
- Ultra Slim and Sturdy Metal Design: Merely 0.47 inch thick. ABS Plastic+Aluminum external hard drive,with aluminum finish-style.shockproof, anti-pressure, ultra slim and portable
- Ultra-fast Data Transfers: USB 3.0 Super speed 10Gbps transfer rate ultra slim and light weight Portable external hard drive.Runs straight from a usb 3.0 or usb 2.0 port no external power source needed
- System Compatible: Compatible with Windows, Vista, Mac, Linux, Android, Chromebook, and TV, PC, Laptop, PS4, Xbox series consoles and so on
- Plug and Play: With no software to install, just plug it in and the drive is ready to use.Ideal extra storage for your computer and game console
- Package Contents: 1 x portable hard drive, 1 x USB 3.0 cable, 1 x USB to type C adapter, Gift-type shell packaging, shell packaging, three-year manufacturer's warranty and free technical support services
Or skip the browser setup
If your actual goal is a clean visual snapshot rather than downloadable source files, ScreenshotNeo provides a website screenshot API and MCP server. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be disabled. Only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. It is not a replacement for downloading HTML, CSS, and JavaScript—the response is an image or PDF—but it avoids browser setup for visual deliverables.
One request is enough:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo documentation for all options, including full-page lazy-image loading, CSS-selector element capture, dark mode, 12 device presets and custom viewports, retina scale, PDF paper and page settings, custom CSS and JavaScript, clicks, waits, request blocking, headers, cookies, user agent, authorization, timezone, geolocation, transparent backgrounds, resizing, chosen-TTL caching, signed image links, asynchronous webhooks, bulk capture of up to 100 URLs per call, usage data, and the OpenAPI specification. An MCP server exposes take_screenshot, get_page_info, and capture_pdf to Claude, Cursor, and other MCP clients.
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}`);
The Free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; yearly billing provides two months free, and every feature is on every plan. Create a free ScreenshotNeo account.
Responsible-use checklist
- Copy only sites and resources you own or are authorized to retrieve.
- Read the target’s terms, robots.txt, and access requirements.
- Use a dedicated output directory and conservative depth, rate, and connection settings.
- Remove credentials, private data, and third-party tracking files before sharing a mirror.
- Label the result as a snapshot with its capture date; a mirror is not automatically an authoritative or legally complete copy.
Which method should you use?
Choose browser saving for one readable page, developer tools for individual request inspection, HTTrack for a guided or resumable site mirror, and Wget for scripted recursive retrieval with explicit command-line controls. Treat JavaScript-only routes, cross-host assets, redirects, robots rules, and server refusals as boundaries to investigate—not problems to defeat.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Frequently Asked Questions
Does downloading a website give me its server-side code?
No. These methods retrieve files and responses exposed to a browser. Server-side source, databases, private APIs, and application secrets remain on the server.
Can I open a downloaded mirror without internet access?
Often, yes, when links and required assets were downloaded and converted to local paths. Features that call a live API, require login, or depend on server-side processing will not work offline.
Why is a JavaScript single-page app missing from my mirror?
A static crawler may see only the app shell because routes and data are created after JavaScript runs. Add permitted URLs explicitly or use a browser-based capture for a rendered state.
Is copying any public website automatically legal?
The legal position depends on the site, your intended reuse, and the jurisdiction. Check permission, terms, copyright, robots guidance, and access controls before copying or redistributing content.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallQuick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

