Moving From Self-Hosted WordPress to WordPress.com

Most people want to move from a hosted WordPress,.com site to a self-hosted WordPress.org site. I went the other way. here’s why and how I did it.

WordPress featured post tile

Most people move from the hosted WordPress.com to a self-hosted WordPress (WordPress.org) site. They want the flexibility of a self-hosted WordPress site. In my case I’m going the other way. I’m moving my self-hosted WordPress site to WordPress.com.

Why am I doing this:

  • Simplicity – everything comes from WordPress and is hosted by them. I don’t have to worry about an update to WordPress breaking my theme or a plugin. WordPress.com won’t be perfect, but it is simpler.
  • No more updates – I’m paranoid and want security updates applied immediately. Even if the updates aren’t security related (although it seems most are these days) I hate running old software as I figure there’s a landmine in there just waiting to blow up on me. It seems like there’s a never ending string of updates these days so I spend more time doing maintenance than I do writing or exploring. it doesn’t help that these updates seem to arrive at the worst time.

Some “gotchas”

  • Technically, photos are not exported. They are imported if the old site is online and the photos are accessible by WordPress.com
  • Photos that use relative URLs in posts will not be imported because WordPress.com cannot find them. They must include the full URL.
  • Some of my photos did not get “attached” to the post although they still appeared in the post. This is more a media library management issue. It’s not something that affected me but it may affect you if you really need that mapping. They can be manually attached after the import. See step 8 for more information.
  • If you use the JetPack plugin on your self-hosted site and you want to migrate the data contact WordPress.com support. They can probably migrate the data. I did not use JetPack so did not deal with this.
  • It will cost $13/yr. to map your existing site domain name to the new WordPress.com site. This will allow all exiting external links to still work and search engines will not have to process and re-directions or site renames.
  • If your existing domain is used for anything other than your WordPress site you may need to research the DNS setup. WordPress.com provides good documentation and automation for using Google Apps email along with several other email providers. I use Google Apps for email. I don’t include those instructions here because the WordPress instructions worked fine.
  • There will be a DNS change at the end. To speed this up you may want to lower the TTL for your old sites DNS entries a couple days before making the change. This isn’t critical but may speed things up. I set mine to 30 minutes.

Doing the Move

So here’s the basic process I followed to move this site. The screenshots are from a blog I used to test this process (BWOTAE.COM).

