My default WordPress setup: 17 must-have plugins

WordPress iconWordPress is my favorite blogging platform and has been for a long time. It gets the basics right and never overwhelmed me as I grew up in my blogging experience. However, like Firefox, WordPress is also eminently extensible and makes it easy to both get more out of the platform the longer you’re on it and the more plugins you add to customize your experience.

Recently I took a look at the numerous WordPress blogs I maintain and decided to extract some of the best plugins I use across them. They range from spam management to reporting and stats to authentication and better overall functionality. Here we go:

  • Akismet: the best comment spam protection this side of dodge. It fortunately comes pre-installed, though you’ll still need an API key from
  • Clutter-Free: a simple plugin for customizing the WordPress composing interface. If you never turn off comments or worry about editing the slug, this is a handy plugin to keep things nice and tidy.
  • Comment Timeout: I just started using this one recently when it turned out that 90% of my comment spam was showing up on older posts. This one’s a life saver.
  • Diagnosis: this is a really useful plugin for finding out information about the server that you’re hosted on. Essential for debugging compatibility problems (like which version of PHP you’re on).
  • FeedBurner FeedSmith: Steve Smith originally wrote this plugin to make it easy to use FeedBurner for syndicating your blog and now FeedBurner has taken over its maintenance. Super easy to use and super useful.
  • Maintenance Mode: whenever I need to upgrade WordPress, I always flip the switch on this plugin giving my visitors a pleasant down-time message. It doesn’t come with LOLCats out of the box, but you can customize it to be if you’re feeling adventurous.
  • Share This: Alex King creates incredibly useful plugins and this is one of them. If you want to make it easy for your visitors to share your posts on bookmarking or social network sites, this is the one plugin you need.
  • TanTanNoodles Simple Spam Filter: Matt is skeptical about this plugin, but I find it useful. Essentially you can blacklist certain words and this plugin will delete any comments found to contain those words, as well as pre-filter comments as they’re being submitted. Whether it’s redundant to Akismet or not isn’t important to me — I need all the anti-spam kung fu I can get!
  • Trackback Validator: this plugin is part of a research program out of Rice University. I don’t know how well it works, but I certainly have very little trackback spam since installing it!
  • Subscribe To Comments: unless you’re a co.mments or coComment user, it’s often a pain to stay on top of comments you’ve left on other blogs. Subscribe To Comments adds a checkbox below your comment box to allow your readers to subscribe to comment followups via email.
  • Stats: like Akismet, this is another Automattic product. If you have a account, this plugin will gather visitor stats on your blog and integrate them with your dashboard.
  • WordPress Database Backup: this one is also pre-installed by default and is recommended as part of the routine for upgrading WordPress. Every time you increment your install, you should do a backup with this plugin.
  • WordPress Mobile Edition: Alex comes through with another hugely useful plugin for converting your site to be mobile-phone friendly. I’m currently working on a skin for the iPhone, but for everything else, this one works wonders. Highly recommended.
  • WordPress Reports: If the stats aren’t enough for you, Joe Tan has written an awesome plugin that merges your FeedBurner and Google Analytics stats into a very readable page of infographics.
  • WordPress OpenID (+): of course if I’m going to be running multiple WordPress blogs, I’m not going to want to remember multiple usernames and passwords across them. Instead, I use OpenID. Will Norris‘ work on Alan Castonguay original plugin fixes some bugs and update the JanRain library to avoid a number of compatibility errors.
  • WP-Cache: if you get any kind of traffic whatsoever, this plugin is a lifesaver, especially in spikes from Digg and elsewhere. Turn it off while testing but otherwise, leave it running.
  • WP-ContactForm: Akismet Edition: I used Chip Cuccio‘s WP-ContactForm for some time but found that it was a bit too restrictive with its spam fighting tactics. I switched to this version, which uses Akismet rather than regex rules and have found that it’s a better balance for me.

So there you go. That’s the list that I use for every WordPress blog that I start. I should ask: how many of these do you use? What’s your favorite list of WordPress must-adds?

Oh, and bonus! I start every theme I work on with . It’s extremely flexible, fully classed (including native support for microformats) and now there’s a contest for best skins on until the end of the summer. Definitely a must-have for any new blog I work on.

Author: Chris Messina

Head of West Coast Business Development at Republic. Ever-curious product designer and technologist. Hashtag inventor. Previously: (YC W18), Uber, Google.

