Migrating from WordPress.com to .org hosting

I am transferring a site/blog from WordPress.com to its own hosting server and into a WordPress.org environment. I’ve done a few of these transfers (or “migrations”?) for clients & friends over the years, and it appears there are always new/better ways to tackle various parts of the process. So here is my most recent experience — I’m trying to get better about my documentation of my processes, for my own sake, the client’s sake (as a measure of transparency), as well as others that may be attempting to accomplish similar endeavors.

So here are my 9 main steps in moving from .COM to .ORG:

1. Login to the site on WordPress.com via the credentials the client provided you.

2. Go to Tools > Export and Choose “All Content” to export, then click the Download Export File button…. I tend to save that resultant XML file to a directory I’ve named “backup” or similar.

3. On your new server setup, which should have the latest version of WordPress installed (via download from WordPress.org), you will again go to Tools, but this time select: Import.

4. On that admin Import page, select (in this case) WordPress as your “system to import from.” This will require you to then install the WordPress Importer Plugin & activate it.

5. You will then be asked to Browse to the WXR (.xml) file, then be required to click the “Upload file and import” button.

6. You will then have to assign an author for the posts — here you can simply select the previous username to be created and assigned those same posts, or assign it to a new username if you’ve got something new in place.

7. If you wish to have the Media Files “come with”, be sure to check-box the “Import Attachments” feature. This I did not do the first time, so I had to go through the process once again after all the text showed up but images were still linked to (and pulled-from) the WordPress.com images directory.
7a. I got a couple of different error pages while attempting to import all the Media files — it took 16 Refreshes of the browser window to either get past:
– Internal Error 500, or
– “the page you are looking for timed out…”
7b. I could view progress of files being added to: /wp-content/uploads/ based on year/month directories via sFTP. So, I knew that the process was still marching along, even if settings & configurations were getting bogged down during the process.

8. I was missing 11 images in the transfer, so I manually added them to the Media folder and into a single directory that was month-orientated, similar to: /wp-content/uploads/2012/05 . . . there were 06 and 04 directories on either side of that missing directory for some reason.

9. The site was still referring to its .COM image/file directories (possibly because I didn’t check-mark the Import Attachments the first import?) for the photos being used. In order to mass-edit all the URLs, I called upon the Search Regex plugin. After comparing a .ORG image with its .COM counterpart to insure I had the correct paths to find/replace, I set Search Regex’s search/replace pattern fields to systematically reset all URLs. Being a bit of a chicken, I did this per yearly directory, so as to handle the changes in bite-size chunks. Here are the results:

2008: 175
2009: 210
2010: 282
2011: 247
2012: 226
2013: 52

… with the added 11 (from the missing directory) needing to still be added to 2013. Those added images immediately “fixed” the 2 posts that were missing the images their new URLs were referring to. That’s a total of 1,203 links that were made proper by the click of a single button.

Transfer complete! I also did a few after-transfer items such as: a). added Jetpack to retain/regain most of the features being used in .COM, b). found the theme that was used on .COM and Activated it, and c). replaced the header image with a new/current image to override the default image that came with the theme. I guess a final step was to make sure the same (or equivalent) Widgets were present in the sidebar…. Then it was time to start customizing and enhancing as we saw fit.

Now, pending the client’s OK, all that is left is to point the nameservers to the new hosting setup and away from WordPress.com . . . then let the freedom reign for the client who wants to make their site their “own”, and use their choice of themes, plugins, and other customization options. Happy transferring!