{
    "title": "How to duplicate a WordPress site: tools, manual method and pitfalls",
    "seo_title": "How to Duplicate a WordPress Site: Tools and Method",
    "h1": "How to duplicate a WordPress site: tools, manual method and pitfalls",
    "description": "Duplicate a WordPress site with Duplicator, All-in-One WP Migration, WPvivid or WP-CLI: tools compared, serialized data and what to switch off.",
    "lead": "Copying a WordPress site to another address: the tools compared (Duplicator, All-in-One WP Migration, WPvivid, Migrate Guru, WP Staging, UpdraftPlus), the WP-CLI method, the serialized data trap and the six barriers to put on the copy.",
    "language": "en",
    "locale": "en-US",
    "type": "article",
    "url": "https://www.wp-masquerade.com/duplicate-wordpress-site/",
    "canonical": "https://www.wp-masquerade.com/duplicate-wordpress-site/",
    "markdown": "https://www.wp-masquerade.com/duplicate-wordpress-site/index.md",
    "json": "https://www.wp-masquerade.com/duplicate-wordpress-site/index.json",
    "published": "2026-08-24T06:00:00+00:00",
    "modified": "2026-10-29T13:55:44+00:00",
    "site": {
        "name": "WP Masquerade",
        "url": "https://www.wp-masquerade.com/"
    },
    "translations": [
        {
            "language": "en",
            "hreflang": "en-US",
            "title": "How to duplicate a WordPress site: tools, manual method and pitfalls",
            "url": "https://www.wp-masquerade.com/duplicate-wordpress-site/",
            "markdown": "https://www.wp-masquerade.com/duplicate-wordpress-site/index.md",
            "json": "https://www.wp-masquerade.com/duplicate-wordpress-site/index.json"
        },
        {
            "language": "fr",
            "hreflang": "fr-FR",
            "title": "Comment dupliquer son site WordPress : outils, méthode manuelle et pièges",
            "url": "https://www.wp-masquerade.com/fr/dupliquer-site-wordpress/",
            "markdown": "https://www.wp-masquerade.com/fr/dupliquer-site-wordpress/index.md",
            "json": "https://www.wp-masquerade.com/fr/dupliquer-site-wordpress/index.json"
        },
        {
            "language": "es",
            "hreflang": "es-ES",
            "title": "Cómo duplicar un sitio WordPress: herramientas, método manual y trampas",
            "url": "https://www.wp-masquerade.com/es/duplicar-sitio-wordpress/",
            "markdown": "https://www.wp-masquerade.com/es/duplicar-sitio-wordpress/index.md",
            "json": "https://www.wp-masquerade.com/es/duplicar-sitio-wordpress/index.json"
        },
        {
            "language": "de",
            "hreflang": "de-DE",
            "title": "WordPress-Website duplizieren: Tools, manuelle Methode und Fallstricke",
            "url": "https://www.wp-masquerade.com/de/wordpress-website-duplizieren/",
            "markdown": "https://www.wp-masquerade.com/de/wordpress-website-duplizieren/index.md",
            "json": "https://www.wp-masquerade.com/de/wordpress-website-duplizieren/index.json"
        },
        {
            "language": "it",
            "hreflang": "it-IT",
            "title": "Come duplicare un sito WordPress: strumenti, metodo manuale e insidie",
            "url": "https://www.wp-masquerade.com/it/duplicare-sito-wordpress/",
            "markdown": "https://www.wp-masquerade.com/it/duplicare-sito-wordpress/index.md",
            "json": "https://www.wp-masquerade.com/it/duplicare-sito-wordpress/index.json"
        },
        {
            "language": "pt",
            "hreflang": "pt-BR",
            "title": "Como duplicar um site WordPress: ferramentas, método manual e armadilhas",
            "url": "https://www.wp-masquerade.com/pt/duplicar-site-wordpress/",
            "markdown": "https://www.wp-masquerade.com/pt/duplicar-site-wordpress/index.md",
            "json": "https://www.wp-masquerade.com/pt/duplicar-site-wordpress/index.json"
        },
        {
            "language": "nl",
            "hreflang": "nl-NL",
            "title": "WordPress-site dupliceren: tools, handmatige methode en valkuilen",
            "url": "https://www.wp-masquerade.com/nl/wordpress-site-dupliceren/",
            "markdown": "https://www.wp-masquerade.com/nl/wordpress-site-dupliceren/index.md",
            "json": "https://www.wp-masquerade.com/nl/wordpress-site-dupliceren/index.json"
        }
    ],
    "headings": [
        {
            "level": 1,
            "text": "How to duplicate a WordPress site: tools, manual method and pitfalls"
        },
        {
            "level": 2,
            "text": "Copy, staging or migration: three different needs"
        },
        {
            "level": 2,
            "text": "The steps of a successful duplication"
        },
        {
            "level": 2,
            "text": "Duplication tools compared"
        },
        {
            "level": 3,
            "text": "Duplicator: the archive classic"
        },
        {
            "level": 3,
            "text": "All-in-One WP Migration: the simplest"
        },
        {
            "level": 3,
            "text": "WPvivid and WP Staging: staging built in"
        },
        {
            "level": 3,
            "text": "Migrate Guru and UpdraftPlus: for large sites or sites already backed up"
        },
        {
            "level": 2,
            "text": "The manual method with WP-CLI"
        },
        {
            "level": 2,
            "text": "Why an SQL search and replace breaks serialized data"
        },
        {
            "level": 2,
            "text": "What to switch off on the copy"
        },
        {
            "level": 2,
            "text": "WP Masquerade on a copy of the site"
        },
        {
            "level": 2,
            "text": "Frequently asked questions"
        },
        {
            "level": 3,
            "text": "Key takeaways"
        },
        {
            "level": 2,
            "text": "A copy as discreet as the original"
        },
        {
            "level": 2,
            "text": "Sources"
        },
        {
            "level": 2,
            "text": "WordPress security, without the noise",
            "id": "wpm-nl-box-title"
        }
    ],
    "body": "Duplicating a WordPress site means copying its files and database to another address, then replacing the old address everywhere in the database without breaking the data. A plugin such as Duplicator, All-in-One WP Migration or WPvivid does it in a few clicks; WP-CLI does it in four commands. This guide compares the tools, walks through the manual method and lists what to switch off on the copy so that it does not email your customers or take real payments.\n\nMainly want to test updates before applying them? Our article on WordPress staging covers the whole test and deployment cycle. Moving to a new host without changing the address? Read [how to migrate a WordPress site to a new host](https://www.wp-masquerade.com/migrate-wordpress-to-new-host/) instead. Here, the topic is the copy itself: tools, method, pitfalls.\n\n## Copy, staging or migration: three different needs\n\nThe word “duplicate” covers three situations that do not call for the same precautions. The difference comes down to one simple question: at the end, how many sites are running, and which one gets the real visitors?\n\n*The same copying technique, three different intentions.*\n\n- **A lasting copy** (a template site for a client, a version of a site for another country, a complete redesign) becomes a site in its own right: new address, new licences, its own maintenance.\n- **Staging** is a temporary copy closed to the public. It is refreshed from production and must never replace it wholesale, or it will overwrite the orders and accounts created in the meantime.\n- **A migration** is not a copy that stays: the old site goes dark after the DNS switch. That is the subject of our [guide to migrating to a new host](https://www.wp-masquerade.com/migrate-wordpress-to-new-host/).\n\n## The steps of a successful duplication\n\nWhatever the tool, the copy follows the same sequence. Plugins automate the first four steps; the last two are always up to you.\n\n*The first four steps can be automated, the last two are done by hand.*\n\n## Duplication tools compared\n\n| Tool | How it works | Free version | Paid version | Best for |\n| --- | --- | --- | --- | --- |\n| Duplicator | Archive and installer script | Yes (Lite), modest-size sites | Pro from $79 (2 sites) | Cloning to an empty server, template sites |\n| All-in-One WP Migration | .wpress file imported into a fresh WordPress | Yes, import limited by the host’s upload size | Unlimited Extension $69 per year (50 sites) | Beginners, small and medium sites |\n| WPvivid | Backup, migration and staging | Yes, with staging in a subfolder | Pro from $49 per year or $99 lifetime (2 domains) | Tight budget, staging included |\n| Migrate Guru | Server-to-server transfer through its servers | Yes, large sites (up to 200 GB) | None | Large sites to another host, not to local |\n| WP Staging | Clone in a subfolder of the same site | Yes, unlimited clones | From €89 excl. VAT per year | One-click staging on the same server |\n| UpdraftPlus | Backup restored elsewhere (Migrator) | Backups only | Premium from $84 per year (2 sites) | Sites already backed up with UpdraftPlus |\n\n*Vendors’ public prices, without promotions; Migrate Guru is free with no paid version.*\n\n### Duplicator: the archive classic\n\nDuplicator builds a “package”: an archive of the site and an `installer.php` file. You upload both to the target server, open the installer, enter the new database, and it replaces the address. The Lite version is enough for a reasonably sized site; Pro (from $79 for 2 sites to $599 for 100 sites, list prices) adds scheduled cloud backups, large sites and multisite. **Pitfall**: the installer and the archive stay on the target server if you do not delete them at the end of the installation.\n\n### All-in-One WP Migration: the simplest\n\nMore than five million installations. You export a `.wpress` file, install a blank WordPress on the target with the same plugin, and import: addresses and serialized data are replaced automatically. The free export has no size limit, but the import goes through the upload form and runs into the limit set by the host. The Unlimited Extension ($69 per year, up to 50 sites) lifts that limit and adds WP-CLI commands. This plugin has had several vulnerabilities; keep it up to date and remove it when you no longer need it (see [its vulnerability history](https://www.wp-masquerade.com/all-in-one-wp-migration-security-vulnerabilities/)).\n\n### WPvivid and WP Staging: staging built in\n\n**WPvivid** combines backup, migration by file upload and, even in the free version, staging in a subfolder. Pro (from $49 per year or $99 lifetime for two domains) adds several staging sites, pushing to the live site and multisite. **WP Staging** clones the site into a subfolder of the same hosting account, with differently prefixed tables in the same database; cloning is free and unlimited, but pushing changes back to production or moving the site to another domain requires a paid plan (Personal at €89 excl. VAT per year, without push to production; Business at €139 excl. VAT).\n\n### Migrate Guru and UpdraftPlus: for large sites or sites already backed up\n\n**Migrate Guru**, free, copies a site of up to 200 GB from server to server through its own servers, with address replacement that respects serialized data. It does not work towards a local machine, makes no backup and requires WordPress with the plugin installed on the target. **UpdraftPlus** restores a backup onto another site with its Migrator module, included in Premium (from $84 per year for two sites); it is the natural route if you already back up with it.\n\nMany hosts also offer one-click cloning: WP Toolkit in cPanel and Plesk, or the staging tools of Kinsta, o2switch or Hostinger. It is often the fastest option when the copy stays with the same host; our host reviews such as [WordPress hosting at Kinsta](https://www.wp-masquerade.com/kinsta-wordpress-hosting-review/) detail what each one offers.\n\n## The manual method with WP-CLI\n\nWithout a plugin, with SSH access to both servers and [WP-CLI](https://www.wp-masquerade.com/glossary/wp-cli/), copying is fast, repeatable and leaves no archive in a public folder. The addresses below are examples.\n\n```\n# 1. On the source: export the database and archive the files\r\nwp db export /home/account/copy.sql\r\ntar -czf /home/account/files.tar.gz -C /home/account/www .\r\n\r\n# 2. On the target: extract, adjust wp-config.php (database, user, password)\r\ntar -xzf files.tar.gz -C /home/account/staging\r\nwp db import copy.sql\r\n\r\n# 3. Replace the address: dry run first, then for real\r\nwp search-replace 'https://www.example.com' 'https://staging.example.com' --skip-columns=guid --dry-run\r\nwp search-replace 'https://www.example.com' 'https://staging.example.com' --skip-columns=guid\r\n\r\n# 4. Declare the environment, block indexing, flush caches\r\nwp config set WP_ENVIRONMENT_TYPE staging\r\nwp option update blog_public 0\r\nwp cache flush\r\nwp rewrite flush\n```\n\nKeep the `.sql` and `.tar.gz` files outside the public folder and delete them after use: an archive forgotten at the site root can be downloaded with a single request (see exposed sensitive files). The `--skip-columns=guid` option follows WordPress’s recommendation: the `guid` column identifies posts for feed readers and must not change.\n\n## Why an SQL search and replace breaks serialized data\n\nWordPress and plugins store many settings as “serialized” PHP arrays, where each string is preceded by its length: `s:23:\"https://www.example.com\"`. If you replace the address with a plain SQL `REPLACE()` or in a text editor, the declared length no longer matches the text, PHP can no longer read the value and the setting disappears without an error message: empty widgets, reset theme, lost page builder options. The plugins listed above and `wp search-replace` unserialize, replace and recalculate the lengths. Never use anything else.\n\n## What to switch off on the copy\n\nA faithful copy does everything production does: it sends emails, runs its scheduled tasks, takes payments and gets indexed. Before you even log in to the copy, apply this list; our article on staging details each barrier.\n\n| Risk | What happens | Countermeasure |\n| --- | --- | --- |\n| Indexing | Google indexes the copy, duplicate content | HTTP password on the whole copy, in addition to noindex |\n| Emails | Reminders, invoices or newsletters sent to real customers | A plugin that blocks or captures emails, test SMTP |\n| Scheduled tasks | Subscriptions renewed, exports sent, syncs doubled | `DISABLE_WP_CRON` set to `true`, server cron jobs not copied |\n| Payments | Real charges, webhooks that update production | Stripe, PayPal and others in test mode, test keys |\n| Premium licences | An activation used up, or a copy that needs its own licence | Deactivate the licence on the copy, use the vendor’s development keys |\n| Personal data | Customer accounts copied to a less protected server | Anonymise or delete data before sharing access |\n\n*The six barriers to put on any copy of a production site.*\n\nWooCommerce Subscriptions detects a different address on its own and switches the copy to manual renewals; most other plugins have no such safeguard. Premium licences vary a lot from one vendor to another: some cover development sites, others count every address. Read the terms before cloning, especially for a template site meant to be copied often.\n\n## WP Masquerade on a copy of the site\n\nWP Masquerade’s settings live in the database: they follow the copy. A few points need checking.\n\n- **Login address**: the [secret login address](https://www.wp-masquerade.com/features/custom-login-page/) is a path, identical on the copy. If the copy is handed to a contractor, change it on the copy so you do not reveal the production one.\n- **Accounts and two-factor authentication**: passwords and two-factor secrets are copied with the database. A copy reachable from the internet is therefore a second door to the same accounts: protect it with an HTTP password.\n- **Server rules**: the free plugin rewrites the file that hides its folder on its own, at an administrator’s first visit. Pro’s aliases ([file addresses](https://www.wp-masquerade.com/features/file-url-aliases/)) rely on a block in the root `.htaccess` that contains the site’s full path: on a copy placed in a subfolder or on an Nginx server, it no longer matches. Paste the block generated for the copy, then run “Verify and activate”.\n- **If you get locked out**: the constant `define('CMS_MASQUERADE_DISABLE', true);` in `wp-config.php` suspends the transformations while you fix things.\n- **Pro licence**: it is tied to the site’s address. A copy at another address is not covered by the production activation; running it permanently needs its own licence seat. The terms for development and staging sites are on the [pricing](https://www.wp-masquerade.com/pricing/) page.\n\nWP Masquerade is neither a backup nor a duplication tool: it copies nothing. To reuse only its settings on another site, use [settings import and export](https://www.wp-masquerade.com/features/settings-import-export/).\n\n*“How To Quickly Clone Your WordPress Site For Testing Or Redesign”, by the Duplicator channel (July 2025): a complete clone for testing or redesign, useful to see the package and installer steps before trying it yourself.*\n\n## Frequently asked questions\n\n**What is the simplest plugin to duplicate a WordPress site?**\n\nAll-in-One WP Migration for a small site: export one file, import it on a fresh WordPress. For a site larger than the host’s upload limit, WPvivid or Duplicator, or Migrate Guru towards another server.\n\n**Can I duplicate a site on the same hosting account?**\n\nYes, in a subdomain or a subfolder, with a separate database or a different table prefix. WP Staging, WPvivid and hosts’ cloning tools do it in one click.\n\n**Does the copy hurt the original site’s SEO?**\n\nOnly if it gets indexed: two identical sites compete with each other. Protect the copy with an HTTP password, which also prevents crawling, in addition to the “Discourage search engines from indexing this site” option.\n\n**Do I need to buy premium plugin licences again for a copy?**\n\nIt depends on each vendor: some cover development or staging sites, others count every address. A copy that becomes a site in its own right usually needs its own licence.\n\n**Why did my widgets disappear after a search and replace?**\n\nThe replacement broke serialized data. Restore the database, then redo the replacement with `wp search-replace` or a plugin that handles serialization.\n\n### Key takeaways\n\n- Duplicating = copying files and database, then replacing the address with a tool that respects serialized data.\n- All-in-One WP Migration, Duplicator, WPvivid and Migrate Guru cover most cases; WP-CLI remains the cleanest for anyone with SSH.\n- On the copy: protected access, email and cron off, payments in test mode, licences reviewed.\n- Delete archives, SQL exports and installers once the copy is done.\n- WP Masquerade: settings copied, server rules to redo if the path changes, Pro licence tied to the address.\n\n## A copy as discreet as the original\n\nThe free version of WP Masquerade moves the login, blocks XML-RPC and removes WordPress traces, on production and on its copies alike. Pro adds two-factor authentication, login limiting and alerts about vulnerable plugins.\n\n[Download the free version](https://www.wp-masquerade.com/download/)\n\n[See Pro pricing](https://www.wp-masquerade.com/pricing/)\n\n## Sources\n\n- WP-CLI: wp search-replace (https://developer.wordpress.org/cli/commands/search-replace/)\n- WordPress Developer: moving WordPress (https://developer.wordpress.org/advanced-administration/upgrade/migrating/)\n- WordPress.org: All-in-One WP Migration (https://wordpress.org/plugins/all-in-one-wp-migration/)\n- WordPress.org: Migrate Guru (https://wordpress.org/plugins/migrate-guru/)\n\n## WordPress security, without the noise\n\nOne e-mail when something matters: new attacks seen in the wild, plugin updates and practical guides. No spam, unsubscribe in one click.",
    "categories": [
        "WordPress guides"
    ],
    "format": "application/json"
}