How to Migrate a WordPress Site (Manual + Plugin Methods)

To migrate a WordPress site, you copy its files and database from your old host to your new one. The easiest path is your new host's free migration service. If you prefer to do it yourself, a migration plugin handles most of the work; a manual move via FTP and phpMyAdmin gives you full control.

Key takeaways

  • Every WordPress migration moves two things: your files (themes, plugins, uploads) and your database (posts, pages, settings).
  • There are three ways to do it: let your new host migrate for you, use a migration plugin, or move everything by hand.
  • The plugin method suits most people. The manual method is best when a site is large or a plugin will not run on your server.
  • Always back up your site first, and test the new copy before you switch your domain over.
  • Most post-migration errors come from wrong database details or an unchanged site URL, and both are quick to fix.
Disclosure: Some links on this page are affiliate links. If you buy through them, we may earn a commission at no extra cost to you. We only recommend products we believe genuinely help with the problem this page covers. Our guidance stays the same whether or not a link earns anything.

Moving a WordPress site to a new home sounds scary, but it is really just a careful copy-and-paste job. You are taking a working website off one server and setting it up on another so it looks and behaves exactly the same. People do this when they switch hosts for better speed, when they move a site from a test address to a live domain, or when they merge a project onto their main account. This is one part of the wider topic covered in our guide to moving a website; here we focus only on WordPress. Take it one step at a time and keep your old site online until the new one is confirmed working, and the whole thing is low-risk.

The three ways to migrate a WordPress site

Before you touch anything, it helps to know your options. Every WordPress migration falls into one of three approaches. They all reach the same result; they differ in how much of the work you do yourself. There is no single right answer here — the best choice depends on how big your site is, how hands-on you want to be, and what tools your new host already gives you. Read all three below, then match one to your situation.

a) Your host's free WordPress migration (easiest)

A migration service is a free move done for you by the company you are moving to. Many hosts will pull your existing site across if you give them your old login details, or they provide a one-click tool that does it inside their dashboard. This is the least hands-on route and a good fit if you are not comfortable with files and databases. The trade-off is that you depend on the new host's tool and support queue, and some hosts limit how many free migrations they include.

b) A migration plugin (the easiest do-it-yourself route)

A migration plugin is an add-on you install inside WordPress that packs up your whole site into one file, then unpacks it on the new server. Popular examples include Duplicator, All-in-One WP Migration, and Migrate Guru. Each works a little differently, but the idea is the same: export on the old site, import on the new one. This is the sweet spot for most people because it handles the fiddly database work for you while still keeping you in control. Very large sites can hit file-size limits on the free versions, which is the main thing to watch for.

c) Manual migration (full control)

A manual migration means you copy the files and the database yourself, using tools such as FTP and phpMyAdmin. It takes more steps and a little more confidence, but it always works, it has no file-size cap, and it teaches you exactly how a WordPress site fits together. Choose this when a plugin refuses to run, when your site is too big for the free plugin tiers, or when you simply want to understand the moving parts.

ApproachBest forSkill needed
Host migration serviceBeginners who want it done for themLow
Migration pluginMost sites; a balance of ease and controlLow to medium
Manual migrationLarge sites, or when plugins will not runMedium
The rest of this guide walks through the plugin method and the manual method in full. If your new host offers a free migration, ask their support team first; it may save you from doing either.

How to migrate WordPress with a plugin (step by step)

This is the route most people should take. The steps below use the standard export-then-import pattern that Duplicator, All-in-One WP Migration, and Migrate Guru all share, so you can follow along whichever one you pick. Read the whole list once before you begin.

  1. Back up first. Make a full copy of the site before you change anything, so you can restore it if a step goes wrong. Follow our website backups guide to save both your files and your database somewhere safe.
  2. Install the migration plugin on the OLD site and create a package. In your current WordPress dashboard, go to Plugins → Add New, install your chosen migration plugin, and use its export or "create package" option. It bundles your whole site — files and database together — into one downloadable file. Save that file to your computer.
  3. Install a fresh WordPress on the NEW host. On the server you are moving to, set up a clean, empty WordPress install. If you have not done this before, our guide to installing WordPress covers every step. You need this blank site ready to receive the import.
  4. Install the same plugin on the new site and import the package. Log in to the fresh WordPress, add the same migration plugin, and choose its import option. Upload the package file you saved in step 2. The plugin unpacks your content over the blank install, replacing it with your real site.
  5. Update the site URLs if the domain is changing. If your web address is staying the same, skip this. If it is changing, most migration plugins offer a search-and-replace step during import so every link points to the new address. Set the old address and the new one when prompted.
  6. Test the new site on a temporary URL. Before you send visitors to it, open the new site on a temporary or preview address that your host provides. Click through your pages, check images, and try logging in, so you catch any problems while the old site is still live.
  7. Point DNS to the new host. Once the new copy looks right, update your domain's settings so it loads from the new server. Our guide to pointing a domain shows how. Changes can take a few hours to spread, so leave the old site running until the new one fully takes over.
