A Moving Story

If you’re not interested in running a blog on WordPress then this post will not be interesting to you. However, if you have an interest in hosting and domain servers then read along. I was previously hosting this site on Bluehost.com. My domain had been hosted there since 2006 with a few hiccups. I changed domain names on December 30th, 2010 and lost quite a bit of content from the previous year. It’s a long story and not very interesting. I was dumb and lazy.

This past year, traffic has increased and Bluehost began to show some cracks in their service. The overall uptime had decreased dramatically, even by their own admission. Customer service had also become dramatically worse. A typical scenario was that I would try to post content and the site would be completely unavailable. I would contact customer support and receive an email reply 12 hours later stating that the site was up. Well, no duh. Even worse, they began to delay responses by requesting additional authentication before responding. This was particularly annoying given that my requests were made from my admin account on their support page. Twitter proved that my situation was not unique.

I began the hunt for a new hosting service. I had there requirements for any company I would consider:

  1. Quick response to support emails (no more than 2 hours)
  2. An honest SLA (or uptime guarantee) that they could send in an email
  3. Some way to demo without a large investment

SquareSpace

I really wanted to move to SquareSpace. They support my favorite podcasts and they have good taste. A great thing about SquareSpace is that they offer a 14 day unpaid trial period. That allowed me to do a test migration of my content and tryout some designs and trial posts. The trial was a lot of fun and demonstrated why so many people are choosing to migrate to SquareSpace servers.

In the end, there were a couple of things that dissuaded me from going with the cool kids over on SquareSpace. First and foremost, I post code to my site regularly. I use the CodeColorer plugin for WordPress. That allows me to stick with the standard “code” tag but get language specific syntax highlighting. There were a couple options for SquareSpace, but nothing out of the box. It would have been a hack and I would have to always post via html instead of their lovely Markdown interface.

Code formatting alone would not have been enough. I migrated a good amount of existing content during the trial period. Several images were lost and some formatting was mangled. Now it is likely that the issues are on my end and I am missing some closing tag somewhere. But the fact remains that the posts render just fine on WordPress.

Finally, I’m really happy with my current workflow for making posts. I upload images via FTP as I capture screenshots and paste the automated URL right into the draft as Markdown. Now, I could come up with an equally satisfying workflow that involved some other options but everything I tried was more complicated than writing in NVAlt and Simplenote and converting to html on the fly for posting.

Big Kahuna

I found two other hosts that replied to support emails promptly and thoroughly and offered some kind of uptime assessments. KahunaHost was one of them. Here’s the reply I received when I asked about their SLA for one of their hosting plans:

“It’s 99% on Just Me packages and 100% on Business. Uptime is currently at 57 days since the last interruption which was 2.2 seconds in duration. http://www.kahunahost.com/clients/serverstatus.php

Sounds good to me. Keep in mind, most hosting services will not provide an SLA. The fact they even shared one was a huge win. I came very close to moving to KahunaHost.

WebFaction

WebFaction[1] came up in a conversation with a friend of mine. We were talking about learning Django and he had heard good things about them as a Django host. It didn’t take much to figure out that they are a full feature hosting service, and not Django specific.

They could not provide an SLA but they did provide a very prompt and honest answer. They provided their uptime for the last year which was >99%. It was a good enough response to purchase a one month trial. In contrast to many hosting solutions, WebFaction provides an option to purchase any number of months of service with a discount for longer periods. That one month trial is what sold me. It was cheap enough that it didn’t feel like a commitment but flexible enough, I could test every aspect of the service.

Keep It Simple

What first struck me about WebFaction was that it has a very minimal admin console. The design speaks to its purpose. The goal is to get something installed and running and then just work with application. The WordPress installation was as simple as possible.

What really sold me on WebFaction was that I wanted to start learning Django. The installation was about a 5 second investment to have a working Django instance installed.

Beyond WordPress and Django, they offer a number of other application packages to install, for example WebDAV and CherryPy.

Then there’s the backend access. Unlike SquareSpace, WebFaction lets me use SSH and FTP to interact with the server. While this sounds like a pain, I have a number of macros and scripts that push and pull content with the server. On my end, I’m generally just hitting a keyboard combo and then waiting for a Growl notification of completion.

