How WPMove Migration Works

Three automated phases via the WordPress REST API — no FTP, no database export, no downtime.

The migration pipeline

WPMove orchestrates the migration in the background using Action Scheduler — the same engine behind WooCommerce. It resumes automatically after a timeout, so even large sites migrate without manual intervention.

Source site WordPress REST API reads posts & media WPMove ① Posts paginated REST import ② Media parallel download ③ Rewrite URLs source → target Action Scheduler — runs in background Target site WordPress REST API receives posts & media Provide credentials URL + user + app password 3 automated phases No timeout — resumes if interrupted Content arrives IDs remapped, URLs rewritten

Phase 1 — Posts & pages

WPMove reads posts from the source site page by page via the WordPress REST API. Each post is imported to the target with its title, content, excerpt, taxonomies, featured image, and publication date. Standard WordPress fields exposed via the REST API are also transferred — custom fields from ACF, Elementor or SEO plugins are not migrated by default. Posts already imported (tracked by ID mapping) are skipped automatically.

Phase 2 — Media files

After all posts are imported, WPMove processes the media queue in parallel batches of 5. Each file is downloaded from the source, uploaded to the target, and registered in the WordPress media library with its original upload date and folder. The ID mapping table ensures that if a media file was already imported, it is reused rather than uploaded again. Media migration is available on paid plans (Starter, Pro, Unlimited) — the free plan migrates posts only, with no media transfer.

Phase 3 — URL rewriting

Once media is imported, WPMove scans each post’s content and replaces all URLs pointing to the source site with the correct target URLs. This covers inline images, links to uploaded files, and gallery blocks. Only posts where something actually changed are updated, keeping API calls minimal.


Migration options

Skip existing content

Posts and media already present on the target (detected by ID or slug) are skipped. Re-run a migration safely at any time.

Overwrite media

Replace existing media files on the target with fresh copies from the source. Useful after the source content has been updated.

Target specific posts

Use the post picker to select individual articles or pages by title. Only those items — and their media — will be migrated.

Retry failed items

After a migration completes, failed posts and media can be retried in one click — without reprocessing already-successful items. Available on Pro and Unlimited plans.

Ready? It takes two minutes to set up.