CodePoint Server-to-Server Migration
CodePoint Server-to-Server Migration moves a WordPress site from one server to another with the destination driving the process. This matters when: the new site sits on a temporary IP address before you point the domain, your own upload bandwidth is limited, the hosts involved offer no SSH/WP-CLI ac
About this tool.
CodePoint Server-to-Server Migration moves a WordPress site from one server to another with the destination driving the process. This matters when:
- the new site sits on a temporary IP address before you point the domain,
- your own upload bandwidth is limited,
- the hosts involved offer no SSH/WP-CLI access,
- shared-hosting execution limits kill long-running processes.
All transfer happens server-to-server in short resumable chunks — nothing large ever passes through your own connection, and no single request runs long enough to hit a typical timeout.
Features
- One-time, expiring connection keys — the old site issues a key valid for 72 hours. Access is granted only by a constant-time comparison of the secret itself, backed by per-IP and global lockouts. No key exists until you create one, you can revoke it at any moment, and it is destroyed automatically when a migration completes or is abandoned.
- Direct file streaming — files transfer straight from the old server into place on the new one, in resumable 16MB batches. No archive is built, no extraction step runs, and no double disk space is needed on either side.
- Chunked everything — scanning, transfer, database export, and import all run in ~6-second increments. Pause, close the tab, resume — even mid-file.
- Safe URL rewriting — serialized PHP data is unserialized, replaced recursively, and re-serialized; JSON-escaped URL variants are covered; table prefix differences are reconciled (capabilities, user_roles).
- Staged, atomic switchover — the database imports into staging tables while the live site keeps working. Finalize swaps every table in a single statement, so either the whole switch happens or nothing does, and your previous tables are kept as a rollback backup (prefixed cps2s_old_ after your own table prefix, e.g. wp_cps2s_old_options).
- Change domain name — after your domain points to the new site, run a chunked, serialized-safe search/replace to swap the temporary URL for the final domain across pages, posts, and settings.
- Pre-flight checks — multisite, WordPress/PHP version mismatches, disk space, plain-HTTP transport, and same-URL mistakes are flagged before anything runs.