How to Port Your Blog from TypePad to WordPress (Part 2)
March 19, 2008 · Print This Article
This is Part 2 of a 2-part post on migrating your blog from TypePad to WordPress. << Part 1
While the information in this post uses TypePad as the subject. much is transferable to other platforms.
Part 1 discussed overall migration considerations, preparing for the move, exporting data from TypePad, Importing data into WordPress, cleaning up images and file references, and taking advantage of some of WordPress’s features.
Redirect Traffic to your New Blog
If you’re going to drop any traffic, it’s going to happen right here!
- Make sure the receiving server is ready for traffic.
- Go to your domain registrar, and point your domain to the nameservers on your new hosting account or server. You’ll probably also have to delete the MX records that still exist.
- Wait.
- Ping your domain name to see which IP address responds, TypePad or your new server. As soon as the responding IP address is your new server, continue.
- In your WordPress administrative panel, go to Options | General, and make sure your blog is pointing to your domain name, and not the temporary URL or IP address you used to setup your WordPress blog. If you’re using a new domain, this step doesn’t apply to you. Important: don’t perform this step until you know your domain is pointed to your server or you’ll lose access to your administrative panel. If this does happens to you, just open up your MySQL database, and update the entry in the wp_options table.
- After cutover, go to your TypePad control panel and select Site Access | Domain Mapping. Remove your domain mapping. This step doesn’t need to be done, but I prefer to make a clean break.
DNS is painful. You need to coordinate different servers in different locations, and you can never be sure if what you see is what someone else will see (until propagation completes). So when something goes wrong, it’s often hard to pinpoint where the problem is. If you do things in the above order, you shouldn’t run into any problems.
Update your Feeds
If you’re lucky, you’ve been using FeedBurner all along. This will make cutover a snap. Feedburner only needs to know where to find your new feed. Login to your FeedBurner account, click on the “Edit feed details” link at the top of the page, and enter your new feed address.
This is where I ran into a problem. Although traffic was being redirected to my new server, and I validated my new feed, FeedBurner didn’t recognize the server. If you get messages like “The domain does not seem to exist” or “There was a problem retrieving the feed: java.net.UnknownHostException” a possible cause is DNS propagation (I surmise). Feedburner’s help recommends pinging, resynching, validating your feed, and so on, but for me, all it took was a little time — roughly 18 hours.
If you’re not using FeedBurner, you’ll need to redirect all feed requests to the new location (see below) .
Redirect all Requests to Old URL’s
There are plenty of ways to redirect, including plenty of ways to do it right and plenty of ways to do it wrong.
Wrong Ways to Redirect Traffic
Meta Tags, Bad Idea
<meta http-equiv=”refresh” content=”0; url=yourblog.com/your-new-post/”>
JavaScript, Another Bad Idea
window.location=”yourblog.com/your-new-post/”;
Correct Ways to Redirect Traffic
In short, you want to use a 301 redirect. This tells all traffic to the old URL that the page has permanently moved, and is a search engine safe method of redirection. If you’ve spent some time building page rank, and you want to maintain it, 301 redirects using the same domain should preserve that rank. But note that page rank is assigned to a specific address, so if you were using yourblog.typepad.com/your-post/, and now you’re redirecting to yourblog.com/your-new-post/, this is treated as a new domain and you will drop your page rank, at least temporarily. On the other hand, if you redirect from yourblog.com/your-post/ to yourblog.com/your-new-post/, a 301 redirect should transfer page rank from the old address to the new.
Server Side Scripting
The easiest way to create a 301 redirect (with a high success rate) is to use any server-side scripting language to respond with the appropriate HTTP headers. The problem is that individual posts at TypePad usually end with a “.html,” which makes this method useless for redirecting individual post URL’s, but you can sometimes redirect old categories to new ones. The process is the same for all scripting languages, but because this method is not consistently reliable, I would advise against using it. I only mention it here because it’s such a common method of creating a 301 redirect.
- Create the corresponding directory structure. If the category you want to redirect is yourblog.com/your-category/, and you want to redirect it to yourblog.com/category/your-category/, you need to create a “your-category” folder in your blog’s root.
- Add an index page with your scripting language’s extension, e.g. index.asp, index.jsp, index.php.
- Use the scripting languages to respond with 301 redirect headers.
ASP
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”http://yourblog.com/your-new-post/”
JSP
response.setStatus(301);
response.setHeader(”Location”, “http://yourblog.com/your-new-post/”);
response.setHeader(”Connection”, “close”);
PHP
Header(”HTTP/1.1 301 Moved Permanently”);
Header(”Location: http://yourblog.com/your-new-post/”);
Using mod_rewrite with .htaccess
mod_rewrite is a powerful and complex Apache module. It is really a Swiss Army knife, and can do so many things if you know how to use it properly. mod_rewrite hates me. Sort of like Digg hates me, but that’s another story. In turn, I hate it. But I still respect it. I will always try to get mod_rewrite to listen to my commands, but I plan for the worst. If I can’t get it to bend to my will within a short while, I move on. When I’ve gotten it to work, it’s all flowers, wine, and candy, but more often than not, it just breaks my heart.
mod_rewrite is a very clean, neat, and search engine safe method of redirection. You can initially redirect all of your URL’s, then after a month or so gradually drop your redirections as your URL’s are updated in indexes.
Add all of your mod_rewrite rules to the .htaccess file in your blog root. Here’s an example of redirection using mod_rewrite:
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^2008/03/my-old-post.html$ http://www.joefission.com/2008/03/my-new-post/
Using .htaccess
Using .htaccess should be a simple way of redirecting traffic. It’s a very neat solution — all of your redirects are stored in one file — and it’s a search engine safe way of implementation. Additionally, it works for all URL’s. For each URL to redirect, add a line to your .htaccess file (use the one in your blog’s root, if your blog root is different from your site root, e.g. if you blog is located at yourblog.com/blog/).
Redirect 301 /old-post.html http://www.yourblog.com/your-new-post/
Simple, yes? It should be, but .htaccess and I don’t often see eye to eye. This method has many advantages and is the second method I would try, right after mod_rewrite.
Objection Redirection
When mod_rewrite and .htaccess fail you, you can always fall back on the Objection Redirection plugin. You’ll also get the benefit of using one of the funniest WordPress plugins available.
- Download Objection Redirection, install it, and activate it.
- Go to Options | Redirection in your WordPress administrative panel.
- In the second pane, add the old URL in the “URL requested” field, and the URL to redirect to in the “Redirect their ass” field.
You’ll need to repeat this for each URL to redirect. If you have quite a few, it’s a better idea to create a SQL INSERT statement, and just add the redirections directly to the database.
Update the Engines
This step couldn’t be easier, thanks to the Google XML Sitemaps plugin. Install it, generate your sitemap, and let the plugin submit it automatically to Google, Yahoo! and Ask.
Backup
I’m probably a bit too cautious when it comes to backups, but at the very least, now that your blog is populated and traffic has been redirected, you should generate a complete backup. A backup of your data and all of your WordPress files. I backed up after every hour of work or so during the migration. My test is always: “do I want to do this again?” If the answer is no, I do a quick backup.
Have a Drink
A nice IPA would hit the spot right now.
Conclusion
All-in-all, migrating to WordPress from TypePad can be made simple, though there are many pieces that need to be organized. My biggest tip would be to prepare. Think through all of the steps that you’ll need to take before you take them, so you make the process go as smoothly as possible. The last thing you want is to change your DNS information, only to find that you’ve forgotten to set up something on your target server, resulting in hours of unnecessary downtime.
Follow the steps in these two posts, and you should come out of the migration just fine. I’ve been a WordPress fan for some time, and looking back to the effort that was involved in the migration, I’m 100 percent satisfied with my decision to move.
To recap, here are the steps to follow to migrate your blog:
1. Prepare for the Migration
- Make sure your new hosting account and platform are stable
- Install WordPress on your hosting account
- Apply your themes, plug-ins, and any customizations
- Backup your WordPress installation
- Gather your account information
- Inventory your backlinks
2. Export your data from TypePad
3. Import your data into WordPress
4. Clean up the migration
- Reorganize your categories
- Replace TypePad-specific URL’s
- Re-reference your images
- Clean up your hacked styles
- Update your 404 page
- Tag your posts
- SEO anchor pages and posts
- Replace widgets
5. DNS redirect traffic to your new blog
6. Update your feeds
7. Redirect all requests to old URL’s
8. Update the engines
9. Backup
10. Have one or many drinks
Good luck with your migration!
Read Part 1 of this 2-part post on migrating your blog from TypePad to WordPress. << Part 1




[...] This is Part 1 of a 2-part post on migrating your blog from TypePad to WordPress. Part 2 >> [...]
I did everything as you said and everything seemed to be working alright when I realized that I couldn’t view the posts within Mange > Posts . It shows that there are 149 published posts but when I click on ‘Published’ it reads No Posts Found. Any ideas?’
Is it possible that they are listed under a different user ID? When you filter posts by “any,” what do you see?
Hi, absolutely fantastic post! However, as you know, one cannot access the .htaccess file on Typepad (it’s not allowed). So I am failing to see how I can manipulate traffic to my new site. This post has been very helpful to me as I have just moved. But I have over 7k post, and my typepad site was popular (but desperately needed to move for reasons I’m sure you understand).
My problem is huge, how do I redirect all those Google links that are still pointing to typepad? I tried the Objection Redirection, far far too confusing. I did Google sitemap, no redirect, feedburner is working, but not pointing my subscribers to the new site. Would very much appreciate your insight here.
Wow, 7,000 posts?? Rock on!
You would use .htaccess on the new site, instead of within Typepad. Once you update your nameserver, Typepad will no longer receive that traffic, so the .htaccess file you need to update in on the server where your Wordpress blog is hosted.
Considering your amount of posts, it might be advisable to enlist the services of a mod_rewrite pro; otherwise, you would need to directly 301 all of your most popular posts, or posts with backlinks — for 7000 posts, that would take forever. I’d probably script it, and maybe post to one of the Google API groups — maybe they could suggest a way to automate the process.
Feedburner took a little time to switch over for me too. Not sure why. Maybe a caching issue? Hopefully it has cleared up by now for you. Just make absolutely sure that they have the correct feed URL for your new blog.
Thanks for the feedback on the article!
Hey there Joe, Thanks for responding to my question. This has been a bit of a drag, I have no idea what I’m doing as far as coding goes, but I’ve managed so far. The mod_rewrite deal however goes far over my pay grade. I will try to enlist help though.
Thanks for the kindness!
I don’t get along too well with mod_rewrite myself, but with 7,000 posts, I think it’s the most efficient solution. The alternative is to 301 redirect only your most popular and most linked articles to the replacement, and then 301 the rest to a more general page. The only problem is that you would end of losing PageRank, even if just temporarily. mod_rewrite could help with that.
I don’t envy the work you have ahead, but good luck!
Joe,
I don’t know why I didn’t find your site earlier, but I’m all the way to the image/link cleanup and 301 redirect phase when I find these great posts.
My question is about those 301 redirects. So I’m going to put the (143 posts, ick) long set of redirects into WP’s htaccess. That part I get (though at first I thought I was supposed to hack TypePad, too. Glad you cleared that up.)
Then you wrote:
Redirect 301 /old-post.html http://www.yourblog.com/your-new-post/
Now if I’m putting this in WP, that first one has to be the full URL, right, as in http://myblog.typepad.com/old-post.html ?
I was honestly hoping to do all of this tonight (big traffic boost coming Thursday and I wanted to get it to the new blog smoothly) but I can see this is not going to be an instant thing. UGH.
Also, why do you prefer the mod_rewrite to the 301 which is what I’ve read about elsewhere? Is it just a personal thing or is this where I learn The Trick that saves my migration from becoming a disaster?
Thanks for all the info you have here!
Regards,
Kelly
Arrrgghhh, I know, that always happens to me, too!
Kelly, did you have your own URL with your Typepad blog, or did you use a subdomain? One of the things with this post is that I didn’t differentiate the instructions too well for folks on subdomains.
If you had your own domain at Typepad, use the line as-is — the base URL is implied. If you didn’t have your own domain . . . sorry to say but you’re out of luck. You can only 301 traffic that’s coming into your own domain. In that case, you will need to redirect traffic from within Typepad.
JF
Oh, I try mod_rewrite first because you can accomplish a ton with just a few short lines. IF you can get it to work. I have -maybe- a 50% success rate with mod_rewrite.
Joe,
It was a subdomain. Okay, the out of luck part I was afraid of. Please explain the last bit: “redirect traffic from within TypePad.” You mean just with a post saying run over to the new address, which I already plan, or is there something… anything… more I can do?
Ahh, bummer. Yes, you can notify with a post, but you can also hack your posts to auto-redirect your users.
I would probably just modify each Typepad post with a direct URL to the corresponding WP post. After a month of announcements, remove the content from Typepad, other than your “we’ve moved” message. Then your new blog will hopefully start to rank for your old content over the next rating period.
Tough call. I’m working with a friend in the same situation right now.
JF
[...] for a quick and painless guide on moving from Typepad to Wordpress and the closest I came was from joe fissions’s blog, pretty straight forward. So, if you are stuck and need a bit of guidance on moving, there you go. [...]
Thanks for the info, Joe!
I’m a little nervous about steps #4, 5. I used a network query tool found here and selected “do it all”:
http://www.net-ok.net/index.php
I don’t what I’m looking for but got this after admin contact:
egistrar of Record: TUCOWS, INC.
Record last updated on 08-Aug-2008.
Record expires on 01-Dec-2008.
Record created on 01-Dec-2006.
Registrar Domain Name Help Center:
http://domainhelp.tucows.com
Domain servers in listed order:
NS2.WORDPRESS.COM
NS1.WORDPRESS.COM
NS3.WORDPRESS.COM
Domain status: ok
Does that mean I can move to step #5? I don’t want to lose wp-admin access and then have to fix it - my brain is overloaded with this migration.
Thanks again for the great help!
Hi Mary,
That’s the tough part, isn’t it. Your goal in those steps is just to ensure that the server you’re migrating to is accepting requests.
From running a query, I’m guessing that your host is Lunar Pages, is that right? If so, your registrar should have Lunar Pages nameservers listed — e.g. ns1.lunarmania.com, ns2.lunarmania.com.
It doesn’t look like that’s been done yet (step 2 above).
JF
Oh…I think I made an insanely dumb error by changing DNS from TypePad nameservers to WordPress nameservers. I’m self-hosting so need them to change to LunarPages nameservers. Can’t believe I did that. Thanks Joe.
So, in short, when having to deal with subdomain.typepad.com, a javascript-redirect is your best friend.
OK, here’s a question for you.
What if you’re on a TypePad subdomain:
mysite.typepad.com
Couldn’t you domain map that over to:
mysite.com
Then 301 redirect to a fresh WP install?
In other words, isn’t domain mapping the only way to use your own domain with TypePad, so you should be able to jump through that extra initial step even if you haven’t been using your own domain?
Thanks for your help!
Ready to argue with the themes of education-all. All the same, you can very well write about it
Wow that is an awesome post. Moving your blog into Wordpress can be a nightmare but the way you did it will help a lot.
mm.. thank you
Your news is a cool stuff man, keep it going.
Good information to me.
Stunning blog and good article. High 5 for u man !
Well, I moved my blog over to Wordpress from Typepad. They were both self-hosted via Godaddy.
The whole export/import thing was simple enough.
I really had no idea how SEO would be affected. It is awful. I went from 75 hits on a slow day to about 5 after the switch.
I’m getting the 404 error at the old links. I tried to change all Wordpress permalinks to match but of course it doesn’t allow .html suffix.
I’m still paying Typepad subscription for the next year (I have 2 other blogs with them) so I emailed them and asked if they can setup a re-direct message alert.
haven’t heard back yet.
Your info is helpful. Anything new?
Thanks!
Eric