BACK TO DIRECTORY

CodePoint Server-to-Server Migration

by thecodepoint

0.0
(0 ratings)

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.
  • Security hardened — capability + nonce checks on every request,
    expiring single-use connection keys verified by a constant-time secret
    comparison, brute-force lockout on the transfer endpoints, randomized
    and access-protected work directory, strict file-path and SQL-identifier
    validation.

What it does not do

  • WordPress core files (the destination must already be a working install)
  • Multisite networks
  • wp-config.php and .htaccess

External services

This plugin connects only to the paired WordPress site you configure — the
site whose connection key you paste in. During a migration the new site sends
authenticated requests to the old site’s REST API (namespace codepoint-s2s/v1)
to prepare and stream files and database content. The data transmitted is your
own site content. No data is sent to the plugin author or to any third-party
service.

Privacy

The plugin transfers your site’s files and database between your own two
servers. Temporary work files are stored in a randomized, access-protected
directory inside wp-content/uploads and are removed when the migration finishes
(or when you press Start over). If the old site is served over plain HTTP, the
transfer is not encrypted in transit — the plugin warns you about this before
you start; using HTTPS on both sites is strongly recommended.

This plugin does not track users, does not phone home, and does not load remote
scripts or analytics.

Screenshots

Pick which site this is — the "How to use" panel walks through the three
steps, then you choose OLD site, NEW site, or Change domain name.

Pick which site this is — the "How to use" panel walks through the three steps, then you choose OLD site, NEW site, or Change domain name.

After connecting, a side-by-side comparison shows WordPress, PHP, and
database versions, table prefix, and disk space, with mismatches
highlighted — plus a plain "Migrating from / Migrating to" summary.

After connecting, a side-by-side comparison shows WordPress, PHP, and database versions, table prefix, and disk space, with mismatches highlighted — plus a plain "Migrating from / Migrating to" summary.

Live progress during the copy — files transferred, current file, and a
single progress bar through scanning, copying, and staging the database.

Live progress during the copy — files transferred, current file, and a single progress bar through scanning, copying, and staging the database.

The Finalize step, with a targeted reminder (Elementor-specific, or a
general cache/permalink note) so the site doesn't look broken afterward.

The Finalize step, with a targeted reminder (Elementor-specific, or a general cache/permalink note) so the site doesn't look broken afterward.

The Change domain name tab, with a DNS check and the exact sequence for
moving from a temporary address to the final domain.

The Change domain name tab, with a DNS check and the exact sequence for moving from a temporary address to the final domain.

Plugin Details

Active Installs
0
Total Downloads
128
Version
3.0.4
Requires WP
6.2
Requires PHP
7.4
Tested Up To
7.0.4
Added
2026-08-27
Last Updated
2026-08-27 6:30pm GMT

Ratings

5
0
4
0
3
0
2
0
1
0