Migrating Your Blog, Part 2

OK, so you’ve got a backup of your blog, so now where are you going to put it? The good and bad news is that there are a thousand choices.

Another WordPress Installation

If you are comfortable with WordPress as we’ve been using it in class, the simplest transition would be to get a hosting service where you can install WordPress and you can just transition directly over. Most hosting services provide easy ways to install WordPress (usually called a “1-click install”) or, for a little more, they’ll maintain your WordPress backend for you. Barbara and I have used Bluehost and Dreamhost as hosting services. Both have a variety of hosting levels, but you can usually get started for $75-100 a year.


If you like WordPress, but really don’t want to maintain, your best bet is WordPress.com, a service provided by Automattic, the main developers of the free WordPress.org software. They have a free level, whose main limitation is that your domain will include wordpress.com (e.g awesomesite.wordpress.com) and that they might show ads on your site. Their paid level starts at $99 a year and includes a custom domain name.

Other Blogging Software, Self-Hosted

If you’re hosting your own site with a general purpose host like Bluehost or Dreamhost, then you could also install a variety of other blogging platforms like Drupal or Joomla. If you ask yourself “why would I want to do that?”, then you don’t.

Other Blogging Platforms, Hosted

There are also a ton of options out there of blogging platforms that, like WordPress.com, take care of all the backend work for you. Blogger is one of the oldest such platforms and has a lot of flexibility. Tumblr is designed to be incredibly simple to use. SquareSpace is not free, but a good reputation for being a good balance between powerful and easy to use (they also sponsor a lot of podcasts, so it’s easy to find coupon codes for a discount).

Migrating Your Blog, Part 1

If you’re going to maintain your blog after class, you’re going to need to move it to a different host, because the IAM department won’t maintain these blogs for too long. And even after that you might find yourself moving your blog between hosting services for a variety of reasons like cost, performance, features of some new blogging software, etc.

This first part of the process is about backing up your WordPress site, so you have a copy to import somewhere else. Exactly how you need to back it up depends a little on what kind of host you’re moving to, but it never hurts to back up in multiple ways to have options in the future.

Method 1: Built-in Export

By default, WordPress has a simple export built-in. In the dashboard, under Tools there’s the option Export. There are hardly any options, just leave All Content selected and click “Download Export File”. Your browser will download a small XML file to your default download folder. “All Content” doesn’t mean what you might think it does—it includes all your posts, pages, comments, custom fields, terms, navigation menus and custom posts, but not images, themes, plugins, etc.

The file is small and easily backed up—you can even just email it to yourself, Also, this is the format you’ll need if you’re switching switching from WordPress to some other blogging platform. You can use an SFTP client like Filezilla or Cyberduck to log into your students.iam.colum.edu account and download the public_html/wordpress/wp-content/uploads folder in order to backup all your images.

Method 2: Backup Plugins

There are a huge variety of plugins for WordPress that let you backup to local storage, for download, or to Cloud storage services like DropBox or GoogleDrive.

I installed a plugin called “BackUpWordPress”. It added a Backups item to my Tools menu. I went into the Settings link there and changed the Backup selection from “Database Only” to “Database and Files”. I saved those settings and then clicked Run Now. It only took a few moments for the backup to run and then it was available to download via a link. This zip file contains everything needed to restore your whole blog to another WordPress installation, including posts, images, plugins, themes, and so on.

Next post, we’ll look at where you can move your blog to.

WordPress Apps

You can post to WordPress (and perform administrative tasks like approving comments and checking your stats) from your phone or tablet with the WordPress app.


When you start up the app, choose Add Self-Hosted Site. That will give you the extra option of putting in your site’s URL. For your class blog that’s the full address “http://students.iam.colum.edu/~your.name/wordpress/” (replacing, of course, your.name with your name.) The login and password is the same as what you use to log into your blog to post.



When you first sign in, the app will detect if you have JetPack installed (you do, don’t you, to get some analytics captured?) and prompt you to login to that. That’s your WordPress.com account, the same as for Jetpack or Akismet.



If you have Jetpack installed (like you should already) you can check your site’s latest stats in the pp. You can also approve comments and add or edit Pages and Posts. You can even upload pictures from right within the app—I was able to add the screenshots above directly from my phone.

With post frequency being one of the factors of blog success, the ability to post on the fly from a phone app could be a great benefit for your blog.

Survival CSS

In class this week I talked about Survival CSS—knowing enough CSS to be able to troubleshoot an issue with a plugin or change a color of an element of your Theme.

CSS stands for Cascading Style Sheets. The “Style Sheet” part means just what it sounds like—it’s what gives a web page its style and appearance. The “Cascading” part means that you can have multiple style sheets applied to the same web page; styles get processed in order and later or more specific styles “win”. That’s what will let us tweak our CSS without actually editing the original CSS files—we can add our own CSS styles into a special style sheet that gets applied last of all to our blog, so it’ll always win.

