Title: MigrateMate – Bulk Content Migration, Import and Export
Author: kathan742
Published: <strong>September 14, 2026</strong>
Last modified: September 14, 2026

---

Search plugins

![](https://ps.w.org/migratemate-bulk-content-migration-import-export/assets/banner-
772x250.png?rev=3693890)

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://ps.w.org/migratemate-bulk-content-migration-import-export/assets/icon-
256x256.png?rev=3695609)

# MigrateMate – Bulk Content Migration, Import and Export

 By [kathan742](https://profiles.wordpress.org/kathan742/)

[Download](https://downloads.wordpress.org/plugin/migratemate-bulk-content-migration-import-export.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/migratemate-bulk-content-migration-import-export/#description)
 * [Reviews](https://wordpress.org/plugins/migratemate-bulk-content-migration-import-export/#reviews)
 *  [Installation](https://wordpress.org/plugins/migratemate-bulk-content-migration-import-export/#installation)
 * [Development](https://wordpress.org/plugins/migratemate-bulk-content-migration-import-export/#developers)

 [Support](https://wordpress.org/support/plugin/migratemate-bulk-content-migration-import-export/)

## Description

MigrateMate moves a WordPress site, or any part of one, to another WordPress site.
You pick what to move, click once, and it arrives on the other side complete: images
downloaded and re-attached, post IDs remapped, internal links rewritten to the new
domain, and every relationship intact.

Because both ends are WordPress, there is **no field mapping to configure**. ACF
repeaters, WooCommerce variations, taxonomy hierarchies, navigation menus and SEO
meta all map themselves.

#### Full Site Migration

One bundle carries the whole site:

 * Every post of the selected type(s) — pages, posts, products, and any custom post
   type
 * All media referenced by that content, deduplicated across the bundle
 * Navigation menus, with items re-linked on the destination
 * The complete taxonomy and term tree, including terms not currently in use
 * ACF Options Page fields (site-wide and global data)
 * **Site settings**: title, tagline, front page and posts page, permalink structure,
   reading, discussion, media and date settings
 * **Widgets**: every widget instance and its sidebar placement

Each of those is a separate opt-in checkbox at import time, so you can take the 
content and leave the settings, or vice versa.

#### Bulk bundle export

 * Export **any number of posts into one ZIP** — 10 or 10,000
 * “Export ALL as Bundle” — an entire post type in one click
 * Staged processing with live progress: a few items per request, so no request 
   ever runs long enough to time out
 * Media deduplicated across the whole bundle — a shared image is stored once

#### Bulk bundle import

 * Upload a bundle ZIP and see every item listed, with a conflict check, before 
   anything is written
 * **Three import modes:** override existing (update in place, matched by slug or
   SKU), skip existing, or always create new
 * One item per request — no timeouts on large imports
 * Per-item live results: imported, updated, skipped or failed, each with a link
   to the result

#### Direct site-to-site migration

 * No ZIP needed — content moves server to server over an authenticated REST endpoint
 * Bulk queue with per-item retry
 * Conflict preflight before anything is written

#### CSV export and import & Cross-Platform Migration

 * **Migrate blog content from any CMS or platform**: Import CSV exports directly
   from Shopify, Wix, Squarespace, Ghost, Medium, Webflow, Blogger, or custom CMS
   platforms straight into WordPress posts or CPTs.
 * **Auto-Header Matching**: Automatically detects platform headers (`Handle`, `
   Body`, `HTML`, `Cover Image`, `Tags`, `Categories`, `Author`, `Date`, etc.) and
   maps them to WordPress fields.
 * **Featured Image Auto-Sideloading**: Featured Image URLs in CSVs are automatically
   downloaded, saved to the Media Library, and attached to imported posts.
 * **Spreadsheet-style bulk editing**: Export posts, pages, or custom post types
   to CSV for quick bulk updates in Excel or Google Sheets.
 * **Column picker & suggested mapping**: Select standard fields, taxonomies, ACF
   fields, or any plugin meta, with suggested mapping on import.
 * Correct CSV escaping throughout, and formula-injection protection on export.

#### What travels with every post

 * Full content, excerpt, status, hierarchy (parent resolved by slug), menu order,
   publish date and author
 * Every image: content images, galleries, featured image, srcset variants, Gutenberg
   block IDs
 * **ACF**: field groups and values — repeaters, flexible content, galleries, relationships
 * **WooCommerce**: pricing, stock, attributes, variations, product gallery, SKU
   matching
 * All taxonomies, with parent and child hierarchy preserved
 * SEO meta: Yoast, Rank Math, SEOPress and AIOSEO, including OG and Twitter image
   remapping
 * The page-template assignment
 * Automatic old-URL to new-URL replacement in content and in every meta value

#### What MigrateMate deliberately does not do

Being explicit about the boundaries, because they are design decisions rather than
gaps:

 * **It does not write files into your theme or plugins.** Page-template _assignments_
   migrate; template _files_ do not. A template file is executable PHP owned by 
   your theme, and anything a plugin writes into a theme folder is lost on the next
   theme update. If the destination theme lacks a template, the import still succeeds
   and the report names the file to add.
 * **It does not change your active theme, or install themes or plugins.** A theme
   difference between the two sites is reported, never forced.
 * **It does not copy credentials.** API keys, licence keys, SMTP passwords and 
   payment gateway secrets are excluded from every export, so they never end up 
   inside a bundle ZIP.
 * **It does not touch your site address or admin email**, which would take the 
   destination site offline or lock you out.
 * **It is not a backup tool.** It does not copy the database wholesale or move 
   the WordPress installation itself.

#### Built to your host’s limits, not around them

MigrateMate never changes your server’s PHP configuration. It does not raise `memory_limit`,
does not extend `max_execution_time`, and does not alter output compression. Instead
every long operation is split into small batches driven one request at a time, so
a site with modest PHP limits can still migrate tens of thousands of items.

#### Where MigrateMate stores files

Temporary bundles and CSV files are written to a single folder inside your uploads
directory, resolved at runtime with `wp_upload_dir()` — never a hard-coded path,
and never inside `wp-content`, the plugin folder, a theme, or WordPress core. The
folder denies direct HTTP access, downloads are served through an authenticated 
and nonce-checked endpoint, and files are deleted once delivered. Deleting the plugin
removes the folder and every option it created.

#### WP-CLI

 * `wp migratemate export --all [--type=product] [--output=/tmp/site.zip]`
 * `wp migratemate export --ids=12,15,88`
 * `wp migratemate import bundle.zip [--mode=new|override|skip] [--menus] [--no-
   sideload]`

#### Safety

 * Nothing is overwritten without an explicit opt-in
 * Migration reports log every image, field and mapping for every run
 * API key authentication using `hash_equals()`, and header-only auth so a key cannot
   leak through access logs
 * SSRF protection on every outbound request: a destination host that resolves to
   a private or reserved address is refused
 * Uploaded bundles are validated entry by entry against the expected layout — an
   archive containing a PHP file, a traversal path, or an unexpected folder is rejected
   rather than extracted
 * Meta blocklist prevents sensitive capability keys from being imported

## Screenshots

[⌊Bulk Export Dashboard — filter posts, pages, custom post types, WooCommerce products&
ACF fields with one-click ZIP bundle export.⌉⌊Bulk Export Dashboard — filter posts,
pages, custom post types, WooCommerce products & ACF fields with one-click ZIP bundle
export.⌉[

Bulk Export Dashboard — filter posts, pages, custom post types, WooCommerce products&
ACF fields with one-click ZIP bundle export.

[⌊Bundle Import & Conflict Preflight — item preview with pre-import conflict checking,
slug matching, and three configurable import modes (Override, Skip, Create New).⌉⌊
Bundle Import & Conflict Preflight — item preview with pre-import conflict checking,
slug matching, and three configurable import modes (Override, Skip, Create New).⌉[

Bundle Import & Conflict Preflight — item preview with pre-import conflict checking,
slug matching, and three configurable import modes (Override, Skip, Create New).

[⌊CSV Import/Export & Cross-Platform Migration — auto-header matching for Shopify,
Wix, Squarespace, Ghost, Medium, Webflow, Blogger, and custom CMS.⌉⌊CSV Import/Export&
Cross-Platform Migration — auto-header matching for Shopify, Wix, Squarespace, Ghost,
Medium, Webflow, Blogger, and custom CMS.⌉[

CSV Import/Export & Cross-Platform Migration — auto-header matching for Shopify,
Wix, Squarespace, Ghost, Medium, Webflow, Blogger, and custom CMS.

## Installation

 1. Install and activate MigrateMate on **both** sites, the source and the destination.
 2. **ZIP flow:** on the source site go to MigrateMate  Export, select your items, 
    and click “Bundle ZIP”. On the destination site go to MigrateMate  Import, upload
    the ZIP, choose an import mode, and click “Import All”.
 3. **Direct flow:** copy the API key from the destination site (MigrateMate  Settings).
    On the source site click “Direct” on any row, or select several items and click“
    Direct Migrate Selected”.
 4. **Full site:** on the source site use “Export ALL as Bundle”. On import, tick the
    site settings, widgets, menus and taxonomy options you want applied.

Requires the PHP `zip` extension for ZIP-based migration. Direct site-to-site migration
and CSV import/export work without it.

## FAQ

### Does it overwrite my existing content?

Only if you choose “Override existing”. The preview shows exactly what already exists
before anything is written, and the “Skip existing” and “Always create new” modes
never modify an existing post.

### Do I need to map fields the way CSV importers require?

Not for ZIP or direct migration. Both ends are WordPress, so post fields, meta, 
ACF and WooCommerce data map automatically. The CSV path does offer column mapping,
because a spreadsheet has no inherent field structure — and it suggests the mapping
for you.

### Are images transferred?

Yes. Images are fetched from the source URL first; if the source is not publicly
reachable they are read from the bundle instead. Media that already exists on the
destination is detected and reused rather than duplicated.

### Does it work with custom post types?

Yes. Every registered public post type is supported automatically, and you can migrate
content into a _different_ post type on the destination — for example importing 
blog posts as a “Case Study” CPT — with taxonomy mapping to match.

### Does it migrate site settings and widgets?

Yes, as an opt-in part of a full site migration: site title and tagline, front page
and posts page, permalink structure, reading, discussion, media and date settings,
plus every widget and its placement. Your site address, admin email, active theme
and active plugins are never changed.

### Does it migrate users?

Not as a user list. Post authorship does migrate: an author is matched on the destination
by email, then login, then display name. If no match exists, MigrateMate can create
a least-privilege “Author” account so the correct byline appears — a per-import 
checkbox you can switch off.

### Does it migrate my theme?

No. MigrateMate migrates content and configuration, not theme or plugin files. Activate
the same theme on the destination before importing; if the themes differ, the import
still completes and the report explains what to expect.

### Will it work on my host?

It is built for restrictive hosting. It never changes PHP limits, writes only inside
your uploads folder, and uses the WordPress filesystem API so hosts using FTP or
SSH transports work normally.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“MigrateMate – Bulk Content Migration, Import and Export” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ kathan742 ](https://profiles.wordpress.org/kathan742/)

[Translate “MigrateMate – Bulk Content Migration, Import and Export” into your language.](https://translate.wordpress.org/projects/wp-plugins/migratemate-bulk-content-migration-import-export)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/migratemate-bulk-content-migration-import-export/),
check out the [SVN repository](https://plugins.svn.wordpress.org/migratemate-bulk-content-migration-import-export/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/migratemate-bulk-content-migration-import-export/)
by [RSS](https://plugins.trac.wordpress.org/log/migratemate-bulk-content-migration-import-export/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release on WordPress.org.
 * Full Site Migration: content, media, menus, the complete taxonomy tree, ACF Options
   Pages, site settings and widgets, each opt-in at import time.
 * Cross-Platform Blog Migration via CSV: auto-header matching for Shopify, Wix,
   Squarespace, Ghost, Medium, Webflow, Blogger, and custom CMS.
 * Featured Image Auto-Sideloading: downloads image URLs from CSV and attaches as
   WordPress featured images.
 * Bulk bundle export and import, staged so no single request runs long enough to
   time out.
 * Import modes: override existing, skip existing, always create new.
 * Direct site-to-site migration over an authenticated REST endpoint, with conflict
   preflight.
 * CSV export and import with a column picker, suggested mapping, correct escaping
   and formula-injection protection.
 * Post type override with taxonomy mapping — migrate content into a different destination
   post type.
 * Category and term filtering on export.
 * Full ACF, WooCommerce, taxonomy, media and SEO meta support.
 * Author migration with optional least-privilege account creation on the destination.
 * Migration reports for every run.
 * WP-CLI commands: `wp migratemate export` and `wp migratemate import`.

## Meta

 *  Version **1.0.0**
 *  Last updated **23 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **6.7.7**
 *  PHP version ** 7.2 or higher **
 * Tags
 * [acf](https://wordpress.org/plugins/tags/acf/)[export](https://wordpress.org/plugins/tags/export/)
   [import](https://wordpress.org/plugins/tags/import/)[migration](https://wordpress.org/plugins/tags/migration/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/migratemate-bulk-content-migration-import-export/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/migratemate-bulk-content-migration-import-export/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/migratemate-bulk-content-migration-import-export/reviews/)

## Contributors

 *   [ kathan742 ](https://profiles.wordpress.org/kathan742/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/migratemate-bulk-content-migration-import-export/)