Keep your old hosting active for a week or so after the switch. It costs little and gives you a safety net if you spot something that needs the original files.

How to migrate WordPress manually (step by step)

The manual method has more steps, but nothing here is difficult once you see how the pieces connect. You will use two tools: FTP (or your host's File Manager) to move files, and phpMyAdmin, a web tool for handling your database — the store that holds your posts, pages, and settings. Set aside an uninterrupted block of time, keep the database name and password from your new host close by, and work through the steps in order rather than jumping ahead.

  1. Download all files from the old site. Connect to your current host with an FTP program or open its File Manager, and download the entire WordPress folder to your computer. This includes the wp-content folder (your themes, plugins, and uploads) and the wp-config.php file. Do not skip anything.
  2. Export the database via phpMyAdmin. Open phpMyAdmin from your old host's control panel, select your site's database, and choose Export → SQL. This saves your content as a single .sql file. Keep it with your downloaded files.
  3. Create a new database and user on the new host. In the new host's control panel, create a fresh, empty database and a database user, then attach the user to the database with full permissions. Write down the database name, username, and password — you will need them shortly.
  4. Upload the files to the new server. Using FTP or File Manager on the new host, upload the WordPress files you downloaded in step 1 into the correct web folder (often called public_html). Wait for every file to finish transferring.
  5. Import the database via phpMyAdmin. Open phpMyAdmin on the new host, select the empty database you made in step 3, choose Import, and upload the .sql file from step 2. This fills the new database with your content.
  6. Edit wp-config.php with the new database details. Open wp-config.php on the new server and update four values so WordPress can find its data: DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST (usually localhost). Use the exact name, user, and password from step 3.
  7. Run a search-and-replace if the domain changed. If your web address is different on the new host, the old address is still saved throughout your database. Use a safe search-and-replace tool (many hosts and free scripts offer one) to swap every http://oldsite.com for https://newsite.com. Skip this step if the address is unchanged.
  8. Point DNS and test. Update your domain to load from the new server, then open the site and click through it. Give DNS changes time to spread, and keep the old site up until the new one is confirmed working.
Make a copy of wp-config.php before you edit it. A single wrong character in the database details will stop the site from loading, and a backup lets you undo the change in seconds.

Common problems after migrating (and how to fix them)

If something looks off right after a move, do not panic. Almost every post-migration issue comes down to one of three causes, and each has a clear fix.

"Error establishing a database connection"

This message means WordPress cannot reach its database, and after a migration the reason is nearly always wrong details in wp-config.php. Double-check the database name, user, password, and host you entered in step 6 of the manual method. Our full walkthrough on the error establishing a database connection covers each cause and fix.

Mixed content or broken links after an HTTPS or URL change

Mixed content happens when a secure https page still loads some images or scripts over the old, insecure http address, so browsers show a warning or a broken padlock. This usually appears when you switch domains or move to HTTPS without a full search-and-replace. Our guide to fixing mixed content warnings shows how to update the remaining links.

A blank white screen

If the site loads nothing but a blank page — the white screen of death — a theme, plugin, or memory limit is usually to blame after a move. Our guide to the WordPress white screen of death walks through turning off plugins and spotting the cause.

Common mistakes to avoid

The costliest mistake is switching your domain to the new server before you have tested the new site. If the copy is broken, real visitors land on a broken page. Always test on a temporary address first, and keep the old site live during the switch.

A few slip-ups account for most failed migrations. Watch for these:

  • Forgetting the database. Copying only the files leaves you with an empty-looking site. The database holds your posts, pages, and settings, so it must move too.
  • Wrong wp-config.php details. A mistyped database name, user, or password triggers the "error establishing a database connection" message. Copy and paste the values rather than typing them.
  • Skipping search-and-replace after a domain change. If you change addresses but leave the old URL in the database, links and images break. Run the replace step every time the domain changes.
  • Switching DNS before testing. Point your domain last, only after the new site is confirmed working on a temporary URL.

Frequently asked questions

What's the easiest way to migrate a WordPress site?

The easiest way is to let your new host migrate the site for you. Many hosts offer a free migration service or a one-click tool that pulls your existing site across with almost no hands-on work. If you prefer to do it yourself, a migration plugin is the next simplest option.

Can I migrate WordPress for free?

Yes. All three approaches can be free. Host migration services are usually included at no cost, the free versions of popular migration plugins handle most small and medium sites, and the manual method uses free tools such as FTP and phpMyAdmin. You may only need to pay if your site is very large or you want a done-for-you service.

Do I need a plugin to migrate WordPress?

No. A plugin makes the job easier, but you can migrate entirely by hand using FTP and phpMyAdmin, or let your new host do it. The manual method has no file-size limit, which is why large sites sometimes skip plugins altogether.

Will migration break my site?

It should not, if you back up first and test before switching your domain. Keep the old site online during the move so nothing goes offline. Most problems that do appear — a database error, mixed content, or a blank screen — are quick to fix and reversible.

How do I move WordPress to a new domain?

Follow the same steps as a normal migration, then run a search-and-replace in the database to swap every mention of the old web address for the new one. Both migration plugins and manual tools can do this. Skipping it leaves broken links and images pointing at the old domain.

How long does a WordPress migration take?

The copying itself often takes under an hour for a typical site. After that, DNS changes that point your domain to the new server can take anywhere from a few minutes to a full day to spread worldwide, which is why you keep the old site running in the meantime.

Should I migrate my site or start fresh?

Migrate if you want to keep your existing content, design, and settings exactly as they are. Start fresh only if you were planning a full rebuild anyway. Migrating is almost always faster than recreating a working site from scratch.

Summary

Migrating a WordPress site comes down to moving two things — your files and your database — from the old server to the new one. Pick the approach that fits your comfort level: a free host migration if you want it done for you, a migration plugin for an easy do-it-yourself move, or a manual copy for full control. Whichever you choose, back up first, test on a temporary URL, and point your domain last. If your move is really about leaving a slow or unreliable server, read our wider guide to migrating a website next to plan the switch end to end.

If your host is the reason you're moving, the choice of where you land can save you all the work above. Many hosts include a free WordPress migration or a one-click migration plugin, so they move the site for you instead of you doing it by hand. When you are comparing where to go, it is worth checking whether a provider like Hostinger migrates WordPress for you, so you can weigh that against doing it yourself. Compare plans to see whether it fits your situation. If valid at the time of purchase, new users may also be able to apply a coupon such as SPECIAL15 or SPECIAL10, subject to Hostinger's terms.

See Hostinger WordPress hosting →

Affiliate disclosure: if you sign up through this link we may earn a commission, at no extra cost to you. How this works.

When a free migration won't cover you. Hands-off migration offers generally assume a fairly standard site. Multisite networks, heavily customised WooCommerce stores, sites depending on unusual PHP extensions, and anything mid-redesign are often excluded or need manual work — confirm before you rely on it. And if hosting is not what is wrong with your site, migrating will not fix it. If you are moving for managed WordPress specifically, weigh WP Engine, Kinsta, SiteGround and Cloudways too: they cost more, and they are more specialised.

References

  • WordPress.org — Moving WordPress (official documentation on relocating a site's files and database).
  • WordPress.org — Editing wp-config.php (official reference for database constants).
  • WordPress.org Plugin Directory — listings for Duplicator, All-in-One WP Migration, and Migrate Guru.
Bitrich777 Hosting Team
About the author

The editorial team behind the Bitrich777 Hosting Help Center — practical, tested guides on web hosting, WordPress, servers, DNS, SSL, email, security and migration. Every walkthrough is reproduced on a live host before it is published.

Spotted an error? Tell us