49 thoughts on “My default WordPress setup: 17 must-have plugins”

  1. Great post Chris, I’m curious about the comment timeout plugin, though. From your description, this functionality is already builtin to Akismet. Go to Plugins -> Akismet Configuration -> Check the “Automatically discard spam comments on posts older than a month” box.

  2. Great question Tom. The option you mention is great if you leave your comments open (and Akismet detects that those comments are spam) but my problem is that, by leaving comments open and not closing them, they act like honey pots, attracting spam that I don’t want. Rarely are there comments on old posts anyway, so it’s nice to have an automatic way of shutting off old comments rather than doing so manually. Akismet doesn’t do that — it only automatically discards old spam messages.

  3. Ah gotcha, so comment timeout closes the ability to comment on old comments? I misunderstood. I thought it was doing the same as Akismet and discarding spam comments on older posts.

    Sounds interesting. Although, I have several old posts which still attract comments (one on Hotmail, another on Western Digital, for example). I’d hate to lose the commenting ability on those posts.

    I love the Stats plugin. I hadn’t come across that before.

    And Google Sitemaps is a must have plugin I think. Possibly one to add to your list.

  4. Chris what do you think about plugin stability and upgradability. I have bad experiences with the quality of the smaller plugins both in stability and especially in the code. The only plugins I have a lot of faith in are those from Automattic.

    Adding seventeen plugins greatly complicates your site and increases the risk that stuff breaks. Not to mention the difficulties in upgrading your setup to the next WordPress version.

    Having had problems with plugins in the past -a faulty one prevented the entire site from loading- we have adopted a policy of minimal plugins and using widgets for most page based functionality.

  5. Chris, I recenlty discovered All in one SEO pack which replaced one of my previous metadata plugins. I’d also suggest FB Standard stats, which basically puts FeedFlare into your blog. Google Sitemaps…always helpful. Related Posts and the Sphere Related content widgets … also important.

    Those are most of my core ones. I add Podpress if the blog is going to be used for podcasting.

  6. Great post!

    For some reason I thought that caching had been integrated into WP itself at some point, obviating the need for WP-Cache. I wonder how I got that impression.

  7. Great post. I found adding google-sitemap-generator plugin takes care of the sitemap for google and that’s a great help for indexing.

  8. @Tom: Fortunately Comment Timeout lets you override its global settings per post. No need to worry about turning off *all* old comment threads.

    @Alper: I think if you’re choosey, you’ll be fine. It really depends on what your host will allow in terms of server-side scripting. WP-Cache helps a ton… I’ve also been using these plugins pretty regularly without a problem.

    @Tris: great — those are helpful. I don’t tend to focus on SEO, but indeed, there are really helpful plugins for that.

    @Avi: not as far as I know…

  9. I’ve reached a point with my own blog that I know am committed now and I’m looking at improving it’s use, reduce spam and improve the overall experience for myself/my readers – a few of those will definitely help.
    Thanks for sharing

  10. Great list. I’d add AJAX comments preview to my list, since it seems to help people verify links and formatting issues before they publish.

  11. Pingback: crawlspace|media
  12. Thanks for such a great list of plugins, this list are so helpful for the new guy.



  13. what a great you list you have. I use most of them on my blog but I have to say th one that i could not do without is Akismet – It is brilliant and so easy to install and use.

  14. i’m actually pretty new to blogging….although i have experience with computers and such it’s easier to get into it with help like this. thanks a lot. installed a couple of these today actually before i came upon this post so i know i’m on the right track….i will definitely install more from this list.

    question: are there significant loads on the server (more importantly the end user) depending on how many plugins one has on their blog? i mean, granted a lot are pretty small but…still….what DOES slow the loading of pages if anything?

  15. @BitBox: Welcome to blogging!

    To answer your question: yes, depending on the plugins you install, they may increase the load on your server. This is especially for true for plugins that are called when the page is generated and require any kind of just-in-time computation.

    I use a plugin called wp-super-cache to reduce server load since the plugin generates static HTML files for every page, greatly reducing the impact on the server for every page that’s called.

  16. chris: thanks! i’d think that if there are static pages being “rendered” as desired, would wp-super-cache do well for SEO and whatnot do you think?

  17. ok ok….that’s pretty spectacular. all these people truly amaze me, giving out free apps to the public and whatnot. who thinks of this stuff? great. again, thank you for the post. I’ll be going through your site in anticipation of other good information on this stuff. Thanks.

  18. so i installed wp-super-cache….it made my site load AT LEAST 3 times quicker. Amazing. But does this mean that, depending on the cache expire time setting (1 hour default), that people will only see that version of the site? what if people leave comments on the site…wouldn’t that slow down conversation and whatnot? if so, people who download that should keep it in mind if they plan to (or already do) have a lot of traffic and constantly changing pages. just a thought.

  19. Great news on the improved performance! 😉

    As for comments, the experience would be as it is here: depending on moderation, the comment should show up immediately, since a new comment will cause the regeneration of the page (as the content was updated). So, to answer your question, no, I don’t think it should cause comment posting to be delayed.

  20. You missed one key plugin – CForms.
    It’s one of the most essential plugins out there!

    A few other favorites –
    PingPress is also nice, as is Audio-Player.

  21. Thanks, this was very useful. Coming from and moving into a hosted service, its easy to get lost in the wilderness of plugins 🙂

  22. Thanks Chris, very informative post!

    I’ve struggled a lot by the spams but Akismet has solved and relieved my pain by filtering these rubbish spams!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: