In a free and open web one would expect to be able to move one’s website from one service to another without too much hassle. But unfortunately many parts of the web are neither free nor open and making an escape with a blog from Typepad to a WordPress installation requires a bit of tinkering. While there are quite a number of reports by others of how to move away from Typepad exist on the web I thought I’d add my story as well because in the end it was less complicated than I thought. Overall, it took me about one and a half days to get things done. It could have gone faster but I wanted to experiment a bit to get exactly what I wanted. Read on for the full story.
So here’s what I wanted:
- To get out of Typepad and migrate WordPress.
- To be in control over my domain name, i.e. the domain name must be independent of the hosting provider to allow me to move to someone else whenever I want.
- The blog should be https only, i.e. no non-encrypted transport over http.
- The site must be reachable over IPv6.
- My own RSS feed (no more Feedburner), no Google Analytics or any third party widgets on my blog for my privacy’s sake and those visiting my blog.
- A cool backup strategy.
Finding A Web Hoster
Let’s start with where to move. Basically I considered three options. I could of course host my blog at home on my own server. As there is no private data on my blog I decided there isn’t really a necessity to do so and I’d rather use my uplink bandwidth for other things. Also, should I ever get DDOSed there’s little I can do if my blog is at home. At the other end of the spectrum I could host my blog at WordPress.com. While that might be the easiest way I would again be locked into a blog hosting platform and it wouldn’t give me the kind of control and flexibility I wanted. So I settled on the third approach which was to find a web space hosting provider and to install my own instance of WordPress there. There is quite a range of different web hosting providers which again give you more or less freedom with your projects. In the ended I decided to go to Uberspaceas they are as flexible, as geeky and as professional as you can probably get. “Let’s Encrypt” SSL certificates, IPv6, geeky documentation, etc. etc. I’ve blogged about them here if you are interested in the details.
I’ve been using www.wirelessmoves.com as my domain name for the blog and in my books for many years. Unfortunately, I decided not to fully use it with my blog at Typepad but only to forward any incoming traffic to mobilesociety.typad.com. Moving from Typepad to a WordPress installation thus meant that I couldn’t just redirect all incoming traffic away from Typepad to my blog’s new home. While this is a pity it’s going to be interesting to observe how long it will take for the search engine reputation of my new home to exceed that of my former Typepad home.
How To Move
The part I was most unsure about was how to actually move the blog with everything, i.e. with all images preserved and stored at my new location, properly embedded with thumbnails and larger versions when someone clicks on them and, very importantly, links between blog posts not pointing back to Typepad but to the new location. Typepad offers a rudimentary way to export all blog posts and comments to a text file and there seems to be a WordPress plugin to import all of that. However, all references and images would still be stored at Typepad. Manually changing all these things was out of the question as I had more than 2000 blog posts and about 1000 embedded images accumulated over the past 10 years. I first played with the thought of writing a converter myself. After a bit of searching the net I found TP2WP that does the job for $50 and was recommended in a couple of blog posts. While it would certainly have been fun to do the converter myself, $50 in exchange for zero effort is hard to beat. So I decided to give it a go.
After installing a new WordPress instance and using TP2WP’s converter service for the text part of my posts, I installed their plugin into WordPress and made a first run at importing my images. I ended up having every post duplicated because unlike in their video there was no feedback during the XML text import of all posts and I pressed the start button twice. No harm done, I just deleted the whole WordPress instance and dropped its SQL tables from the database and started over. Re-installing WordPress just takes 5 minutes so no harm done. On the second attempt I was smart enough to only press the start button once and be patient enough until all blog posts had been imported. Once done the TP2WP plugin imported my pictures once again.
While this worked flawlessly I noticed a bit later that I was logged in via http and not via https so all links to embedded images were via http and not https. So even if I accessed the blog via https the images would still load via http which would in turn give me a mixed content alarm in the browser. Not a good thing. So I decided to once again start from scratch by deleting the blog instance and database tables and to make sure I was using https during the import process. The third time around I was patient enough to wait for the XML text import and to run the images import via https so my system was finally up and running.
Getting Those Links To Other Posts Right
While the TP2WP tool imported all my blog entries and images perfectly one thing it didn’t do was to rewrite links in blog posts to other blog posts. As my blog posts are often related I have quite a lot of those. All of them unfortunately still pointed to my old Typepad location. After a bit of research I found out that this could be corrected by updating the SQL table that contains the text of all my posts with the following SQL statement via the phpMyAdmin mySQL console:
UPDATE wp_blog_posts SET post_content = replace(post_content, 'http://mobilesociety.typepad.com/mobile_life', 'https://blog.wirelessmoves.com');
In total the single command rewrote around 1450 links in a fraction of a second. And that was pretty much it, now all my blog entries and images were on my own site and all links to other blog entries on my own blog were now also pointing to the right location.
Now that all my content was in the right place and properly linked I made the final touches by selecting a layout, adapting the commenting section, installing the ‘Counterize’ plugin for internal statistics generation instead of having to rely on an external service for this and to add a number of things to the sidebar like the links to my books, the Q&A section, the about page and a couple of other things. Also I modified my .htaccess file to automatically redirect incoming http requests to https.
All in all, quite a bit of work but probably nothing compared to what would have been necessary if I had to come up with the code to convert the blog entries and retrieve the images from the old site and import it to WordPress myself. One word of caution about TP2WP that seems to be a product of ReadyMadeWeb LLC, however! While the converter has worked great I was unable to obtain a proper invoice from the company despite several attempts to contact them via their website. Quite a shame it significantly taints an otherwise great performance of the product.