Copy any website — what is actually possible, and how to do it
A straight answer to "can I copy any website": what part of a site you can copy, what you can never copy, and how to check the copy survives without the original server.
You can copy any website you can open. You cannot copy any website you cannot open. That sentence does more work than it looks like, and it is the whole honest answer to the question — everything below is the detail.
What a browser has, after it finishes loading a page, is a rendered document: a DOM, a full set of computed styles for every node, the fonts it decoded, the images and SVG it fetched, the pixels it painted into <canvas>, the end state of every animation that has run. That is a real, complete artefact and it can be captured byte for byte. What the browser never had is the other half of the site: the server, the database, the template engine, the API keys, the admin screens, the personalised state belonging to whoever was logged in. No tool copies that, and any tool claiming to is describing a screenshot.
So "copy any website" resolves to: reproduce the rendered result exactly, and be honest that the machinery behind it stays where it is.
The test that decides whether you actually copied it
Take the original server away and look at the copy again.
Nearly every quick copy is a bundle of pointers back to somebody else's infrastructure. Online, it looks perfect. Offline — or once hotlink protection kicks in, or a signed CDN URL expires, or the site redesigns — it degrades into broken icons and fallback fonts. That is not a copy, it is a bookmark with extra steps.
This is exactly how we grade our own work: every copy in our benchmark is re-rendered with the original origin blocked at the network layer and then diffed against the live page pixel by pixel. Across eight sites and three runs: CopyAnySite 98.87%, SingleFile 87.93%, wget -p -k 87.40%, monolith 83.44%. The remote-request counts matter just as much — monolith leaves 365 requests still aimed at the original site and wget 554, against 4 for ours. Run npm run bench:rivals in the source and you get your own numbers.
Whatever you use, do this test on your own copy before you rely on it.
What "copy" means depends on what you want back
There are five different jobs hiding behind one search, and the right method differs for each:
- A file you can keep — one self-contained HTML document, openable in five years. See saving a page as a single HTML file.
- An editable page — the design inside your CMS so you can replace the words. See copy any website to WordPress.
- The markup and styles — a code starting point for you or an agent. See copy any website's source code.
- The look, not the content — type scale, spacing, palette, motion. See copy any website design.
- Every page, not one — a browsable local mirror, which is a crawl rather than a capture. See download an entire website.
Why extensions beat downloaders here
A command-line downloader like wget or curl asks the server for the HTML and gets what the server sends a robot: on a modern site that is often an empty shell that JavaScript was supposed to fill. It has no layout engine, so it cannot know which of six srcset candidates was used, what a CSS custom property resolved to, or what a scroll-triggered section looks like once it has settled.
An in-browser capture starts after all of that has already happened. It reads the same DOM and the same computed styles your eyes are looking at, which is why the gap on JavaScript-heavy pages is 30+ points rather than a rounding error. The tradeoff is honest too: an extension can only reach pages you can reach, one tab at a time, and that is a feature — it is why it works on pages behind your own login without anyone handing over credentials. MDN's page on the CSSOM is a decent primer on what is available to read once a page is rendered.
What you should not do with a copy
Copying is a technical act; publishing is a legal one. Reproducing someone's site as your own is copyright infringement in most jurisdictions, and their logos are trademarks regardless. Legitimate uses are the boring ones — offline reading, archiving evidence of what a page said, migrating a site you own, studying a technique, building a design reference. We wrote up the distinction in is it legal to copy a website; it is worth five minutes before you ship anything.
FAQ
Can I copy any website?
You can copy any website your own browser can render, including pages behind your own login, because the capture reads the page after it has loaded. You cannot copy server-side code, databases, admin panels, other people's sessions, or DRM-protected media — those were never delivered to your browser.
Is copying a website free?
Yes for the browser's own save, for wget, for monolith and for SingleFile, and CopyAnySite has a free key that needs no card. Where the free options differ is fidelity once the original server is unreachable, which is what our benchmark measures.
Does copying a website include its database or backend?
No. A copy reproduces the rendered front end. Forms will render but have nowhere to submit, search will not return results, and anything generated per-user will be frozen at whatever your session saw.
What is the difference between copying and scraping a website?
Scraping extracts data — prices, listings, text — and throws the presentation away. Copying keeps the presentation and rebuilds the page. See web scraping vs page capture.
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