Today, we’ve moved the BigOven blog from TypePad to WordPress. I hope you like this new format, and find our blog readable and informative.
Why move from one blogging platform to another? In my view, WordPress has won the blog-platform war, and is now embraced by millions of writers around the world. It’s a tremendously flexible platform, and many functional and responsive themes are available that scale particularly well to mobile and desktop screens. Wordpress is made particularly vibrant by a vast library of extremely useful plugins, letting us add additional features to the blog without additional code. In short: Typepad, while perfectly adequate as a blogging platform, in my opinion loses out to WordPress in virtually every measure.
What do you think of the new design? Let us know.
Typepad to WordPress: Migration Tips
The rest of this blog post is for those who want the specifics about migrating from Typepad to WordPress; I wanted to share some tips on the migration for those who want to do the same. Fair warning though — it gets pretty technical.
How to Move from TypePad to WordPress on IIS
I spent a good half-day migrating the content from our blog from Typepad to WordPress, and thought I’d pass along some tips.
Option A: Outsource the whole thing
The nice folks at tp2wp.com have a “valet” service, currently priced at $1499, that will get you a full migration, soup-to-nuts. They do tech support, and have a great migration tool that handles some of the nitty-gritty below. If you’re looking for a “set it and forget it” solution, I’d suggest you fill out their contact form.
[Edit -- Thanks to a comment from Alec from FolioVision, I now know that they too have a migration service priced significantly less, Silver T2WPMove at $500. See the comments for details.]
Option B: Do-it-yourself
I chose the do-it-yourself option.
The first step is to get your WordPress server ready. You can choose a third-party service like WordPress.com, or you can use a shared or dedicated server. At BigOven, we happen to have a spare Windows 2008 server in our farm, leftover from previous system upgrades. It’s running IIS6, and for various reasons I wanted to keep it that way — it’s perfectly adequate for our blog and miscellaneous other duties.
Here are the steps in migrating from Typepad to WordPress (hosted on Windows):
- Export the existing blog from within TypePad. This is done via Blogs > Settings > Import/Export.

- Install WordPress (and PHP and MySQL) on Windows 2008. Microsoft makes this really easy with a special “Install WordPress For Windows” powered by their Web Platform Installer. I found the installer worked flawlessly and installed PHP, mySQL and WordPress. (It did require a server restart, however, so do this on a time that you can bring the box down for a restart.) Still stuck? Read the gory details of installing WordPress for Windows. The installer will automatically create a username and password for accessing mySQL. You can write it down during the install, or you can always view it later via the config file on the IIS box.
- Now, you’re ready to import the post content! Once WordPress is up and running on IIS, log into the admin panel, and install the handy plugin “Movable Type and TypePad Importer”. This will do the lion’s share of the work. Once this plugin is activated, you can go into the settings for it and give it the .WXR file you created in step #1. After a few minutes – voila – your content should be live in your WordPress blog.By now, you’re humming along and must be thinking “that’s not so bad” — and you’re right.
- Solve two big gotchas:
a) Preserving permalinks (and creating new ones that match your old site structure)
b) Getting your images hosted by your new server
- Point your DNS server to your new WordPress site
It’s step 4a and 4b that take the bulk of the work. Here’s how I tackled them:
Getting Permalinks To Transfer (4a)
What they are: Permalinks are the actual absolute URL links for your blog articles.
Why you should care: If you want to maintain your user experience and search engine presence, you don’t want a whole lot of broken links out there after you flip the switch and move your domain name to your new WordPress-powered blog. Wordpress and Typepad use a different default syntax for building URLs.
How to tackle this. First, I inspected our Typepad blog. Our TypePad blog had links that looked like this (bold added for emphasis):
http://blog.bigoven.com/blog/2013/04/tips-new-features-added-this-week.html
By default, WordPress generates permalinks in a different format. But, lucky you, you can tell WordPress how to generate these permalinks! In the WordPress admin panel, go into Settings > Permalinks. To preserve the “old” method, set yours to “Custom”, and use the format corresponding to your blog. In our case, it’s:
/blog/%year%/%monthnum%/%postname%.html
This works, but with IIS6 at least, there’s still a problem. While the WordPress engine now publishes articles using this format, IIS6 needs a way to route links of this kind to the WordPress engine. When I try to browse any of these new Custom Permalinks, WordPress on IIS gives a 404 (not found) error. Essentially, you need to tell IIS6 — “when a link comes in, hand it off to WordPress’s index.php for handling”.
*Note — as Alec indicates in the comments, we are able to do this because for our blog at least, we’ve never hand-edited the URL slug. If you’ve hand-edited the permalink in Typepad, you might be interested in FolioVisions service. See the comments for more information.
To solve this, I had to download and install a “URL Rewriter” – for IIS6, the one to use is the free (donationware-supported) Ionics IIRF – you can download it from: http://iirf.codeplex.com/. After it’s installed, you’ll want to use notepad to create a file called IIRF.ini, and put it in the base directory where your new WordPress site is located.
I’ve told it to route all requests through the WordPress engine with these lines:
# Iirf.ini
RewriteEngine ON
StatusInquiry ON
IterationLimit 5
# this will allow ugly URLs
# to not be processed at all
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /. /index.php [L,QSA]
Restart your WordPress site, and voila! Now, the “old” site links, as well as the new ones, should be working.
Importing Images into WordPress (4b)
What they are: These are all the .png, .jpg, .gif and other files you may have on your old Typepad site. In our case, we also have some embedded videos from YouTube, but these won’t be affected at all, since the URLs are absolute.
Why you should care: While your blog might appear to be functioning just fine, if you look closely at the HTML that is rendered in your new WordPress account, it’s still pulling the images from your old Typepad account.
Unless you do something, when you shut off your Typepad account, these images will all be broken links.
For those of us on Windows hosting, there’s another catch — Typepad likes to store images in a subfolder called “.a” (period-a). Windows doesn’t like folder names that start with a dot, so you have to rename this destination, and in turn, rename all the hyperlinks in the post. Fortunately, if you know a little SQL, that’s simple.
The best way to handle this situation is to migrate all the images from your TypePad account to your new account. You can use a tool like the HTTrack to download all the images from your old blog to a specific folder on your hard drive. Then, FTP them to the new IIS6 server, to a folder that lives under the “wp-content” folder.
The last step is to point your old posts to the right subfolder for these images, and for that, you’ll need to go in and update the WordPress posts database in mySQL. In brief, what you do is get the login credentials from wp-config.php – that will tell you the username and password that wordpress uses for mySQL access. You can use the mySQL Workbench to issue a query that looks something like this:
update wp_posts set post_content=replace(post_content,’/.a/’,’/wp-content/img/’) where post_content like ‘%/.a/%’
WARNING: Always be careful when issuing bulk queries against your database! You can corrupt the data if you do it wrong. So always do a SELECT on this and triple-check the output before UPDATE-ing the entire database.
If you get this bulk url correct, your posts should now be pointing to the right images, on the new WordPress site.
And then, once it’s up and running, you can ask your DNS administrator to point the blog to your newly established WordPress site. Happy writing!