Merging two WordPress sites into one
Bringing two separate WordPress installations together into one raises conflicts that WordPress’s native export-import tool (Tools > Export then Import) doesn’t resolve on its own: duplicate IDs, identical slugs, categories duplicated under slightly different names.
What the native import doesn’t resolve on its own
WordPress’s built-in export-import tool transfers content from one site to another, but doesn’t arbitrate the conflicts that inevitably appear when two separate databases meet. Two posts can carry the same internal identifier in each database, just as a user with the same name can exist on both sides without WordPress recognising them as one and the same person.
Images cause a similar problem, less visible but just as real: every media file is itself an internal identifier (an “attachment” content type like any other), and the import assigns it a new identifier on the host site. A featured image or an image inserted into a post by its identifier rather than its address can end up linked to the wrong image after the merge, with nothing flagging it.
The most visible case involves slugs: if both sites each have a page at /about, the second one imported is automatically renamed to /about-2 by WordPress to avoid a URL duplicate. The content isn’t lost, but every internal or external link that pointed to the old address breaks, with no warning at import time. Categories and tags cause a similar problem: two similar but differently named taxonomies (“News” and “New”, for instance) stay separate after import instead of merging.
What causes trouble after a native import
- Duplicate internal identifiers between the two databases, which can create content confusion
- A user present on both sites, duplicated into two separate accounts after import instead of being merged
- Identical slugs automatically renamed (/about-2), which breaks links that pointed to the original URL
- Duplicate categories or tags under slightly different names, fragmenting content instead of grouping it
How I run a merge of two sites
-
Auditing both databases
I spot potential collisions before importing: identical slugs, users sharing the same name, similar categories under different names.
-
Choosing the host site
I decide which of the two sites acts as the host and which gets merged into it, usually the one with more indexed content or higher traffic.
-
Importing on a test environment
The export-import happens first on a copy, never directly on the live host site.
-
Manually merging duplicate taxonomies
After import, I merge or rename by hand any categories and tags that describe the same thing under different names.
-
Redirecting changed URLs
I set up 301 redirects for every URL of the absorbed site that changed, particularly those automatically renamed by WordPress.
-
Final switch
The merged site goes live once content has been checked and redirects are in place.
Related reading
-
Migrating without losing your rankings
The detail on redirects needed to preserve existing SEO.
-
WordPress and WooCommerce hub
Other WordPress and WooCommerce work I handle.
-
Backing up your shop before any work
The backup to make before starting a site merge.
-
Understanding permalinks
Useful for understanding how WordPress handles slugs and their conflicts.
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.