Sometimes you want your Ghost blog under a second domain: a rebrand, a staging copy to test a new theme, a niche site that starts from your existing content, or a permanent move to a better name.
If both sites are hosted on GhostArch, there is no file to download and re-upload. The Transfer tool reads your existing site over its public address and copies the content into the new one. Your original site is only read from. Nothing on it is changed, moved or deleted.
This guide covers the full process, what comes across, what you must do by hand, and the two search-engine mistakes that catch people out.
What the Transfer tool copies
Copied automatically:
- Posts, pages, tags and authors, including drafts and scheduled posts
- Members and newsletters, if you use them
- Images and uploaded files, kept at their original paths so every image link inside every post still works
Not copied, so you do these by hand afterwards:
- Your theme. Ghost does not let any API key download a theme, so the tool cannot fetch it.
- Redirects (
redirects.yamlorredirects.json), for the same reason. - Stripe subscriptions. Members transfer, but paid subscriptions stay with your existing Stripe connection. You reconnect Stripe on the new site.
Before you start
- A second site on your plan. The new domain is a separate site, so it counts against your plan's site limit. Check plans if you are not sure how many you have left.
- DNS for the new domain. Point the new domain at GhostArch so the site can get its SSL certificate. The how it works page lists the records.
- The old site must be reachable on the internet. The tool reads it at its public address, such as
https://old-domain.com. A site on your laptop or a private network cannot be read.
Step 1: Create the new site
In your GhostArch dashboard, go to Sites → New blog and enter the new domain. Wait for the site to finish building before you import. It is ready when its status page shows it running.
Step 2: Create an Admin API key on the old site
- Open the old site's admin at
https://old-domain.com/ghost. - Go to Settings → Advanced → Integrations.
- Click Add custom integration and name it something like "Copy to new domain".
- Copy the Admin API key. It has two halves separated by a colon, like
640a1b2c3d4e5f6789012345:8f3c….
Use the Admin key, not the Content key. The Content API key has no colon and cannot read your posts for export, so the tool will reject it.
Step 3: Check the connection
Open the Transfer page for the new site. The address is:
https://ghostarch.com/sites/NEW-DOMAIN.COM/transfer
Enter the old site's address and paste the Admin API key, then press Check my site. If the connection works, you see a summary of what was found: how many posts, pages, tags and members are ready to copy. If something is wrong, the page explains it in plain language, usually a mistyped address, a Content key instead of an Admin key, or a site that isn't reachable.
Step 4: Start the import
Paste the key once more to confirm, then press the import button. It asks again on purpose: a live key for another site should not sit in a browser tab.
One thing to know before you press it: the import removes the placeholder posts that every new Ghost site starts with, and replaces them with your content. If you have already written something on the new site, it is kept, but a post whose web address matches an incoming post gets a number added to its slug.
The import runs in the background. Your key is stored encrypted and erased the moment the import finishes.
Step 5: Finish the job by hand
When the import completes, work through this list on the new site:
- Upload your theme. On the old site go to Settings → Design → Change theme and download it, then upload it on the new site. See how to change your Ghost theme and design.
- Recreate redirects. Copy your redirects file across. See how to set up redirects in Ghost.
- Reconnect Stripe if you sell paid memberships.
- Check the site settings: title, description, logo, navigation and social links.
- Open a dozen posts, including older ones, and look for missing images or odd formatting.
- Delete the API integration on the old site. The key is no longer needed.
The two SEO mistakes to avoid
Two sites carrying the same content on two domains is where people lose search traffic.
If the new site is a permanent replacement: plan a 301 redirect from the old domain to the new one once you are happy with it. Without it, search engines see two copies and have to guess which one wins. The move without downtime guide covers the order of steps for a clean cutover.
If the new site is a staging copy or a test: keep it out of search results while you work. In the new site's admin, open Settings → Advanced → Code injection and add this to the Site header:
<meta name="robots" content="noindex, nofollow">
Remove it before you launch. Forgetting it is how a test site ends up competing with the real one.
When the Backups page is the better tool
The Backups page creates an archive of one site that you can download, and restoring it replaces that same site. It is the right tool for a safety copy or to roll a site back, but it cannot restore into a different domain. To put content on a new domain, use Transfer.
FAQ
Does copying a site change or delete the original?
No. The Transfer tool only reads from the old site. Your original posts, members and settings are not changed, moved or deleted.
Do I need to keep the old site running?
Yes, until the import has finished, because the tool reads the content from it. After that the new site stands alone. If the move is permanent, keep the old domain alive for redirects.
Will my image links still work on the new domain?
Yes. Images are downloaded and kept at their original paths, and links inside posts are rewritten to point at the new site, so nothing is left pointing at the old domain.
Can I copy a site that isn't hosted on GhostArch?
Yes. The Transfer tool works with any Ghost site that is reachable on the internet and where you can create an Admin API key, whichever host it runs on.
Does it copy my theme?
No. Ghost does not allow an API key to download a theme. Download it from the old site under Settings, Design, and upload it to the new one.
What happens to my paid members?
Members are copied, but their Stripe subscriptions stay tied to your existing Stripe connection. After the import, reconnect Stripe on the new site and check that your members' subscription status is what you expect.
Can I run the import again?
You can start a new import if the first one failed or you want to try again. Note that it can add posts on top of what is already there, so on a site with content already in it, check for duplicates afterwards.
Bringing a blog to us for the first time? The how it works page covers the setup, and every plan lets you use your own domain.