{"id":42,"date":"2026-09-06T09:57:39","date_gmt":"2026-09-06T04:27:39","guid":{"rendered":"https:\/\/hostcrafter.com\/kb\/clone-wordpress-site\/"},"modified":"2026-09-06T15:08:18","modified_gmt":"2026-09-06T09:38:18","slug":"clone-wordpress-site","status":"publish","type":"post","link":"https:\/\/hostcrafter.com\/kb\/clone-wordpress-site\/","title":{"rendered":"How to Clone a WordPress Site in One Click"},"content":{"rendered":"<p><strong>Cloning copies an entire WordPress site onto a different domain<\/strong>: the theme, the plugins, every setting, every page and every image. It rewrites the addresses inside as it goes. What you get is a second, independent site that looks and behaves exactly like the first one, on a domain of its own.<\/p>\n<p>On HostCrafter, our managed WordPress hosting, it is a button on the website&#8217;s row. No export plugin, no 400 MB zip through your browser, no search-and-replace in a database dump.<\/p>\n<dl class=\"hc-facts\">\n<div>\n<dt>How long<\/dt>\n<dd>A minute or two<\/dd>\n<\/div>\n<div>\n<dt>What it costs<\/dt>\n<dd>Nothing, on a domain already on the account<\/dd>\n<\/div>\n<div>\n<dt>Effect on the original<\/dt>\n<dd>None. It is only read<\/dd>\n<\/div>\n<div>\n<dt>Where<\/dt>\n<dd>Client area \u2192 your hosting \u2192 Websites<\/dd>\n<\/div>\n<\/dl>\n<nav class=\"hc-toc\">\n<h2>On this page<\/h2>\n<ol>\n<li><a href=\"#why\">When Cloning Is the Right Tool<\/a><\/li>\n<li><a href=\"#versus\">Clone, Staging or Migration?<\/a><\/li>\n<li><a href=\"#before\">Before You Start<\/a><\/li>\n<li><a href=\"#clone\">Clone the Site<\/a><\/li>\n<li><a href=\"#copied\">What the Clone Copies<\/a><\/li>\n<li><a href=\"#ssl\">What Happens to HTTPS and the Links Inside the Site<\/a><\/li>\n<li><a href=\"#after\">Five Things to Check on the Copy<\/a><\/li>\n<li><a href=\"#manual\">What a Clone Cannot Change for You<\/a><\/li>\n<li><a href=\"#trouble\">If Something Goes Wrong<\/a><\/li>\n<li><a href=\"#faq\">Questions<\/a><\/li>\n<\/ol>\n<\/nav>\n<h2 id=\"why\">When Cloning Is the Right Tool<\/h2>\n<ul>\n<li><strong>You build the same kind of site repeatedly.<\/strong> Set one up the way you like it (theme, plugins, settings, starter pages) and stamp out a copy for each new project instead of configuring WordPress from scratch every time.<\/li>\n<li><strong>You are moving a site to a new domain.<\/strong> Clone onto the new domain, check it, then point visitors at it.<\/li>\n<li><strong>You want a permanent second copy<\/strong>: a demo, a client&#8217;s review site, a version you can break without consequences.<\/li>\n<li><strong>You are splitting one site into two.<\/strong> Clone it, then delete what does not belong on each side.<\/li>\n<\/ul>\n<h2 id=\"versus\">Clone, Staging or Migration?<\/h2>\n<p>Three tools in the panel copy a site, and picking the wrong one wastes an afternoon.<\/p>\n<div class=\"hc-tw\"><table>\n<tr>\n<th><\/th>\n<th>Clone<\/th>\n<th>Staging<\/th>\n<th>Quick Migrate<\/th>\n<\/tr>\n<tr>\n<td><strong>Makes<\/strong><\/td>\n<td>An independent site on another domain<\/td>\n<td>A temporary copy tied to its live site<\/td>\n<td>A site here from a site somewhere else<\/td>\n<\/tr>\n<tr>\n<td><strong>Source<\/strong><\/td>\n<td>A site on this account<\/td>\n<td>A site on this account<\/td>\n<td>Another host, or an export file<\/td>\n<\/tr>\n<tr>\n<td><strong>Can be published back<\/strong><\/td>\n<td>No<\/td>\n<td>Yes, over the site it came from<\/td>\n<td>Not applicable<\/td>\n<\/tr>\n<tr>\n<td><strong>Costs a website slot<\/strong><\/td>\n<td>Only if the destination domain is new to the account<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td><strong>Use it for<\/strong><\/td>\n<td>A second site<\/td>\n<td>Testing a change<\/td>\n<td>Moving in<\/td>\n<\/tr>\n<\/table><\/div>\n<p>The short version: <strong>if you want the change to end up on the original site, use <a href=\"\/kb\/wordpress-staging-site\/\">staging<\/a>. If you want a second site, clone.<\/strong><\/p>\n<h2 id=\"before\">Before You Start<\/h2>\n<ul>\n<li><strong>The source has to be a WordPress install we made.<\/strong> A hand-made install over SFTP is deliberately left alone by the panel.<\/li>\n<li><strong>Decide the destination domain.<\/strong> If it is already parked on your account with nothing on it, the clone lands there and <em>no extra website slot is used<\/em>. If it is new to the account, the copy takes a slot.<\/li>\n<li><strong>The destination must be empty.<\/strong> The panel refuses to clone over a domain that already has WordPress on it, rather than overwriting somebody&#8217;s site.<\/li>\n<li><strong>The domain can only be on one account.<\/strong> If it is already in use elsewhere on our platform you will be told so by name. That check is node-wide and it is there because two accounts holding one hostname produces a site that shows the previous owner&#8217;s posts and refuses the new login. That is close to impossible to diagnose from the outside.<\/li>\n<\/ul>\n<h2 id=\"clone\">Clone the Site<\/h2>\n<ol class=\"hc-steps\">\n<li>\n<h3>Open the row of the site you want to copy<\/h3>\n<p>In the panel, open <strong>Websites<\/strong> and click the row (not a button) to expand it. Every action gets its label. <strong>Clone<\/strong> is the two-rectangles one.<\/p>\n<figure class=\"hc-fig\"><img loading=\"lazy\" src=\"https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/website-row-actions-b8a5035220.webp\" alt=\"An expanded website row in the HostCrafter panel showing every action as a labelled tile, including Staging and Clone\" width=\"1882\" height=\"395\" class=\"wp-image-98\" decoding=\"async\" srcset=\"https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/website-row-actions-b8a5035220.webp 1880w, https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/website-row-actions-b8a5035220-300x63.webp 300w, https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/website-row-actions-b8a5035220-1024x216.webp 1024w, https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/website-row-actions-b8a5035220-768x162.webp 768w\" sizes=\"auto, (max-width: 1882px) 100vw, 1882px\" \/><figcaption>Clone sits between Staging and Info on an expanded website row.<\/figcaption><\/figure>\n<\/li>\n<li>\n<h3>Choose where the copy goes<\/h3>\n<p>If your account has domains on it with nothing installed, they are offered first \u2014 those are the ones that cost no extra slot.<\/p>\n<figure class=\"hc-fig narrow\"><img loading=\"lazy\" src=\"https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/clone-dialog-36703bd732.webp\" alt=\"The Clone dialog offering a domain already parked on the account as the destination for the copy\" width=\"992\" height=\"540\" class=\"wp-image-104\" decoding=\"async\" srcset=\"https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/clone-dialog-36703bd732.webp 992w, https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/clone-dialog-36703bd732-300x163.webp 300w, https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/clone-dialog-36703bd732-768x418.webp 768w\" sizes=\"auto, (max-width: 992px) 100vw, 992px\" \/><figcaption>Empty domains already on the account are offered first, because cloning into one costs nothing.<\/figcaption><\/figure>\n<\/li>\n<li>\n<h3>Or type a domain that is not on the account yet<\/h3>\n<p>Choose <strong>A different domain\u2026<\/strong> and type it. The dialog tells you how many website slots are in use, because this route spends one.<\/p>\n<figure class=\"hc-fig narrow\"><img loading=\"lazy\" src=\"https:\/\/hostcrafter.com\/kb\/wp-content\/uploads\/2026\/09\/clone-dialog-new-domain-fdbc7f1585.webp\" alt=\"The Clone dialog with a different domain chosen, showing the domain field and how many website slots are in use\" width=\"992\" height=\"738\" class=\"wp-image-105\" decoding=\"async\"><figcaption>Cloning onto a new domain uses a website slot, and the dialog says how many are left.<\/figcaption><\/figure>\n<\/li>\n<li>\n<h3>Press Copy website<\/h3>\n<p>The panel copies the files, creates a database for the copy, copies the database into it, and rewrites every address inside the content from the old domain to the new one. Then it publishes the new site&#8217;s configuration and, if the source was on HTTPS, gets a certificate for the copy.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"copied\">What the Clone Copies<\/h2>\n<p>Everything that makes the site what it is:<\/p>\n<ul>\n<li>WordPress core, your theme and all its customisations<\/li>\n<li>Every plugin, <strong>with its settings<\/strong>. This is the part that saves the afternoon<\/li>\n<li>The full database: pages, posts, products, menus, widgets, users, options<\/li>\n<li><code>wp-content\/uploads<\/code> in full \u2014 every image, at every size<\/li>\n<\/ul>\n<p>The only things left behind are the caches: <code>wp-content\/cache<\/code>, <code>wp-content\/uploads\/cache<\/code> and Divi&#8217;s <code>et-cache<\/code>. A cache is derived from the site and rebuilds itself within a request or two.<\/p>\n<p>The copy also inherits the source&#8217;s PHP version, and gets a database and a Redis database of its own. The original is only read; nothing about it changes.<\/p>\n<h2 id=\"ssl\">What Happens to HTTPS and the Links Inside the Site<\/h2>\n<p>WordPress stores absolute URLs (<code>https:\/\/olddomain.com\/wp-content\/uploads\/\u2026<\/code>) in dozens of places, so a copy that does not rewrite them serves the new domain while pulling images from the old one.<\/p>\n<p>The clone rewrites them. It happens in two passes, and the second one is the one people get wrong when they do this by hand:<\/p>\n<ol>\n<li>Every address is rewritten from the old domain to the new one as the copy is made.<\/li>\n<li>If the source was on HTTPS, a certificate is requested for the copy, and once it is issued the addresses are rewritten again from <code>http:\/\/<\/code> to <code>https:\/\/<\/code>. Skip that second pass and you get a site served over HTTPS that emits <code>http:\/\/<\/code> links. Browsers report that as mixed content; customers report it as &#8220;the copy is broken&#8221;.<\/li>\n<\/ol>\n<p>If the certificate cannot be issued yet, usually because the new domain&#8217;s DNS does not point here, the panel says so, and the copy runs on HTTP until it can. The panel&#8217;s DNS section shows the record to add.<\/p>\n<h2 id=\"after\">Five Things to Check on the Copy<\/h2>\n<p>The clone is a faithful copy, and that is exactly why some things need your attention: they were correct for the original and are now duplicated.<\/p>\n<ol>\n<li><strong>Search engines.<\/strong> Two identical sites on two domains compete with each other. Decide which one is canonical. If the copy is a demo or a client preview, turn on <em>Settings \u2192 Reading \u2192 Discourage search engines<\/em> on it.<\/li>\n<li><strong>Plugin licences.<\/strong> Most commercial plugins are licensed per site and will need activating again on the new domain. The licence key came across; the activation did not.<\/li>\n<li><strong>Anything that sends email.<\/strong> Contact forms, order emails and SMTP settings all point at the original site&#8217;s address, and will keep doing so until you change them.<\/li>\n<li><strong>Analytics and Search Console.<\/strong> The copy is reporting into the original&#8217;s property. Change the measurement ID, or you will spend a month debugging traffic that is not real.<\/li>\n<li><strong>Payment gateways and webhooks.<\/strong> Stripe, PayPal and anything with a callback URL are still pointing at the original domain. On a shop, do this before the copy is public.<\/li>\n<\/ol>\n<h2 id=\"manual\">What a Clone Cannot Change for You<\/h2>\n<p>Cloning copies the site. It does not know what any of it <em>means<\/em>, so anything whose correctness depends on the domain is now inherited rather than right:<\/p>\n<ul>\n<li>API keys and webhooks registered against the old domain<\/li>\n<li>A sitemap already submitted to Google under the old domain<\/li>\n<li>Redirects written for the old domain&#8217;s URL structure<\/li>\n<li>Hard-coded links somebody typed into a page rather than inserting<\/li>\n<li>Anything in a plugin that stores a URL somewhere the rewrite does not reach \u2014 rare, and worth a ticket if you find one<\/li>\n<\/ul>\n<h2 id=\"trouble\">If Something Goes Wrong<\/h2>\n<h3>&#8220;already has WordPress on it&#8221;<\/h3>\n<p>The destination is not empty. The panel refuses rather than overwriting it. Delete the site that is there, from its own <strong>Danger Zone<\/strong>, or clone onto a different domain.<\/p>\n<h3>&#8220;a website cannot be cloned onto itself&#8221;<\/h3>\n<p>The destination you picked is the source. Choose another domain.<\/p>\n<h3>The domain is refused as being in use<\/h3>\n<p>That hostname exists elsewhere on our platform. If it is genuinely yours, open a ticket with the domain name and we can see which account holds it.<\/p>\n<h3>The copy is on HTTP and the original was on HTTPS<\/h3>\n<p>The certificate could not be issued yet, and nearly always that is DNS: the new domain does not point at us. Point it, and the certificate is issued and the links rewritten. The panel&#8217;s message names the reason.<\/p>\n<h3>The clone failed partway<\/h3>\n<p>If the destination was a new domain, the half-built site is removed and the slot is given back, so a failure does not leave you paying for wreckage. If it was a domain already on your account, the record stays and can be cloned into again.<\/p>\n<h2 id=\"faq\">Questions<\/h2>\n<div class=\"hc-faq\">\n<h3>Does cloning affect the original site?<\/h3>\n<p>No. The original is only read. It stays online throughout.<\/p>\n<h3>Does a clone use one of my website slots?<\/h3>\n<p>Only if the destination domain is new to the account. Cloning into a domain that is already parked there with nothing on it uses no extra slot.<\/p>\n<h3>Can I clone to a domain hosted somewhere else?<\/h3>\n<p>The copy is created here, on your account, whatever the domain&#8217;s DNS currently says. It becomes reachable at that domain when you point the domain at us, and its certificate is issued at the same time. To move a site <em>away<\/em> from us, take a backup and restore it at the other host.<\/p>\n<h3>Can I clone a staging copy?<\/h3>\n<p>No. A staging copy belongs to the site it came from. Rebuild it from its live site, or publish it. Clone the live site instead.<\/p>\n<h3>How is this different from a plugin like Duplicator or All-in-One WP Migration?<\/h3>\n<p>Those export the site through PHP into an archive your browser downloads and then re-import it. That is slow, memory-hungry, and the reason big sites fail halfway through. Cloning here happens on the server: a file sync, a database copy and a search-replace, none of it passing through a browser. We do support those plugins&#8217; export files for moving a site <em>in<\/em>, through Quick Migrate.<\/p>\n<h3>Is a clone a backup?<\/h3>\n<p>No. It is a second live site that costs disk and can be broken like any other. Backups are separate, automatic, and kept off the node. See <a href=\"\/kb\/automatic-wordpress-backups\/\">Automatic backups: what is taken, and when<\/a>.<\/p>\n<\/div>\n<div class=\"hc-rel\">\n<h2>Read next<\/h2>\n<ul>\n<li><a href=\"\/kb\/wordpress-staging-site\/\">How to Create a WordPress Staging Site<\/a><\/li>\n<li><a href=\"\/kb\/automatic-wordpress-backups\/\">Automatic Backups: What Is Taken, and When<\/a><\/li>\n<\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Copy a whole WordPress site \u2014 theme, plugins, settings and content \u2014 onto another domain from the panel. No export plugin, no database editing.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-42","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"_links":{"self":[{"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/posts\/42","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/comments?post=42"}],"version-history":[{"count":7,"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/posts\/42\/revisions"}],"predecessor-version":[{"id":137,"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/posts\/42\/revisions\/137"}],"wp:attachment":[{"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/media?parent=42"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/categories?post=42"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hostcrafter.com\/kb\/wp-json\/wp\/v2\/tags?post=42"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}