May 2009
M T W T F S S
« Apr   Jun »
 123
45678910
11121314151617
18192021222324
25262728293031

My First 50 Days of WordPress – Part I

Lord, you shouldn’t mistreat me, baby, because I’m young and wild,
Shouldn’t mistreat me, baby, because I’m young and wild.
You must always remember, baby, you was once a child.
- RAGGED & DIRTY

It’s been about 65 days since I started this blog, and about 50 days since I moved from hosted WordPress.com to a self-hosted version. Since gaining my freedom, I’ve learned a lot about blogging, WordPress and various tools of the trade. For some reason, I’ve struggled to find resources that list all of the nice tips and tricks out there. The sites I’ve found are generally full of crap. So I figured I might as well brain-dump what I’ve used and learned. I’m sure you all know all of this already, but if nothing else it will help me remember what I’ve done. As usual, I have to thank James as he is the brains behind the operation.

In this post, I’m only going to talk about how it is built – the on-site stuff. In Part II I’ll talk about the off-site pieces – things like Twitter, Directories, SEO and other external tools. And yes, I know I have a blog with hardly any visitors. But at least it is a compliant, SEO friendly blog so that all I can blame for the lack of visitors is my content.

The Theme

I didn’t put too much thought into this, and just looked for one that looked simple and flexible. I picked Atahualpa Theme by BytesForAll which has worked nicely. It has many options and has allowed me to change virtually everything I’ve wanted to without writing any PHP code or changing the .htaccess file. The theme handles favicons properly, which is nice. I notice many many WordPress blogs still have the good old out of the box W icon. It also lets you flip between excerpts and full posts on the listing pages, which I like. Finally, it is really easy to add custom HTML or CSS anywhere. Have done a fair bit of this.

Of course, I wouldn’t pick a theme without ensuring it produces valid XHTML. This one does, and the blog validates using the W3C validator at the time of writing. However, I didn’t validate the CSS when I chose it which was a pity as this is a bit of a disaster. Something to try to fix later.

Key Plugins

I’m not going to go into any detail here as I’ve gone with the mainstream ones. I’m also not going to mention the gimmicky plugins that appear in the sidebar. The ones that provide core functionality are:

  • Akismet – saved my ass. At the time of writing, I’ve had 229 real comments and Akismet has blocked 635 spam comments. It’s let 1 spam item through, and blocked 2 that weren’t actually spam.
  • All in One SEO Pack – this works well and plays nicely with my theme. See the later section on Google Webmaster Tools.
  • Google Analytics for WordPress – of course. Much better than the other WordPress options
  • Google XML Sitemaps – you’d be mad not to. It works very well. My sitemap is here: http://jonontech.com/sitemap.xml
  • No Self Pings – great if you like cross-linking between your own posts like I do
  • Sociable – to allow all the community site features beneath each post. Sadly, no-one seems to click them. And we needed to change the CSS on the theme to make it pretty.

RSS Feeds

Everyone is using FeedBurner, so I joined the party. I have two feeds – one for the postings and one for the comments. The only person who has subscribed to the comments is me. It isn’t linked to on the site yet. The FeedBurner feeds look like this:

feedburnerfeeds

First step was trying to decide what URLs to give the feeds. I asked James (he is, after all, on the RSS Advisory board) but I can’t remember what he said, so screwed it up going with /jonontech for the main one and /jonontech/comments for the comments one. Bit lame, really. James can’t remember what he recommended. Anyway, moving on, the feed details should look something like this:

feedburnerdetails

Last step was to kill the horrible http://feeds2.feedburner.com/ FeedBurner domain and use mine. Off we go to the MyBrand page which lets you do just that. I decided to go with feed.jonontech.com as the domain, so I just need to head off to GoDaddy to enter a CNAME (feed CNAME 181d3ce.feedproxy.ghs.google.com) as instructed, and follow the simple instructions. Make sure you only promote your nice new feed URL- in my case, this is http://feed.jonontech.com/jonontech.

We’re not quite done with the feeds yet. As usual, let’s make sure everything validates. Off we go to www.feedvalidator.org. All good as you can see here and here.

OPML Feed

