Migration from MovableType Complete

I successfully migrated this website from MovableType 4.35 to WordPress 3.8.1. These are my notes from the migration in case they are helpful for anyone else. The good news is this is pretty straightforward, and there are plenty of notes out there (just search the internet for “WordPress MovableType import”). The tricky parts are the custom or special areas of your MovableType installation, and mine was no exception.

First, why switch to WordPress? I wanted something more current with a stronger platform of plugins and themes. I’ve been happy with MovableType and stuck through it over many versions and changes. It just started to look and feel a bit dated and it was time for something new. WordPress isn’t exactly “new” (having just passed its 10-year anniversary), but it continues to evolve and improve. I’ve also used it for a couple of sports team websites which turned out well.

As part of any migration , you need to identify the aspects of your site which are customized, unique, or which will potentially cause problems. In my case I had the following to deal with:

  • About 600 posts dating back 12 years
  • Individual post links were based on year/month/day, a custom slug name (saved in the Keywords field), and no extension; for example: http://www.cantoni.org/2013/12/05/tech-advent-calendars-2013
  • Posts written in different markup (plain text, HTML, Textile and Markdown)
  • Comments (which I did not migrate)
  • Categories, but no tags
  • Three different syntax-highlighting scripts/styles used over the years

These were the migration steps to import MovableType into WordPress:

  1. Installed WordPress
  2. Installed movabletype-importer plugin and activate it
  3. Configured the timezone and permalink settings (permalink matching what I used for MovableType)
  4. In MovableType modified ImportExport.pm to omit comments and tags, and set the proper basename for posts (gist)
  5. Performed the export of all entries to a text file
  6. Converted Textile and Markdown to HTML markup (gist, original script from Mark Shroyer)
  7. Imported into WordPress
  8. Moved old static directories (./2014, ./2013, etc.) so that WordPress would start serving those pages
  9. Installed wp-markdown plugin, activate it, and enable for posts and pages

I also found the suicide plugin very helpful as I iterated on the steps above. You can erase all posts and metadata in a single step. Make sure to remove after your migration is complete!

After everything was migrated and permalinks working correctly, I finished the initial setup:

  1. Installed disable-comments, activate it, and disable all comments site-wide
  2. Modified .htaccess to redirect from old rss.xml to new feed link
  3. Modified .htaccess to redirect from old category pages to new links
  4. Updated FeedBurner to use new feed link
  5. Installed google-analytics-for-wordpress, activate it, and configure my ID number
  6. Configured twenty-thirteen theme with a child theme, a few custom header images, and the sidebar widgets

Still on my to-do list:

  • Finish bringing over any static pages that are still useful
  • Fix syntax highlighting and consolidate to a single solution
  • Monitor Google Webmaster Tools for any crawler errors (page not found)
  • Clean up links to comment feeds (and other extra junk in HTML head)
  • Add more redirects from old archives pages where needed