A tour of my WordPress plugins

I don’t write many meta-posts, but I was just asked for the forty-seventh time which WordPress plugin I use for this or that.

I know I recently said your blogging platform doesn’t matter, but it’s not that it doesn’t matter at all, just that it’s not the primary driver of success and shouldn’t be the first thing you spend time on.

But still I take pride in my work, and that means attention to detail, and that means customizing the blog for both appearances and utility.

So here are the WordPress plugins I use, and why.

Can’t live without these:

  • Akismet
    Free comment-spam protection from WordPress. You’ll need a WordPress account but it also works on a self-hosted blog (like mine). I get 30 spam comments per day, and Akismet blocks very nearly all of it.
  • Comment Relish
    Auto-email (once!) after someone comments for the first time to thank them and encourage dialog. Blogging can be a one-way soap box, which is OK for some people but not for me. This is on the must-have list because I’ve had scores of interactions (both short and in-depth) as a direct result of someone hitting “Reply” to this email.
  • Secure WordPress
    Alerts you if your WordPress installation is insecure, at least in a few common ways. WordPress is easily hacked!
  • WP Super Cache (Update: W3 Total Cache)
    Automatically caches plain-HTML versions of your pages. This saved me — the times I’m slammed with traffic (usually Hacker News or StumbleUpon) Apache can croak. Really it’s not Apache per se — it’s that WordPress is (famously) inefficient and Apache PHP threads running WordPress each occupy 20M of RAM, so if you have 50 simultaneous connections you’re likely to either run out of memory and crater the server (at worst) or display a “Not available” message (at best). Since installing this plug-in I’ve had no problems with scalability.

    All I can do now is hope that I get slammed with even more traffic!  :-)

  • Yet Another Related Posts Plugin (YARPP)
    This generates those “related posts” at the end of each article. A lot of plugins which do this; this one does the best job deciding what “related” means and has good options allowing me to exclude certain types of posts (e.g. announcements).

    I used to think this was just a nice-to-have toy, but it turns out to be a big deal. It’s most important for new readers who haven’t seen old posts — especially anything older than the 10-15 posts displayed by your RSS reader when you first subscribe.

    I noticed that after adding this plugin there was a significant increase in kind, magnanimous folks Twittering older articles, typically those listed under “related” on the latest post. Not only does it mean folks are more engaged in the blog, they’re spreading the word. Anything that helps spread the word is good!

Nice-to-haves:

  • WP Greet Box
    Generates a message near the top of the page suggesting that you subscribe by RSS or email, tuned to the source of the traffic (e.g. Hacker News, Search, Twitter, Reddit). I don’t know if tuning to traffic source helps, but having the message at all does seem to encourage subscriptions.

    Although once someone on Hacker News complained that “Hacker News readers are smart enough to know whether to subscribe or not, so this is insulting.” I would have thought it was just that guy, but his comment was then up-voted 26 times! Lesson? Pleasing a few people is hard, pleasing many is impossible, and pleasing all while also achieving your own self-interest is… also impossible?

  • CommentLuv
    Appends link to a person’s latest blog post when they leave a comment. An easy way to promote the blogs of your commentors, which means an easy way to encourage more comments and to say “Thanks for contributing, here’s my way of automatically contributing a little back.”
  • Get Recent Comments
    Sidebar of latest comments, again to thank/promote.
  • No Revisions
    Wordpress saves a post revision every time you hit “save.” This enables “revert” but it also fills your database with crap, which in turn slows down the entire site. Not worth it. Anyway I write everything in a text editor (Notepad++) using Sphinx because I can write in plain-text with simple stylistic markup instead of cumbersome HTML tags, and the HTML it generates is plain-Jane so it’s easy to paste into WordPress, touch up, and schedule for posting.

Not even sure if it makes a difference, but…

  • Google XML Sitemaps
    Creates proper Google sitemap automatically.
  • Robots Meta
    Automatically create a “robots” meta-tag for search engines.

Conspicuously not a plugin

These aren’t plugins, but they’re WordPress customizations. I did all of these in PHP, linked in the “right” way with hooks and filters. I also use the Thesis WordPress Theme for overall site structure and I used the hooks from that system as well.

  • The “Twitter me” button
    Appearing at the top and bottom of posts, both on the web and in the RSS feed, this is the Tweetmeme button that millions of other people use. There are plugins for this, but none could place the button in those four spots, none put the button where I wanted it (i.e. outside the main text, not word-wrapped inside), and none could handle the use-case of dealing with imported posts from other blogging software (I used to be on Squarespace).
  • Automatic reformatting
    I like to use things like em-dashes — the extra-long dashes bracketing this phrase — but it’s easier to type two dashes in a row. On the other hand I want simple quotes, not curly quotes. There are plugins to do things like that, but I wasn’t happy with the options there so I wrote my own filter.

    This might sound petty and too detailed to be concerned about, but just because these things might not matter to overall success/failure, it doesn’t mean I don’t take pride in making things just so!

    And there’s a better reason. HTML on the web I can format with CSS, but HTML in RSS readers I cannot. And worse, usually the CSS for them sucks. So for example, I use <H3> tags for section dividers, but in many RSS readers those aren’t even displayed bold, or the text size is weird. So part of my filter takes all <H3> tags and brackets them on the inside with a <B> tag, but it does this only for the RSS feed. This way my HTML can be simple and styled, but the RSS feed works better in practice.