I really like RSS. I read my feeds on the tube (i.e. subway) on the way home as I don’t have internet access there. It’s pretty tedious to add RSS feeds to my shitty iPhone RSS client, but it does do OPML. I decided I’d like to add my entire blogroll in one go. Enter OPML. I found a plugin called Get_OPML which sort of does this. Once you install it, there are two steps. Step 1 works well. You click a button, and it runs off to your blogroll and technorati (you need a technorati API key) to update the RSS field in your blogroll links. Admittedly, if your blogroll is short your could skip this and just enter the RSS feed URLs yourself when you add a blogroll link.

Step 2 sucked a bit. It generates the OPML file from the blogroll. Two problems. Firstly, the query gets ALL links, not just the ones in the blogroll. So all the “About Me” rubbish and more. To avoid this, I hacked the SQL query in the module to only get Blogroll entries. In case anyone wants to do the same, the new query looks like:

SELECT link_id,link_url,link_name,link_rss
FROM wp_links AS l
JOIN wp_term_relationships AS r ON l.link_id = r.object_id
JOIN wp_terms AS t ON t.term_id = r.term_taxonomy_id
WHERE t.name = ‘Blogroll’ ORDER BY link_id ASC

Second problem – the dude that wrote the plugin hard-coded his own feed into the plugin. Lame. Comment it out. And Have a look at my OPML file if you want to add everyone to your RSS readers.

As usual, let’s validate it. At present, the only OPML validator I am aware of is dead, but maybe it’ll come back. I don’t know if my OPML file validates.

Mobile Version

A colleague of mine told me I need to get myself a mobile version, and pointed me at Mofuse. The setup was really painless. Go to their site, create an account and add a mobile site. You’ll need to pick a SiteID so your site becomes available on <SiteID>.mofuse.mobi initially. Enter the link to your RSS feed, and you’re done. You can upload upload a header image, pick some colours and even add pages to your mobile site if you want to. I just did the header and colours and left the rest as it is. That’s it – you’ve got a mobile version which looks something like this:

mofusepreviewphone

There are a few other things worth doing. I like everything under one domain, so using their Custom Domain option on the dashboard, I added m.jonontech.com. Then it is back to the Daddy to add a CNAME mapping m -> jonontech.mofuse.mobi. After all this, my GoDaddy Total DNS looks like this (also see the feedburner entry):

totaldnsBut wait, there is more. Fancy a dedicated iPhone version? Mofuse support this too. Just go to the iPhone Settings option on the dashboard and follow the simple instructions. You can see my iPhone version at m.jonontech.com/iphone. They’ll use your HTTP User Agent to make sure you see the right version. But how does WordPress know to send a visitor to the main site to the mobile site. That’s easy too! Mofuse supply a WordPress plugin that does exactly that. Download it, install if (version 0.9o is the one I’m on), and configure it. Screenshot of the configuration is shown:

mofuseplugin
All done. Cheap and cheerful mobile version.

Google WebMaster Tools

I’m presuming all you bloggers out there are using the Google WebMaster Tools. If not, you’re insane. Add your site, verify, and away you go. Make sure you register your Google sitemap that you created earlier. You can add the Gadgets to your Google Home Page if you use that. Look at all the errors and warnings you get, and try to fix them. I’ve managed to get rid of all of mine now, which the exception of some old Page Not Founds which a new crawl should fix.

googlewebmasterOne thing I did discover – WordPress out of the box is configured so that it will cause duplicate content errors, which Google doesn’t like at all. This is due to pagination of comments. In order to correct this, siply don’t paginate them. So go to Settings > Discussions, and uncheck this checkbox:

pagingcommentsFinal Thoughts

That’s all for now, I think. In closing, a couple of questions for those that know what they’re doing. Firstly, I hate links that open in new windows. So all my links use the same window. However, I’ve had a few people complain about this as they say they keep leaving and having to come back to the site. What’s best practice these days? Secondly, I’ve gone with jonontech.com as the canonical URL instead of www.jonontech.com. Is there a good reason to pick one over the other? Finally, I’m not going to put any badges (e.g. This site is valid XYZ) on the site. They’re not as bad as ads, but who needs ‘em. Right?

If anyone knows of some sweet plugins or tips out there, please let me know. You can read about the second 50 days in My Second 50 Days of WordPress – Part II.

  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Digg
  • LinkedIn
  • StumbleUpon
  • Technorati

13 comments to My First 50 Days of WordPress – Part I

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>