Performance

WebFaction is fast with little latency for a shared server.

The recent links from MPU and Brett Kelly probably sent a fair amount of traffic my way.[2] WebFaction performed like a champ. I didn’t notice any delays in the page loading. I don’t know the exact amount of traffic, but I do know that when MacSparky linked me awhile back, BlueHost choked and throttled the sight for over a day.

This site is on a shared server but WebFaction appears to have a low population for each server. I can tell, because through FTP I can see all of the other home directories. I can’t get into them, but I can see the total number and there are not many. On my previous host, I could see all of the other servers through the inscrutible log files that were generally filled with hundreds of other servers and their respective errors. Yes, their server logs were shared. Try troubleshooting that.

Moving a Site

Now for the reall nerdery. The move to a new host was pretty painless. So painless, that I was sure I had missed something. I performed the migration in the following order.

1. Create a New WordPress Instance

WebFaction allowed me to create a domain named macdrifter.webfactional.com. It’s still there if you want to check.

I just performed the out-of-the-box install of WordPress and set the admin password. Done.

2. Export WordPress

I made a backup of all of the wp-content by downloading over FTP and cloning to a backup drive. I should have also made a database backup but BlueHost had enough barriers up to prevent it, that I didn’t hassle any further.

I then transfered all of the wp-content to the WebFaction instance via FTP.

The accepted way to migrate a WordPress site is to use the built in export function to download an XML file of the existing site. From BlueHost, this took about 10 minutes. I then imported into the blank install on WebFaction which took about 1 minute.

From the new host I performed the WordPress import without incident. I did a random check of the content and everything looked in order. Moving on…

3. Configurations and Plugins

Trust me, do the configuration and plugin installs while you still have access to the previous WordPress instance. There’s no way you’ll remember it all. I just kept both admin panels open and progressed through each section turning knobs and hitting buttons.

I also took the opportunity to change the design. I moved to the Cleanr theme and began tweaking the CSS and sidebar. It’s important to try this with actual content since I wanted to check how code and quote blocks looked. After I was happy with the design it was time to test.

4. Test Posts

I published multiple posts with every kind of element that I would normally include. I also tested posting from the WP Console with Brett Terpstra’s excellent Markdown plugin QuickTags.[3]. I also had to reconfigure all of my macros and scripts to point to the new server. Testing put my mind at ease, but I still needed to move domain and point it to the new host.

5. Move the Name Registrar

BlueHost was also my domain registrar. I decided to cut all ties and move my domains to Hover.com[4]. The process was easy and required little more effort than filling out a form and then releasing the domain through my BlueHost account. Hover is almost too pleasant to use. I ended up moving all of my domains and buying a couple extra. There’s no up-sell or pressure. It’s all above board.

The last step was to change the name server at Hover to point to WebFaction. Not much else to say. It’s just a matter of pointing to ns1.webfaction.com. So I held my breath and saved the name server setup. It took a day or so for the redirection to propagate but by Tuesday, the site was live and functioning as planned.

Conclusion

This process sounds like a lot of work. It was. However, submitting support tickets is also a lot of work. Moving to a new host is work I only need to do once. In reality it also provided some unexpected benefits. It allowed me to focus on simplifying my site and reduce the number of plugins. It also caused me to reconsider my backup system for the site. I had been running a backup plugin but when it came time to try and use the backup, it failed. The best backup for me is the simple XML export from WordPress and an FTP’d copy of the content. I’m also now planning on periodic database backups.

Onward

I’m hoping to learn enough Django to move the entire site to a new platform. Why? To learn something new and give me more control over my own site. Of course all the sausage will get made on a staging system that has no connection to Macdrifter.com.


  1. That’s an affiliate link. If you like WebFaction and sign-up through that link, I get a little kickback towards the cost of my hosting.

  2. I’m not sure. I have not checked Google Analytics. I try to stay away and only check once or twice a year. I find it corrosive to my enjoyment of the blog.

  3. Seriously. This is a must for Markdown lovers. It’s so full featured it’s rediculous. I’m also declaring this Brett Terpstra week.

  4. Remember Tucows? They’re now Hover. Great company.