Skip to content
Operations guideUpdated 11 October 2026

WordPress migration

How to Migrate a WordPress Site Without Losing URLs or Orders

A WordPress migration is a cutover, not a plugin demo. Choose the method that matches the site, copy files and the database as a pair, rewrite URLs safely, and keep the old server until the destination is accepted.

Published
Editorial update

What this page actually checked

A sitewide claim that every product is tested is weaker than the record on the article. Collective bylines stay when the newsroom owns the page. We do not invent named testers to decorate schema.

Responsible
Editorial Staff
Relevant experience
Operations desk. This page is a cutover method, not a host advertisement.
Product version in scope
Host-assisted, plugin package, and manual files-plus-database paths current as of 11 October 2026
Facts checked
11 October 2026
Method
Compared the three real move methods, the inventory that must travel, and the acceptance checks before DNS cutover. Restore proof lives on the backup guide.
Limitations
No new migration lab on a named store. Plugin edition limits change. Confirm the destination host and plugin caps before you start.

Choose the method first

Do not start by shopping hosts in this article. If you still need a destination, use the WordPress hosting guide and come back. The three methods below are the actual decision.

Host-assisted migration

Use when: The destination host offers a real migration service and the site is a normal WordPress install.

What is true: Many managed hosts list free or paid migration. Confirm file, database, email, and DNS ownership before you start.

Watch: A “free migration” can still miss cron jobs, redirects, object storage, or a headless frontend.

Plugin package

Use when: You need a portable archive and the site is small or medium enough for the chosen edition.

What is true: Duplicator, All-in-One WP Migration, and WPvivid package files plus the database. Edition limits and upload caps differ.

Watch: Free editions often fail on large uploads folders. Premium migration features are not the same as a tested restore.

Manual files + database

Use when: The site is large, customized, or the dashboard is unavailable.

What is true: You copy files, export MySQL/MariaDB, import on the destination, then rewrite URLs with a serialized-safe tool.

Watch: Plain search-replace in a text editor can break serialized options. DNS cutover without a hosts-file rehearsal creates a duplicate public site.

Before any copy

Inventory the real site

A plugin that zips public_html is not a complete plan. Write down what a restore would miss. WPArena itself is a useful example: the public site is a Faust/Next.js frontend. Restoring only the WordPress database would not recreate the live pages.

  • Database and all plugin tables, not only posts
  • Uploads, theme files, must-use plugins, and custom code
  • Cron jobs, queues, and scheduled events
  • Redirects, TLS certificates, and DNS owners
  • Email, transactional mail, and DNS records that send mail
  • Payment webhooks, analytics, and object storage
  • A separate frontend, CDN, or search index
  • Administrator accounts, billing, and domain lock status

Plugin path

Use a package tool only after the edition fits

Feature lists go stale. Check the current free/pro split, upload limit, and restore path on the vendor site the day you migrate. The names below are starting points, not scores.

ToolUseful forConfirm before you rely on it
DuplicatorPortable package and installerPackage size, installer edition, and scan warnings
All-in-One WP MigrationSimple export/import on smaller sitesImport size cap on the free edition
WPvividBackup plus migration workflowsRemote storage and current patched release
UpdraftPlus / Jetpack BackupSites that already back up remotelyWhether migration is included in your license

Manual path

Copy files and the database as one unit

  1. 1. Preserve the source. Take a files-and-database backup and store it outside the old account. See the backup guide.
  2. 2. Build the destination empty. Create the database and matching PHP version. Do not point public DNS yet.
  3. 3. Copy files, including hidden ones. Bring wp-content, .htaccess or nginx rules, and must-use plugins.
  4. 4. Import the database. If the dump is too large, use the host’s import tool or split the file. Match collation.
  5. 5. Point wp-config.php at the new database. Do not paste credentials into a public ticket.
  6. 6. Rewrite URLs with a serialized-safe tool. Prefer WP-CLI search-replace or a migration plugin that understands serialized options. Do not run a blind find-and-replace on the SQL file in a text editor.
  7. 7. Rehearse on a hosts-file or preview URL. The preview must not be indexable as a second public copy.
  8. 8. Flush permalinks and test the journeys that matter. Homepage, wp-admin, images, forms, checkout, cron, and email.
  9. 9. Cut DNS only after acceptance. Keep the old server until the rollback window ends.

Acceptance

Do not delete the old server because the homepage loads

A client handoff should separate hosting ownership, billing, administrator accounts, domain access, and support. After the final sync, verify public pages, wp-admin, images, forms, email, search, scheduled jobs, checkout, canonicals, and redirects.

If the destination is broken, use the troubleshooting recovery order instead of retrying the same import.

FAQ

Migration questions

Can I migrate a WordPress site for free?

Yes, if you use a host migration offer, a free plugin edition that actually fits the site size, or a manual move. Free does not mean risk-free. You still need a backup, a URL rewrite that understands serialized data, and an acceptance check.

Should I pick a host before I migrate?

Yes. Build the destination first. Compare backup restore, PHP version, storage, and email on the new host before you copy production data. Our hosting guide separates Pakistan-market and global hosts instead of treating one list as universal.

What must I inventory before the copy?

Files, database, uploads outside wp-content/uploads, must-use plugins, cron jobs, redirects, TLS, email, object storage, payment webhooks, and any separate frontend. A WordPress database restore does not rebuild a headless Next.js site.

How do I avoid losing WooCommerce orders?

Do not treat the first copy as the final cutover. Freeze or reconcile orders placed after the last sync. Keep the old server until the destination passes checkout, email, and stock checks.