A CSS style consists of a selector (what part of an HTML document the style will be applied to) and then pairs of properties and values assigned to that property.

For example, if we wanted to set the font and color of everything in a paragraph tag in our HTML, the CSS would look like:

p {
font-family:”Helvetica Neue”,Helvetica,Arial,sans-serif;
color: black;
To get more specific in CSS, we can assign a class or id to tags. In survival CSS, you’re mostly going to be dealing with classes and ids that have already been set up in the themes you’re using. Classes are noted with a period and ids with a hashmark.
One of the most common things you’re going to want to edit in CSS is the color of something. Colors in CSS can be represented in several ways and the most common are:
  • As names—140 colors have specific names in CSS, ranging from common colors like blue and red to things like mediumorchid.
  • As RGB (Red, Green, Blue) values in hexadecimal notation. For example, blue is #0000FF, red is #FF0000, and mediumorchid is #BA55D3.
  • If both the numbers in each pair of RGB values are the same, a shortcut is to simply type the repeated digits once. So blue is #00F, red is #F00, and mediumorchid cannot be written with this shortcut, because the BA and D3 pairs are each different.

Let’s say we’ve got a Theme we like for our blog, but we want to change the color of just the description text under our blog name. In any of the major browsers, right-click on the description and choose “Inspect Element”. This will open a new panel in the webpage that shows you the HTML of that part of the page and the CSS that is being applied. Each of the browsers deals with this slightly differently and I happen to like the one in Chrome.


In the CSS panel we see all the different styles that are being combined to produce this section, in reverse order. If you scroll down the list you’ll see more and more elements with a line through them, indicating that they’re replaced by a later direction above. Right at the top we can see that the element we’re interested is part of the header and has the id “description” and is getting it’s color from a style that contains a few other properties as well:

header #description {
color: #888;
margin-bottom: 40px;
font-style: italic;

To change that color, we’ll go to our WordPress dashboard to Appearance > Edit CSS and create a style that overrides just the color definition.

header #description {
color: red;

Ta Da!

Look, My Text is in Red

Survival HTML

Last week in class we talked about “survival HTML”—knowing at least enough HTML to be able to troubleshoot your posts when the Visual Editor in WordPress has failed you and you need to dive into the Text side, or similar situations with widgets or a wonky theme. A couple of resources if you want to explore that further:

  • HTML Dog has some well-written tutorials covering all the basic HTML elements and Intermediate and Advanced sections as well.
  • W3Schools isn’t quite as cleverly written, but they have a “Try It Yourself” button built into every page that lets you work with the tags in an interactive editor/browser.


A couple of weeks ago I asked you to install Google Analytics and/or Jetpack, so you could start collecting analytic data. If you haven’t already done so, you should, and ask in class if you need help. In that post I breezily mentioned that getting a WordPress.com account, like you need for Jetpack, would also let you enable Akismet, to fight comment spam. I was reminded in class that there’s a little trick to the Akismet setup that you should probably know.

When you go to Activate the Akismet plugin, you’ll be prompted to get an Akismet API key. The sign-in for that is your WordPress.com login, and then you’ll be prompted to choose between Personal, Business, or Enterprise plans: choose Personal. The Personal sign-up screen has fields for you to put in your credit card, but don’t! (I mean, unless you really want to support their efforts: but I’m not asking you to shell out any more for this class.) Instead, notice the slider in the upper right of the form that asks how much the service is worth to you. Slide the slider all the way to the left to $0. You’ll get a little frowny face, but the credit card fields go away and become a Continue button. Press that and you’ll get your Akismet API key, which you can then use to activate Akismet on your blog.

Back Up Your Blog!

I mentioned this in class a few weeks ago and showed you where a simple backup function is, but it bears repeating: Back Up Your Blog. Especially since we’re using the blog as the main place where your graded content lives, you’ll probably want to make sure that in the unlikely event something happens to your blog that you have a backup.

On the administration sidebar is Tools and under that is a choice for Export. If you leave All Content selected and click Download Export File, WordPress will generate a single file that has all your Posts, Pages, and any Comments you’ve received. It will not have any of your uploads (images, etc) but that does mean for your new blog it’ll be a very small file. The export for this blog right now is 74 KB, which is about the size of a normal Word document. It makes it easy to email it to yourself, or throw it on a USB drive, or put it on your Dropbox or Google Drive. The file even has the date included in the name, so you can keep multiple versions of the backup.

There are plug-ins you could install that will automate backups for you, either storing them on the server (which probably won’t work on our server, given how locked down it is), or emailing it to you automatically.

Pages, Categories, Tags, and Menus

There seemed to be a little bit of confusion between Pages and Categories, so it seemed like something we should go over.

A Page in WordPress looks a lot like a Post—it has a title and a body section and when it’s published it usually (depending on your Theme) gets all of the same surrounding menus, widgets, etc. But it sits apart from the main flow of your blog posts and readers can only find it if you specifically link to it or include it on a Menu. Pages are usually used for information that you want to be always accessible to your readers, no matter how long ago wrote it: your About Me, how to contact you, legal disclaimers, a glossary of technical terms, etc. Pages can have a parent-child organizational structure and you can, in fact, use them to use WordPress to make static websites, like a “brochure site”.

Categories are an organizational  classification that gets applied to a Post. Categories can have many Posts assigned to them, and  Post can be assigned to multiple Categories. Categories can be a great tool for your users to find similar posts on a topic they like your writing on, and can be a useful organizational tool for you as a writer. As a general rule, you’ll probably want to have a few broad categories, with maybe a few levels of child-parent nesting. If you get too specific with categories, it’ll take longer for you to manage the categories and it’s more work for your readers to use them to find posts. You can also add Categories right from within the Add New Post window, so it’s something you can manage as you continue your blog.

Tags are another organizational scheme, but are designed to be even more granular. If your blog is informational, they can add a powerful mechanism for your readers to find posts on specific topics. They have also factored in some SEO efforts, so you’ll see blogs where people have gone a little crazy with the Tags.

As an example of the difference between the two concepts, let’s think about a blog about candy. You’d probably want some categories like Chocolate Bars, Hard Candy, and Gum. Over time, you might find that your readers really care about whether chocolate bars have nuts or not, so you could add With Nuts and Without Nuts as child categories of Chocolate Bars. Tags, on the other hand, could be used to include information about specific ingredients of the bar being reviewed (“cashews”, etc.), or to indicate information about the availability of a bar (“British” or “seasonal”), or even to include a rating (“1-star”, “2-stars”, etc).

Pages and Categories are often made available to your readers with a theme widget on the sidebar or footer of the blog, but to really highlight them, you’ll probably want to make a Menu. Menus can be created and managed under the Appearance section of the administration sidebar. You have to make a Menu before you can edit it—if you’ll only going to have one, just call it something like “Main”—and then you can drag items from Pages, Categories, and Links over to your Menu and re-arrange them by dragging them around inside the list. The Manage Location tab shows you where your theme will let you place the Menu.

Analytics Etc

In class today we’re going to talk about getting started with analytics. Analytics and data can’t write your posts for you, but it can give you some clues as to what your readers are interested in and where they are coming from.

Jetpack, a suite of plug-ins from Automattic, the main developers of WordPress, includes a simple analytics (“Stats”) page. You can install the plug-in through the built-in Plugins > Add New page. You’ll need a WordPress.com login to activate Jetpack, but it’s worth the effort because having that login will also let you get an API key to enable Akismet, which fights comment spam on your blog.

Google Analytics are a lot more powerful (and also more complex) and there are a number of ways to install it into your WordPress. I use the simple plug-in Insert Headers and Footers to insert the Google Analytics code into my site.

Once you’ve set up a Google Analytics account and added your site to it, you can go to the Admin page and click on Tracking Info:

Installing Google Analytics - Step 1

That will open up the Tracking Info section and reveal Tracking Code:

Installing Google Analytics - Step 2

Clicking that will show you your tracking code:


Copy that to the clipboard and return to your blog dashboard. Under Settings you’ll find Insert Headers and Footers (once you’ve installed it, of course) and you can paste the code into the Header section. That will insert it into the Header section of every page on your blog.

Installing Google Analytics - Step 4

Click Save to save your changes.



SFTP Install and Update

WordPress is one of the most popular blogging platforms these days, which has pros and cons (as with everything). On the plus side, there’s tons of themes and plug-ins available, many of them free. On the downside, WordPress is a popular target for hackers and malware. So you’ll want to keep your WordPress installation and your plugins up-to-date.

As some of you have already discovered, there’s a built-in updater and installation mechanism in WordPress that uses FTP or FTP-SSL to transfer the needed files to your WordPress installation. But, as those same people have found, FTP and FTP-SSL are blocked on our IAM server, for security reasons. If you were paying for commercial hosting, this would be the point where you’d be contacting the support for your service.

The IAM server does support SFTP, a secure form of FTP. And some quick Googling reveals a WordPress plug-in that adds SFTP support to WordPress. Which would be a bit of a chicken-and-egg problem of installing a plug-in when you can’t install plug-ins, but I’ve gone ahead and added the plugin to everyone’s installation in B:BTB. You’ll just need to activate it.

In your WordPress dashboard, click on the Plugins section of the sidebar, find the SSH SFTP  Updater Support plugin and click on Activate to enable it.



Now that it’s activated, when you go to any of the functions where you can update a theme, a plugin, WordPress itself, or when you can install a new theme or plugin (for example, the Add New button in Themes):


You’ll have a new option in the Connection Info. At the bottom of the panel, you’ll need to select SSH2. You’ll then need to fill-in some values:


Hostname: students.iam.colum.edu
FTP/SSH Username: firstname.lastname (your IAM account name)
FTP/SSH Password: [your IAM password]
You don’t need a Private Key for our IAM server.

WordPress will remember the first two values for future updates, but you’ll need to put in your password every time.