Hopes this helps some of you. Would you like to see more posts like this — mechanical stuff — or do you come here for the stories and a good kick in the pants? Leave a comment and let me know.

36 responses to “A tour of my WordPress plugins”

  1. Thanks for the list. I particularly like the idea of Comment Relish and Secure WordPress. I am going to give them a try.

    I find WordPress quite limiting though. I cannot “test” a change without publishing. I am thinking of installing another WordPress on my development environment to test changes there first. If they look good, I can then move the files to the production environment.

    This would be useful, for example, when you want to make a change to the header, but you’re not sure if it’s going to look good.

    I wish there was a plugin for this!
    .-= Giammarco Schisani’s latest blog post: Who, What and How – Three questions to define your business strategy =-.

    • So I do exactly what you’re describing! Here’s how:

      1. Create a subdomain for the fake site so it’s easy to surf to it from the outside. I won’t tell you mine because I don’t want it listed anywhere!

      2. Write a script that copies all files AND dumps/restores the MySQL database into the separate area. This is what you use to “reset” the staging area with the latest stuff.

      Besides that there’s a few things you need to change because of the different URL, such as the “root URL” setting in the database and which database it’s pointing at in the configuration PHP file.

      Email me if you want me to send you my script as a template — I’ve already run into all the issues!

      Note: Because your live site is, well, live, you can’t make changes to the staging area and then blast over the existing site in the same copying manner. So you have to test something out, get it how you like, and then manually do that in the live site.

      With something like CSS or some PHP changes, you can just copy. But with database changes it’s too hard.

      Hope this helps! (And agreed it would be awesome to have this as a plugin!)

      • Hi Jason,

        Thanks for your reply. I have installed and activated the Secure WordPress plugin. Hopefully my website will be a tiny bit more secure now.

        I have recently done some secury tests and, since we’re talking about this, I would advice logging in your WordPress using HTTPS, especially if you use a wireless network. It’s really easy to grab credentials if you don’t use HTTPS. Same is for FTP connections, when uploading images and similar.

        Thanks for the advice on how to test changes before deploying to live. I would actually appreciate the script. It would save me a bit of work. I like the idea of making a dump of the database and restoring it on the dev / staging environment. Please let me know if you want me to e-mail you my email, but I think you have it.

        The initial way I was thinking of testing changes in WordPress is slightly different. Initially I thought I just have two WordPress installations using the same database. I have actually never made any change to the WordPress database. But I think your script also allows you to make changes to the DB, so I think it’s a better approach.

        Thanks again for sharing.
        .-= Giammarco Schisani’s latest blog post: Who, What and How – Three questions to define your business strategy =-.

        • Ah but you do make changes to the WordPress database, indirectly.

          When you try out a new plug-in for example, its configuration is stored in the database. So if you were sharing a database, that’s a problem.

          If you wanted to upgrade a plugin or WordPress complete, that changes the database; you can’t run two versions of WordPress on the same database. Or at least, that sounds awfully unsafe to me!

  2. To answer your question, yes, absolutely – you should do more posts like these. I like that you shake it up with different types of posts. Blocking and tackling along with thought provoking strategy.
    Good post. I’m going to try out YARPP.
    .-= Andy’s latest blog post: Lesson from Colt =-.

  3. You are Super… :)

    I have just installed WP Super Cache, WP Plugin Cache and No Revisions plugin after reading this blog post. At first, I did not trust cache plugins, but recently, my blog has become extremely slow, thanks to that cheap server I host my blog on…

    But now there is no option but to use caching.

    And for the plugin No revision, that is a great tip.

    Thank you mate…

    Cheers!

  4. I was one of those people that replied back to that email you send out on a comment. And what followed was a short but insightful email conversation. I found it made an impression on me because not many people do that.

    I’m also one of the people that asked you about your plugins, so I know this excellent list already. In any case, I think some posts like this would be great, as long as it’s still mostly about startups and biz stuff :)

  5. I certainly want to hear about the mechanics of a good Word Press site. It’s really helpful.

    A couple that I can’t live without are:

    – Markdown for WordPress and bbPress: Great way to cut and paste from any editor and have the Markdown tags just work.
    WordPress Database Backup: It’s a real simple way to back up your data without having to log into you server.
    .-= Jarie Bolander’s latest blog post: Topic #13: Negotiating =-.

  6. Thanks for all this info Jason – whilst I appreciate the blogging platform isn’t the be-all-and-end-all, especially early on, like you I take pride in my work (actually I’m obsessive, but I’m having therapy for that) and have tried to learn from your site about how to do this sort of thing better. This post is a big help – I’ll be loading up a lot of your recommended plug-ins first thing next week.

    As you don’t do many meta-posts, would you mind saying something about how you prepare your posts – do you use an off-line app? I’ve tried a few – BlogJet, Windows Live Writer, etc., but never really been satisfied, and I inevitably spend ages in WordPress anyway fixing my posts up before publishing. It would be interesting to know a bit about your approach.

    Thanks for an excellent source of start-up info, BTW.
    .-= Steve Wilkinson’s latest blog post: Management – a Necessary Evil? =-.

  7. Thanks, Jason. I like this post.

    Blogging is one of today’s imperative tasks for a developer. Knowing how to do it is surely important.

    Please post more like this!

  8. Thanks, Jason.

    I recently moved my blog to a new domain and away from my own server and to wordpress.com because I was having some technical difficulties with my installation. Sadly, many of these plug-ins are not available via a hosted installation, so I’m thinking about moving it back. Reading your post makes me realise that the pain of keeping a self-hosted WP installation operational may be offset by the benefits of plug-in-ability. My current package even charges me money if I want to modify the CSS (which is why I’ve left it as I’ve metaphorically kept my coat on in case I want to make the journey back). Anyway, I digress: good post, and you may have tipped the balance back in favour of self-hosting for me, at least…
    .-= John Clark’s latest blog post: Distracted by Shiny Things =-.

  9. Jason – a few questions for you RE: CommentLuv:

    1. What is the general viewpoint for using this type of “link back” solution in the blogging world? Is it considered acceptable or spam (do you know?).

    2. What about how Google views this in respect to how it evaluates a blog for Page Rank (it appears they frown on it)?

    I am new to this level of blogging protocol and trying to understand what downside there is to using this type of Plugin. The upside is so obvious and helpful. Your thoughts are appreciated.

    • Great questions. Answers:

      1. It’s acceptable; certainly not spam. In fact this is a very common plug-in.

      2. If you look at the page source, you’ll see that those links have an attribute called rel='nofollow'. This tells Google “I’m linking to this site, but don’t worry about Google Juice.” It’s also a way to say “Yes I have all these links, but no I’m not trying to game the system!”

      In general I’ll say this too: It’s more useful to have more comments and people talking about you on Twitter, blogs, etc. then to have a higher search ranking. Not to say search ranking isn’t good! Just that it’s hard to rank high for anything valuable, so it’s better to make people genuinely happy and chatty.

  10. Why aren’t you using All In One SEO plugin? This seems to give great features and discipline to the SEO process in WordPress.??

    Mark

    • Great question! It’s because I’m also using the Thesis WordPress Theme which enhances both layout and post options. Among other things it provides all the things from All in One SEO that I need.

      But you’re right, if I didn’t use Thesis I would be using that plug-in too — good recommendation.

  11. I’ve heard a lot about What Would Seth Grodin Do plugin which I think is similar to WP Greet Box. Did you investigate both? If so, why did you go with WBG over WWSGD?

    Also, do you use a backup plugin? I’m using WP Backup which emails me a backup of the db on a regular basis. I’ve got all my themes, etc backed up on my development machine so this works well for me.
    .-= LoneWolf’s latest blog post: $1 Trial — Are They Nuts? =-.

    • I just liked WGB, nothing against any other plug-ins.

      WP Backup sounds useful. Since I’m self-hosting, I had already set up backup which dumps MySQL and backs up the files on disk as well and sends to Amazon S3. If I wasn’t running that script I’d need a plug-in for that too, yes, good point.

  12. Thanks, Jason. I just moved to a self hosted site and added a few of these that you mention here.

    How do add that yellow box to the bottom of post that has the subscribe offer?

    • Ah, another completely custom job there.

      I added a function in the post-message hook, just for the web (i.e. not for the RSS feed since obviously they’re already subscribed).

      Here’s the WordPress starting page for things like hooks, filters, and plugins. Writing a plugin for yourself is actually very easy provided you don’t need an administrative interface — it’s just a single PHP file with code in a certain directory. If you just want to do a few things like that yellow box and the other stuff listed here, it works fine.

  13. Hey Jason, thanks a lot for sharing these. You obviously take your blog, both the writing and technology issues, very seriously so your recommendations carry weight (it’s too bad CommentLuv still doesn’t support Disqus but here’s hoping).

    I’ve been spending the last month tweaking my WP setup as well, here are a couple of others I like:
    – Top 10: Gives you a Popular Posts widget. Eventually I may hand-code these but it’s easy for starters.
    – Google Analyticator: Embeds the GA code and also adds a Dashboard widget. Not that it’s hard to embed but for many people the automation is nice
    – Contact Form: Clean-Contact
    I may switch to just showing my email and trusting gmail’s spam filter, but in any case this is a nice and clean form.

    Also enjoyed your posts on blog traffic and your experiences pushing (and not) social media sharing. Have fun at #sxsw – Roy
    .-= Roy Rodenstein’s latest blog post: Believe It: Why Nurture Trumps Nature in Entrepreneurship =-.

    • Thanks for the extra tips.

      FYI for my “most popular” I use a private widget to get the truth but I manually curate the list because there are things I know are more representative or that people liked when I was less popular.

Sign up to receive 1-2 articles per month: