Migrate any website and actually know it worked.
Move files, databases, email and whole WordPress sites between servers — then SiteShift checksums every file, counts every row, and health-checks the result. No more hoping a migration went fine.
- Files checksum manifest — 1,204 files match by MD5
- Database row counts — 48,210 rows, table-for-table
- URL search-replace — 0 source URLs remaining
- HTTP health check — 200 OK, no PHP/DB errors
Everything a site is made of
One tool for the whole move — pick the pieces, or migrate a full WordPress site in a single job.
Files
rsync over SSH with accurate transfer stats, optional --delete, and live progress.
Databases
Streamed MySQL/MariaDB dump → import with table-prefix rewrite and serialized-safe URL replace.
Full IMAP mailbox transfer via imapsync — all folders or INBOX only, duplicates skipped.
FTP / FTPS
For hosts without shell access — explicit/implicit TLS, passive mode, recursive transfers.
WordPress
Migrate a whole WP site over HTTP with our connector plugin. No SSH, no FTP, no fuss.
Mix & match in one job — e.g. files + database with a domain change.
Start a migration →The difference
Most tools say “done”. SiteShift proves it.
Every migration ends with real checks, not a hopeful green tick. If a file is missing, a row count is off, or the destination throws a 500, you'll know immediately — with the receipts.
- File checksum manifests — MD5 every file, compare source vs destination.
- Row-for-row table counts — not just “tables exist”.
- Serialized-safe URL rewriting — for WordPress domain changes that don't break.
- HTTP health check — loads the migrated site and scans for PHP/DB errors.
Three steps to a clean cutover
Connect your servers
Add SSH, FTP, IMAP or WordPress connections. Generate keys in-app, test before you save — credentials encrypted at rest.
Configure the migration
Pick what moves — files, database, email, or a full site. Browse remote paths, auto-discover WordPress DB creds, set search-replace.
Run & verify
Watch live logs stream in. SiteShift checksums every file, counts every row, and pings the migrated site — then tells you it actually worked.
No SSH? No problem.
Install the free SiteShift Connector plugin on a WordPress site and migrate it over HTTP — wp-content and the database stream in bounded chunks, with URLs rewritten on the way. Perfect for managed hosts where you only have wp-admin.
- ① Activate the connector on both sites
- ② Paste each site URL + API key into SiteShift
- ③ Run — files, DB and URLs handled for you
Live progress
Logs and progress stream in live as the migration runs — no refreshing.
Scheduling
Run now or queue it for a low-traffic window. Webhooks fire when it's done.
Encrypted credentials
Passwords and keys are AES-256-GCM encrypted at rest, never returned in the clear.
Safe by default
A pre-run summary spells out every destructive action. Cancel mid-flight anytime.
CMS auto-discovery
Reads wp-config.php / Joomla config to fill in DB credentials and table prefixes.
Built for teams
Multi-user with admin approval; every connection and job scoped to its owner.
Questions, answered
Everything you'd want to know before pointing it at a real site.
Do I need SSH access to the servers?
No. Use SSH or FTP for full control, or install our free WordPress connector plugin and migrate a whole site over HTTP — ideal for managed hosts where you only have wp-admin.
How do you know a migration actually worked?
Every run ends with real checks: MD5 checksum manifests for files, row-for-row table counts for the database, and an HTTP health check that loads the migrated site and scans for PHP/DB errors.
Will my WordPress URLs break after a domain change?
No. SiteShift does serialized-safe search-replace — rewriting URLs everywhere, including inside PHP-serialized data — so widgets and plugin settings keep working.
Is it safe to run against a production site?
A pre-run summary spells out every destructive action before you commit, you can cancel mid-flight, and nothing in the destination is deleted unless you explicitly opt in.
Where are my credentials stored?
Passwords and SSH keys are encrypted at rest with AES-256-GCM and are never returned in API responses.
Can I schedule migrations?
Yes — run now or queue it for a low-traffic window. A webhook fires when the migration finishes or fails, so you don't have to watch it.
Migrate with confidence.
Stop babysitting migrations and pasting errors around. Move it, verify it, ship it.