HTTrack alternatives

HTTrack still mirrors traditional sites well and cannot see JavaScript-built pages at all. The alternatives, by what you are actually mirroring.

HTTrack has been the answer to "download a website" since the late nineties, and for a server-rendered site it is still a reasonable one: free, rules-driven, resumable, with a Windows GUI. People come looking for alternatives for three reasons.

The three reasons HTTrack disappoints

  1. The modern web is rendered in the browser. HTTrack fetches what the server sends. On a React, Vue, Svelte or Astro site that is a shell with a script tag, so the mirror is empty pages. This is not a configuration problem; it is the model.
  2. No maintained macOS build. The official GUI is Windows; on macOS you are compiling or using Homebrew, and most people would rather not.
  3. A mirror is not what they wanted. Many people searching for this want one page that looks right, or a design they can edit — not a folder tree of rewritten links.

Alternatives by job

Mirroring a traditional site → wget --mirror

Already installed on macOS and Linux, scriptable, same fetch model, better documented failure modes:

wget --mirror --page-requisites --convert-links --adjust-extension \
     --span-hosts --domains=example.com,cdn.example.com \
     --level=3 --wait=1 --reject-regex='(\?|/cart|/search)' \
     https://example.com/

--convert-links is the flag people forget, and without it the mirror is a set of links to the internet. Even with it, expect leftovers — across eight single pages in our benchmark, wget left 554 requests aimed at the origin, averaging 87.40% fidelity offline.

Mirroring, but with a GUI

  • Cyotek WebCopy — free, Windows, friendly rules and a link map.
  • SiteSucker — paid, macOS-native, the usual recommendation for Mac users who want HTTrack's job done properly.
  • Offline Explorer — paid, Windows, the most configurable of the lot.

All three share HTTrack's blind spot on client-rendered pages.

A site built with JavaScript → crawl in a browser

The only approach that works is loading each page in a real browser, letting it settle, and capturing the rendered DOM with its computed styles. CopyAnySite does this from the Chrome side panel: start URL, depth, page cap, include/exclude patterns, then exports the captured set as a ZIP with links rewritten between pages. Slower than fetching — you are rendering every page — and not the tool for a 50,000-page catalogue, but it is the difference between a mirror and a folder of empty shells.

One page, perfect → a single-file capture

If what you actually needed was one page, use SingleFile (free, excellent on articles) or CopyAnySite (measured 98.87% average offline fidelity across eight pages versus SingleFile's 87.93%, with the gap concentrated on design-led pages). Both give you one self-contained file instead of a directory.

The design, editable → capture and import

Capture the page and export it as Gutenberg section blocks with its extracted CSS and media, so it is editable in WordPress rather than frozen. See convert a website to WordPress.

Scripted bundling → monolith

A Rust CLI that packs a page into one file. No browser, so the same client-rendering limit; averaged 83.44% in our runs.

Migrating off HTTrack: what to check

  • Are the pages you need server-rendered? curl -s URL | grep -c "text you can see" — zero hits means you need a browser.
  • Do you need all pages, or the ten that matter? Bounded is faster and politer.
  • Does the result have to be editable, or just readable?
  • Are you rate-limiting? HTTrack's defaults are more aggressive than most sites like.

FAQ

Is HTTrack still working in 2026?

Yes, it still runs and still mirrors server-rendered sites. What it cannot do is capture pages whose content is built by JavaScript in the browser, which is now most commercial sites.

What is the best HTTrack alternative for Mac?

SiteSucker for the same mirroring job natively, or wget --mirror if you are comfortable in Terminal. For pages that need a browser to render, use a browser-based capture extension instead.

Why does my HTTrack mirror show empty pages?

Because the site renders its content client-side; the HTML HTTrack downloaded genuinely contains no content. No setting fixes it — you need a tool that runs the page in a browser.

Is there a free HTTrack alternative?

wget and Cyotek WebCopy are free for whole-site mirroring; SingleFile is free for single pages.

Can HTTrack copy a WordPress site?

It can mirror the rendered front end of a classic theme. It cannot copy WordPress itself — no database, no plugins, no admin. For moving a design into WordPress, capture the pages and import them as blocks.

Try it on the page you are looking at

CopyAnySite is a Chrome extension: open any page you can reach, press capture, and take away a standalone HTML file, an editable WordPress page, or a kit a coding agent can build from. The free key needs no card.

Download CopyAnySite

Keep reading