How to Migrate from WordPress.com to WordPress.org

W

ordpress.com is great. They’ve got a great freemium model that allows anyone to get hooked up with a blog with the swiftness. I’m a huge fan, but of course there are limits in what you can do when you don’t have your own hosting.  They have limitations on plugins and themes and so on.
I recently helped my friend Tove Hermanson migrate her thoughtful fashion blog to her own hosting. I recommended she choose Dreamhost, as I’ve had a great experience with them.
We had a few setbacks when we did things out of order, so I’m writing up a short guide to doing this so it will be easier for other folks. If you still are unhappy after following this guide, you may need a different hat.
First things first, you will want to export information out of your old blog. Log into your blog and do the following:

  1. Note your theme so you can install it at your new hosting 1
  2. Note what plugins you are using, and any widgets or whatnot you’ve got on your blog.
  3. Note your link structure. How are your posts organized? You definitely want this so you don’t break any old links to your content.
  4. Log into your blog at wordpress.com and export your blog contents to a file.
  5. Get your images. WordPress.com says that you can import your images and such at your new blog, but we didn’t see the full sized images getting downloaded. Hence, I’ve written a script to get all of your full sized images from your wordpress.com blog.
    1. Download and install Python and BeautifulSoup.
    2. Use my python image spider to collect all of your images from your blog and put them into a neat little bundle for you.
  6. Do a find and replace on your export file to change all your img tags from “yourdomain.files.wordpress.com” to “yourdomain.com/oldimages”
  7. Buy your domain and hosting.  As before, I really like dreamhost, as they are cheap, cheerful and easy to use.  For a personal site, those are the factors that matter.   Clicking those links will give me a 10% kickback, but I’d recommend them even if I didn’t get a taste.  2
  8. Switch your domain nameservers to point to your new hosting.  When you are buying your hosting, they will have instructions on how to do that.  The place where you bought your domain name will also have a way for you to switch where your nameservers point to.  If you are using dreamhost, you’ll be using NS1.dreamhost.com, NS2.dreamhost.com and NS3.dreamhost.com.
  9. Install wordpress at your new hosting. If you’ve chosen dreamhost, they will do it for you.
    1. From your control panel choose “Goodies”
    2. Click “One-Click Installs”
    3. Advanced Mode (It isn’t all that advanced>) and follow the instructions.
  10. Log in to your new wordpress installation and import your blog export file
  11. Configure your themes, widgets, url structure and so forth through the wordpress settings.
  12. Use an FTP client like Filezilla or FireFTP to upload your “oldimages” images folder to your server, right under your new domain’s root directory.
  13. Take a look at the new blog and test! You should be good to go.

That seems like a lot, but you can probably accomplish all of this in an hour or two. You’ll spend some time waiting for DNS changes to propagate, but it should be fairly seamless. The key is to extract all of the information you need from your old website domain before you change your domain url to point to your new hosting. We made a few mistakes doing that and it just takes forever to switch back and forth.

Good luck, hope these instructions help!

  1. Tove had Chaotic Soul which seems to have major problems and differences between the official version and the one wordpress.com uses.  (back)
  2. You could always register with dreamhost without my referral as well.   (back)

But wait, there's more

12 thoughts on “How to Migrate from WordPress.com to WordPress.org

  1. Great post!

    Once I export my .com blog to my new domain can i still update the .com blog while I tinker around with the look of the blog at the new domain? Will I have to re-export the blog file?

    Thanks1

    1. Sure thing. If you’ve updated the old blog, you’ll have to go through re-exporting the file, changing the image references, and re-importing the file.

      If it’s just a couple of posts, you may prefer to just copy/paste them in to the new blog.
      Good luck!

  2. Thanks Matt. I appreciate your help. I have followed most of the protocols of catb.org, but your website is the only one I could find that spoke normal language albeit brief. I've read the help file but it speaks program language. I've Googled but everything I read is too technical and frustrating. I have never heard of python and only have followed what you have written.

    I have edited the spider. My issue is that I have not the slightest clue what to run where. I open python (command line) and type help to no avail. I read the help file and after forever, I come across something that tells me to run "python myscript.py" so I type:
    >>> python picbac.py

    And get:
    File "(stdin)", line 1
    pythong picbac.py
    SyntaxError: invalid syntax
    >>>

    1. I think you're pretty close now!
      My impression is that python doesn't know where to find the picbac.py file. I think you've typed python at the command line to enter into the python command line shell, then typed python picbac.py – I'm also a little worried that one of the lines says "pythong picbac.py" That "g" shouldn't be there. A pythong is exciting underwear, but it isn't going to get those pictures down!

      Let's try this: go to start, then run, then type change directory to wherever you saved beautifulsoup.py and picbac.py.

      then type "python picbac.py"

      1. Great! I got it!

        Here is what needs to be done.
        1. Install Python.
        2. Download BeautifulSoup & unzip the *.gz & unzip the *.tar.
        3. In the BeautifulSoup folder, run setup.py by double-clicking on it.
        4. Place picbac.py in the same folder as the BeautifulSoup files.
        5. Right click on picbac.py and open with Notepad
        6. Change home to: home = "http://yourdomain.wordpress.com" inserting whatever yourdomain is in, e.g. myblog.wordpress.com.
        7. Change the filesURL to: filesUrl = "http://mydomain.files.wordpress.com" again inserting whatever yourdomain is in, e.g. myblog.wordpress.com.
        8. Save & Close: Close the text file and Click YES to SAVE changes.
        9. Double-click on picbac.py. This will bring up a command prompt where you can watch your pictures download.

        Follow me on Twitter: http://www.twitter.com/dtssmithers

        Depending on the number of pictures & your connection speed, it may take a while.

        1. Travis, you are now an internet hero! This is what the web was built for.

          Let me know your new domain once you're up and running – I'm glad I could help!

  3. So back to square 1. So I try double-clicking on the script only to have the command line window open and close without being able to see anything.

    Also, I am not really sure what BeautifulSoup does?? Are there any step-by-step directions anywhere on how/what to do? Do they all need to be in the same folder? Do all the scripts need to be in the same folder? Any particular folder?

    I would really like for this to work! And I believe it will be a beautiful thing if it does!

  4. Hello,

    I have downloaded and installed Python, and I have downloard and unzipped BeautifulSoup. Then I downloaded your spider. Now I am stuck. Please help as I have 400+ pictures that I need to retrieve!

    1. Hi Travis, I'd like to help you out. What have you tried to do? You want to use Google to figure out how to run a python script?
      Edit the spider in notepad. You'll see two urls. one is for where your wordpress.com blog lives, the other is for where wordpress stores your images. (Right click, copy image location on any image on your wordpress blog to see where that image is stored.)
      Change the URLS in the script to match yours, then run the python script. Google can help you get through any problem you encounter. If you do find there are problem, please comment here so other folks can benefit from the solutions you've found!

      I'm not sure what else to tell you unless I know more about what problem you are having or what you've tried. When you've got some time you might want to read up on how to effectively ask for help on the internet: http://catb.org/~esr/faqs/smart-questions.html#in… We want to help you out!

  5. Hello,

    Maybe, if you have time, we could do a GoToMeeting to walk through it really quickly, and then we can post the solution. If you are willing, please shoot me an email with your available times.

    Thanks!

    TS

Leave a Reply