How to Migrate from a Self-Hosted WordPress Site to

13 minute read

If you’ve tried self-hosting WordPress, but found it a struggle, and are ready to try instead, this is for you. Notice I said “try”– you can start off by just trying, and if it meets your needs, you can finish the move.
This is the overview of what you’ll need to do:

  1. Setup a site on
  2. Export content from the old site
  3. Import content into the new Site
  4. Point folks to your new site

These are basically the same steps as explains in their short tutorial. Except their tutorial misses a few things: yes it will bring your posts into the new site, but it skips some important details.
So without further ado…

1. Setup a Site

You don’t need to rack your brain wondering if will serve all your needs. Just create a free site there, and try it out. Then you’ll know if you should follow through with the rest of the steps.
But before you go off and do that, an important note:
If your old site uses the JetPack plugin, first sign into using the same account as you used for JetPack. 
(If you’re not sure if your old site used the JetPack plugin, sign into your old site, click “Plugins” and look for it, and if it says it’s “Active”. If it’s not there, or it doesn’t say “Active”, then you don’t have it activated.)
If you do have JetPack activated, follow the instructions under 1.1 Create a Site with your Existing JetPack Account. If not, skip that, and instead follow the instructions under 1.2 Create a New Account and Site on

1.1 Create a Site with your Existing JetPack Account

If you want to move your subscribers over from your old site to the new one, it’s important they both be on the same account (here’s why). So here’s what to do:

wpcom jetpack step 1 sign in
Go to and click “Sign In”

After you've signed in, click
After you’ve signed in, click “My Site”

Then click
Then click “Add New Site”

wpcom jetpack step 4 choose wp
Click “Start Now”

Great, you’ve started making your site. Go to Section 1.3 Setup New WordPress Site.

1.2 Create a New Account and Site on

If your old site didn’t have JetPack on it, then just start creating a new site on and create a new account. Here’s what to do:

wpcom get started
Go to and click “Get Started”

Then, continue below…

1.3 Setup New WordPress Site

These steps are the same regardless of whether you had a JetPack account or not.

Fill in the questionnaire.
Fill in the questionnaire

Now comes choosing a domain. If you think you want to move your old site to, even if you do own the domain already, I would suggest you should initially select the free domain. Why? This way your old site will continue to be alive and well, meanwhile, you can play and tinker on the new site before any visitors arrive at it. Transferring the domain (which is when site visitors will start going to your new site) is actually the last step we want to do, and we’ll get there. But for now, we want to try out and set the site up.
wpcom step 2b choose domain.png
Enter a temporary domain, and choose the free “” option for now. We can switch to a prettier domain once we’ve got it all set up how we want.

Pick a plan
Choose your plan. If you want to have a custom domain though (ie, not have your site end in “”, you’ll at least need the Personal plan)

If you didn’t already have an account, they’ll ask you to create it on the last step. And from here, you can play with using

1.4 Play with Your New Site

You now have a site. Time to figure out if you like it, and if it will meet your needs! I suggest:

  • If you want to stick with your old theme, search to see if it’s available on (it might be a premium theme, require having a Premium plan, or it might not exist on, in which case you’ll need to buy the Business plan and upload it). Alternatively, you’re free to experiment with new themes.
  • Try writing an experimental post. The post-writing interface is different on (it’s code name is “Calypso”, if you care to know). It is meant to be more streamlined, but it’s different. Make sure you’re happy with it. After you’ve written this post, feel free to trash it.
  • Most importantly, you have no plugins on (unless you’re on the Business license), which means there might be some things you could do on your old site that you can’t do on Eg, maybe you could sell products, or view Google Analytics. Well, has quite a few options, but they’re certainly not the same or as flexible. Make sure you can do all the important things you used to do on your old site.
  • Also, if your old site’s plugins stored data, that data might not migrate to Eg., even if you purchase the Business license and upload the plugin onto, there still might be data stuck on your old site.
  • If you have lots of media (eg images, videos, and audio files) on your old site, you may want to double-check will have enough space for them. On your old site, you can install the “My Simple Space” plugin, then go to your Dashboard page. You’ll see the “My Simple Space” widget. The important number is the one next to “uploads”. If it’s more than 3GB, you’ll need to have a paid plan. See the storage limits on the plans here.

But don’t worry about moving all your old posts and pages over. We’ll do that next. For now, just play around with it and verify it meets your needs.

2. Export Content from the Old Site

This is where your old self-hosted WordPress site will export all its old posts, pages, comments, and media into a file you can upload to
This is really easy if you plan on using the same domain for your site as you used to use on your self-hosted site (eg, your old domain was “”, and after you’ve got your new website all setup, it will be the new “”). If so, skip ahead to generating the export file.
But if your site is going to have a different domain (eg, your old domain was “” but you’ll be using a new custom domain called “” or you’ll permanently stick with “”), you should update all the links in your posts before you export your data.