I initially did all my testing and site design on a test blog with a small number of posts and comments. This meant that there was minimal time between when I imported the full site and I actually cut over since I already knew the settings I wanted and the tweaks that would have to be made.. This is recommended.

  1. You’ll need to create an account at WordPress.com, if you haven’t already.
  2. In your WordPress.com account select the “Create Another Blog” button in the “My Blogs” section of your account.
    Screenshot showing the create new blog selection
  3. On the next screen enter an address for your blog. Since we’re moving a blog that already has a domain name this isn’t very important. Do not enter your current blog address. We’re going to transfer the domain name along with the blog. But we need a WordPress.com sub-domain to get going. The first screenshot shows that the address I wanted is already in use.
    Screenshot showing my first selection is in use
    My preferred name is in use, but that’s OK

    Once I pick a name that’s available at WordPress.com I select the option to keep my blog private which means users will need a logon ID to see it. This will be changed once the site is ready to go on WordPress.com.

    Then put in the name of your blog. This can be changed later, so you may want to name this slightly different than your other site so that you don’t get confused during the migration, but other than that there’s no reason not to use the same name as your self-hosted site.

    Then select the “No thanks, I’ll use the free address” selection.

    screenshot showing the initial blog selections
    Pick any available name, make the site private (for now), use the name from your self-hosted site and then use the free address.

    Scroll down the screen and click the “Create Blog” button under the “WordPress.com Beginner” column. You can pick one of the packages if you absolutely know you want all the features. You can add these features later at the same bundle price if you want. There’s no benefit to picking them now. Personally, I do not use the bundles since the add-ons I want cost less than the bundle.

    Screenshot showing the "Create Blog" selection
    Go for it! Create the site
  4. You’ll receive the confirmation message once the blog is created (almost immediately). You can click “Visit your dashboard”
    screenshot of the confirmation message
    Success!

     

  5. Check your privacy settings, You don’t want visitors and you don’t want your site indexed until it’s ready to go. Go to “Reading” under “Settings” and verify that the site visibility is private.
    screenshot showing the private setting
    No guests or search engines allowed.

     

  6. Now go to the Dashboard of you old site, the one that’s self-hosted. Go to the “Export” section under “Tools”. Verify “All Content” is selected as the items to export. Then download the export file.
    screenshot of the export settings
    Export everything

    You’ll be prompted to save the file. I just use the default name and save it to the desktop to make it easy to find. Just remember the name and location.
    screenshot of the file save dialogDo not shut down your old site or change the domain name. The site must remain online to import the photos and images.

  7. Once the file is saved, go back to your new WordPress.com site dashboard. It’s time to import. Select “Import” under “Tools” then click “WordPress as the import type.
    screenshot showing the import types
    Select WordPress as the import type.

    You’ll be prompted to select a file. Select the file you downloaded in the previous step and click “Upload and import”.

    screenshot showing the import file selection
    Pick the file you just downloaded and upload/import it.

    You’ll be prompted to map any authors. This does not mean the authors have any actual posts, just that they are set up as users. Map them as you see fit, which is probably all to your WordPress user. Click “Submit” when you are ready. As previously mentioned your old site must be online so the photos can be imported.

    screenshot showing the assigned authors
    Map your authors.

    You’ll be told that the import is running. Depending on the blog size and current WordPress.com load this may take several hours. (Up to 24 per WordPress.com).

    screenshot of in progress status
    Now we need to wait for the completion email

    You’ll receive an email when the import is done. You may see posts and data appear before the email but be patient and wait for the email, it is still working to import and link things up.

  8. Photos seem to be the biggest import problem area, both in my testing and in the forums. After the import go to the “Media” section (of the new WordPress.com site) and select “Library”. Some things to check:
    Is the number of photos close to the number in your old site? Note that unused photos will not be imported.Do you have a lot of unattached photos? Is this more than what your old site had?

    screenshot iof the media library
    Any unattached photos?

    If you have a lot of new unattached photos you may want to contact WordPress.com support through the forums. In my case the difference was minimal and I didn’t meed them attached. They were in the library and appeared in the correct posts.

  9. Before you start cleaning things up go to “Settings” then “Discussion”. Uncheck “Attempt to notify any blogs linked to from the article”. You do not want to notify blogs just because your cleaning things up. You can turn this back on once the new site is live.
    13-NoNotifications
  10. At this point you want to pick your theme and site design and verify your settings. Then go through your posts and make sure they look OK. Due to the volume I mainly just checked the most recent year and the posts that get a lot of visitors. Your old site should still be up and running. If you post articles or get comments on the old self-hosted site you will need to transfer them over.

Once your new WordPress.com site is ready to go “live” here are the steps.

  1. If you use the JetPack plugin on your self-hosted site go in and disconnect it from WordPress.com. If you don’t do this the old site will remain in your WordPress.com dashboard.
  2. Now we need to buy the domain mapping. In the dashboard of the new WordPress.com site select “Store” then click the “Buy Now” button for “Add a Domain”
    screenshot showing buying a domain
    Go to the store and Add a Domain

    Then select “Map a Domain Name You Already Own”

    screenshot showing order type
    Map a domain you already own

    Enter in the domain name used for your self-hosted site.

    screenshot showing domain entry screen
    Enter in your domain name

    Even though you already said you’ll be using your already owned name you’re told the domain is in use. Verify you didn’t make a typo and then select the option to use the domain.

    screenshot showing the domain already taken screen
    Pick the selection to use the domain.

    Complete the wizard to purchase the domain mapping option.

    The domain will be made the primary domain for your site. If you need to change it you can select “My Domains” under the Store section of the dashboard.

  3. You’ll need to change the DNS servers for your domain. This varies by registrar but the domain servers should be ns1.wordpress.com, ns2.wordpress.com and ns3.wordpress.com. It may take some time for the DNS change to propagate. I’d recommend leaving your old site online for a couple of days to avoid people getting a site not found message.
  4. Time to go public. Navigate to the “Settings” -> “Reading” section of your new site and change the Site Visibility to “Allow Search Engines to index this site”.
screenshot of site visibility
Go Public!

Now your new site is alive an in public. You’ve moved from self-hosted WordPress to WordPress.com hosting. An external links will go to the correct page on the new site, no redirects needed.