Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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

  1. Open the page and wait until the content you need is visible.
  2. Choose Save Page As (usually from the browser’s File menu or the page context menu).
  3. Select a complete-page option when offered, rather than HTML-only, if you need linked images, stylesheets, and scripts.
  4. 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
Western Digital 8TB My Book Desktop External Hard Drive, USB 3.0, External HDD with Password Protection and Backup Software - WDBBGB0080HBK-NESN
  • 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

  1. Open developer tools (for example, F12 or Ctrl+Shift+I on Windows/Linux; Cmd+Option+I on macOS).
  2. In Elements or Sources, identify the document, linked stylesheets, scripts, fonts, and images.
  3. In Network, reload the page and filter by Doc, CSS, JS, Img, or Fetch/XHR.
  4. 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.

  1. Set a dedicated destination directory; do not point a mirror at a folder containing unrelated files.
  2. Enter the final starting URL, including the correct HTTPS scheme and host.
  3. Keep the default scope initially and start the mirror.
  4. 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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/
  • --recursive follows links.
  • --level=2 limits traversal depth; remove or change it only after deciding how much of the site you need.
  • --convert-links changes downloaded links so local files can open one another offline.
  • --page-requisites asks Wget to fetch resources needed to display retrieved pages, such as CSS and images.
  • --no-parent prevents 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Transcend 2TB StoreJet 25M3 Rugged Portable HDD, One Touch Backup
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • 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-parent excluded 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 as href, src, and CSS url(), 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Caraele 750GB Ultra Slim Portable External Hard Drive USB3.0 HDD Storage Compatible for PC, Desktop, Laptop, MacBook, Chromebook, Xbox One, Xbox 360, PS4 (Black)
  • 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
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

SaleBestseller No. 1
Western Digital 8TB My Book Desktop External Hard Drive, USB 3.0, External HDD with Password Protection and Backup Software - WDBBGB0080HBK-NESN
Western Digital 8TB My Book Desktop External Hard Drive, USB 3.0, External HDD with Password Protection and Backup Software - WDBBGB0080HBK-NESN
256-bit AES hardware encryption; SuperSpeed USB (5 Gbps); USB 2.0 compatible; Trusted storage built with WD reliability
$329.99
Bestseller No. 2
Transcend 2TB StoreJet 25M3 Rugged Portable HDD, One Touch Backup
Transcend 2TB StoreJet 25M3 Rugged Portable HDD, One Touch Backup
USB 3.1 Gen 1 interface; Up to 2TB storage capacity; Three-stage shock protection system; One-touch auto backup button
$140.99

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.