In your current site, you probably have images, and links to other pages and posts on your website right? Well, if your new site is going to have a different domain, all those links will still point to your old website, which I doubt you want. You want to keep people on your new site, especially if you will shut down your old site.
Changing all the image URLs and links one-by-one is tedious, so here’s how to do is all at once: use the “Better Search and Replace” plugin.
Before doing this, it’s probably a good idea to make a database backup of your old site, just in case something goes haywire. (Don’t worry, this is probably the last time you’ll do it, will take care of that once you’ve moved over.) Here’s a good explanation of how to do that.
After you’ve created a backup, here’s how to update the links…

WordPress dashboard, showing plugins page, with an arrow towards
Log into your OLD site, go to the plugins page, and click “Add New”

WordPress plugins page, with an arrow towards
Search for “Better Search Replace”. Click “Install Now” next to it, then “Activate”.

plugins search and replace choose.png
Once activated, click on “Tools”, then “Better Search Replace”

plugins search and replace run 2.png
In “Search for”, enter your old domain, eg “” (no “http” or anything); in “Replace with” enter your new domain, eg “”, and then just select the “wp_posts” table to only update your posts, pages, and media. (You could also select “wp_comments” if you want to update links in comments.) You might want to do a “dry run” first (ie, where nothing in your database is actually changed, it just analyzes your data and says what will happen during a normal run).

Visit a post or page that had a link on it. The link should now send you to your new site (although we haven’t yet brought all the posts and pages into the new site, so that particular page might not yet be setup; that’s fine, be patient.)2.1

2.2 Export Posts, Pages, Media and Comments From Your Old Site

This is where we download the posts, media, and comments from your old self-hosted site into a file, which we’ll later upload to

Admin dashboard, with arrow pointing to
Log into your old site, and click “Tools”, then “Export”

site export all.png
Then just click “Download Export File”, and save it somewhere you can find it in a few seconds.

Once the export file is generated and downloaded, your web browser may ask you if you want to open it, or save it.
JUST SAVE IT. (Your computer won’t know how to open it and will give you errors if you try.)

Ok, now you’ve got the export file. Continue…

3. Import Content Into Your New Site

This is where your new site will get all the blog posts, pages, media, and comments from your old self-hosted site.
Before importing, you probably want to temporarily disable sending pingbacks. Otherwise, WordPress will treat each imported blog post as a new blog post, and send pingbacks for them all. This is probably not what you want (you probably already sent pingbacks for all of them).

Log into your site, then go to “Settings”, then “Discussion”. Make sure “Attempt to notify any blogs linked to from the article” is UNchecked.
Once the import is finished, you might want to turn this back on, but it’s almost certainly not what you want when importing your old posts to the new site.

import select wp.png
Click “Import”, then find the row saying “WordPress” and click “Start Import”

import 3 continue.png
Drag and Drop the export file (from “2.2 Export Posts, Pages, Media and Comments From Your Old Site”) over the upload area, and then click “Continue”

import 4 choose new author.png
It will ask you which user you want to be the author of these posts. Chances are it’s just you, so that’s a pretty easy choice. Then click “Start Import”

import 5 wait.png
Wait patiently. Like they said, you can go away, they’ll notify you when the import is done.

Once they notify you that the import is complete, double-check your blog posts, pages, media, and comments are all there and work ok. It’s probably good to view some of them from the front-end of your website (easiest way to do that is to just enter your domain into your browser’s address bar).
At this point, you may also need to update your site’s menu (click “Customize” then “Menus”) to have it look like it did on your old site.
If something doesn’t look right, ask support what’s wrong (or use the forums, someone will likely respond in a day). Try your best to describe

  • what you wanted to happen
  • what you did
  • what, when, and where you see a problem

Barring any trouble, at this point your new site should work as you want. If you’re happy with it, it’s time to move your domain over to, and your subscribers too…

4. Point Folks to Your New Site

Up until this point, your old self-hosted site is still the one everyone is using. This is the step where you fully commit to using for your new site.
If you want your new site to use the same domain as your old self-hosted site (eg, if your old self-hosted site was “” and you now want “” to be your site), you’re going to need to either “transfer your domain” or “map your domain”. (But if you’re happy with your site’s current domain, skip ahead to 4.2 Migrate Old Subscribers).

4.1 Transferring/Mapping Your Domain to

This will make it so when readers enter your old website address (eg “”) they’ll be sent to your new site instead of your old self-hosted site. already has a good explanation of how to do this here. They’re pretty thorough though, and so it got pretty big. So how about I walk you through it?

When logged into, click “Domains” on the left menu, then “Add Domain” in the top-right

domains 2 enter to begin.png
Enter your old self-hosted website’s domain.

domain 3 transfer.png
Click “Use a Domain I Own”

Now time for you to decide something: do you want to transfer the domain, or map it.

  • Transferring the domain means that, from now on, you’ll pay for domain registration (eg, owning the domain “”). will become your domain registrar.
  • Mapping the domain means you will continue to pay your old hosting company (or domain registrar) for domain registration.

Which should you choose? I suggest you probably want to just transfer it. Here’s why:

  • transferring will be simpler in the long run, as you’ll just be dealing with for your website and managing your domain
  • although slightly overcharges for domain registration (like $10 a year), they also ding you with $18 surcharge if you just map the domain. So it’s usually cheaper to just transfer your domain.

