How To: Switch from MovableType to WordPress

I switched from MovableType to WordPress this week, something I had been putting off for a long time because I had such a highly modified install of MT with a large number of posts & comments. Because mine was a somewhat non-typical install, I had to pull a few tricks to migrate. Here’s a recap, plus links to many of the sources I found useful.

One of my biggest concerns was maintaining my archive URLs. I have some entries that get a lot of hits from searches, so I wanted to maintain those, plus I didn’t want to break any links that I/others might have blogged in the past. (I hate broken links!) 🙂

How I switched from MovableType to WordPress

  • Download and install WordPress.
  • Since I wanted to retain my MovableType blog archive links, I needed to modify the WordPress archive settings BEFORE importing my old blog entries.
    1. Since my MovableType archive URLs had underscores between words, I needed to download and install the WordPress Underscore Permalinks plugin.
    2. To further match my MovableType permalinks, I set the WordPress permalinks option to the following: /archives/%year%/%monthnum%/%day%/%postname%/
  • Because I had a lot of MovableType entries, I had to create my own MovableType Export Entries template. This served two purposes: it allowed me to “download” all of my MovableType entries, comments and trackbacks, plus it facilitated an easy import to WordPress, since WordPress can bog down if your import file is too big.
  • Import your MovableType entries into WordPress as normal — or one file at a time (ie upload 1.txt, then 2.txt, and so on) if you’re using a custom MovableType export entries template.
  • Once my entries were imported and functioning, I had to redirect my old MovableType archive permalinks to the new WordPress permalinks. I created an .htaccess file template in MovableType and then set the OUTFPUT FILE to be within my new WordPress directory. This would tell the server to send anyone looking for the old permalink to the new WordPress generated permalink.

    <MTEntries lastn="999999">
    Redirect 301 /archives/<$MTArchiveDate format="%Y/%m"$>/<MTEntryTitle dirify="1" trim_to="20">.php<$MTArchiveDate format="%Y/%m/%d"$>/<MTEntryTitle dirify="1">

    Note: WordPress may have mangled my code, but you get the idea. I used the Redirect 301 setting to tell search engines that the old archive (MT permalink) no longer exists and they should use the new archive (WordPress permalink) from now on. (Read more about .htaccess)

  • And that’s about it (I think!!) 🙂