domain 4 transfer or map.png
You probably want to choose “Transfer Domain to”, but it’s up to you. Click either “Transfer to” or “Buy Domain Mapping”.

Assuming you chose to Transfer your Domain, you’ll next need to unlock your domain and get the authorization code (a.k.a. EPP code), so can migrate your domain over to them.
The steps to do this vary by hosting company. keeps a list of the most common hosts, with links to their instructions for unlocking a domain and transferring the domain to a new domain registrar, here: Transferring a domain you already own to »Preparing a domain registered elsewhere for transfer to
Here’s how I unlocked the domain with BlueHost:
bluehost 1 main page
If you’re on BlueHost, go to and log in (“hosting” log in, if you were wondering which). Click “domains” at the top.

bluehost 2 select domain to unlock.png
Click the domain you want to transfer to

bluehost 3 unlock domain.png
See where it says “Locked”? Click “edit” right next to it.

bluehost 4 confirm unlock domain.png
Then “Unlock Your Domain”.

Your domain is now unlocked. Now to just get the authorization code (aka EPP code) so you can pass it onto
bluehost 5 get epp.png
Now that your domain is unlocked, click “Transfer EPP”.

bluehost 6 epp.png
Under “EPP Code” is the authorization code (aka EPP code).

With that authorization code, you can complete the transfer to So go back to…
domains 5 enter domain to transfer.png
Click “Transfer”

domains 6 completion.png
If you properly unlocked the domain earlier, you shouldn’t see the message “we couldn’t get lock status…”

Once you’ve unlocked the domain, you’ll see a field for entering the “Auth code”. That’s the Authorization Code (aka EPP code) we got from the previous domain registrar earlier (in my screenshots, it was from Bluehost).
After that, they just ask if you’d like to pay a bit extra for privacy protection. If you don’t get it, you’ll probably get a bit more spam.
And after that, you’ll just need to sit and wait for 5-7 days while the domain transfers over (your previous hosting company might be able to expedite this, just ask their support).
When emails you to say the domain has transferred over, you’ll just go to your Domains page, select your domain, then click on Name Servers and DNS (WordPress may send you an email requesting you confirm your contact details before you can do this.) Then flip the toggle on under “Use Name Servers” so that it’s blue.
Once that’s all completed, your domain will be transferred to, so visitors of “” will then go to your site. The transfer can take up to 72 hours. (During that time, it’s possible some visitors will go to your old site and some will go to the new one. That’s always the inconvenient reality of transferring domains.)

4.2 Migrate Old Subscribers

If your old site used JetPack, it probably had some subscribers who you’d like to now follow your new site. This is called “Migrating Subscribers” from your old site to your new one.
To do that, you simply have to contact support (see JetPack’s instructions under “Can I use this tool to move followers from one site to another site?”) Tell them “I want to migrate my subscribers from my old jetpack site (eg ‘’) to my new site” (if you’ve already transferred the domain, so your old site and your new site both had the same domain, it might be a bit confusing, but they say that won’t be a problem.)
Migrating your subscribers can actually happen while your domain is being transferred to So feel free to start this step (“4.2 Migrate Old Subscribers”) while you’re in the middle of the domain transfer (see “4.1 Transferring/Mapping Your Domain to”, above).
What to do with your old hosting services now? You may as well cancel them, unless you have some other use for them.

All Done!

How did it go? Were there any important details I skimmed over, or things needing clarification? Tell me in the comments. Also, you can ask support directly, even their free help is pretty good.
Hopefully after you’ve made the switch, you’ll be happilly blogging, instead of unhappily dealing with technical issues… but if you’re not happy, there are tons of tutorials on how to switch back to self-hosted WordPress from 😜.

10 thoughts on “How to Migrate from a Self-Hosted WordPress Site to

  1. To be honest, I personally prefer self-hosted WordPress because I can know exactly what it’s runninh, own my data, and be the boss of it. On, you’re at their whim.
    But I understand self-hosting is a chore not everyone wants to do. Specifically, Donna from my WordPress Meetup struggled with it:
    So I wrote this for folks like her.
    I hope to have another post where I will compare the merits of and self-hosted WordPress..:

    1. Great to hear it Susan! Ya I understand that being self-hosted (and paying the bills for it- which can be quite cheap until you get upsold things that sound like you need) isn’t for everyone.

  2. OkI know this is kind of an old post, but I am really trying to figure this out. I followed all your steps but I think they layout is a tad different than in 2018. I thought I got to the very end and clicked to see my imported website and it was still the template that it made me choose before allowing me to the screen to upload my old website. Any tips!?

    1. Hi PoseyAndPoppy, sorry it didn’t work out. So it sounds like you tried to import your old website’s content (I mentioned that on step 3 above) but didn’t see of the content having made it over.
      If that’s right, then I believe you need to wait a little while for them to import all the content over (like half an hour). If it’s been longer than that, then my steps might be out-of-date. I see WordPress has a more thorough article on this now, so you should probably read over that:
      And if that doesn’t help, you should contact support. About a year ago I made the opposite move (from to a self-hosted site) and won’t be much help with stuff anymore).
      I hope that helps!

Leave a Reply