After working with WordPress for several years and combing through countless “top 10” WordPress plugin blog posts for plugins that A. Work well and B. Are updated regularly and don’t break with core upgrades (often), I’ve come up with my own cache of WordPress plugins I go back to on a regular basis to get the job done.


Although WordPress is very SEO-Friendly OOTB, adding a few of these plugins doesn’t seem to hurt. I’ve also tried All-in-one-SEO, but like Headspace better.

  • Google XML Sitemaps By Arne Brachhold. This plugin will generate a special XML sitemap which will help search engines like Google, Yahoo, Bing and to better index your blog.
  • HeadSpace2 By John Godley. Meta-data manager on steroids, allowing complete control over all SEO needs such as keywords/tags, titles, description, stylesheets, and many many other goodies.
  • SEO Friendly Images By Vladimir Prelovac. Automatically adds alt and title attributes to all your images. Improves traffic from search results and makes them W3C/xHTML valid as well.
  • SEO Slugs By Andrei Mikrukov. Removes common words like ‘a’, ‘the’, ‘in’ from post slugs to improve SEO.
  • Canonical URL’s By Joost de Valk. Adds rel=”canonical” links to the head of your site.
  • Robots Meta By Joost de Valk. This plugin allows you to add all the appropriate robots meta tags to your pages and feeds, disable unused archives and nofollow unnecessary links.
  • Redirection By John Godley. Manage all your 301 redirects and monitor 404 errors

Stats and Tracking

Mmmmmm….stats. If you can prove your SEO strategy is working, it sure makes it easier to convince clients to purchase your services. I particularly like paying attention to the Stats, Google Analytics and Search Meter to get an idea of what visitors are most interested in.

  • Stats By Andy Skelton. Tracks views, post/page views, referrers, and clicks. Requires a API key.
  • Blog Metrics By Joost de Valk. Provides blog metrics based on the blog metrics Avinash Kaushik proposed in this post, now with a widget!
  • WP-Referer By Henry Lu. Add referer to Comments list
  • Search Meter By Bennett McElwee. Keeps track of what your visitors are searching for. After you have activated this plugin, you can check the Search Meter section in the Dashboard to see what your visitors are searching for on your blog.
  • RSS Link Tagger for Google Analytics By Timan Rebel. Modifies RSS permalinks to include utm query parameters, used by Google Analytics to track non-adwords advertising campaigns.
  • FeedBurner FeedSmith By FeedBurner. Originally authored by Steve Smith, this plugin detects all ways to access your original WordPress feeds and redirects them to your FeedBurner feed so you can track every possible subscriber.
  • From RSS By Joost de Valk. Adds ?source=rss to your permalinks from RSS, and 301 redirects them to the correct URL while dropping a cookie, giving you the opportunity to treat your RSS readers differently. Use from_rss(); to check whether a user came from an RSS feed.
  • Google Analytics for WordPress By Joost de Valk. This plugin makes it simple to add Google Analytics with extra search engines and automatic clickout and download tracking to your WordPress blog.

User Interaction/Experience

Anything you can do to make the overall navigational experience for your visitors more pleasant is a winner for me. Search Everything and Search Suggest in particular beef up WordPress’ less-than-stellar OOTB search function, and Tell-a-friend and the Add to Any plugins help visitors share your site with friends easily. Oh, and WP-Cumulus is in here just because I’m enamoured with the spinning globe effect to call attention to tags.

  • WP-PageNavi By Lester ‘GaMerZ’ Chan. Adds a more advanced paging navigation to your WordPress blog.
  • WP-Cumulus By Roy Tanck. Flash based Tag Cloud for WordPress
  • WP Greet Box By Thaya Kareeson. Show a different message to your visitor depending on which site they are coming from. For example, you can ask Digg visitors to Digg your post, Google visitors to subscribe to your RSS feed, and more! Best of all, this plugin is compatible with various WordPress cache plugins.
  • Tell-a-friend Widget Plugin By socialtwist. Tell-a-friend Widget Plugin for WordPress
  • Search Everything By Dan Cameron of Sprout Venture. Adds search functionality without modifying any template pages: Activate, Configure and Search. Options Include: search highlight, search pages, excerpts, attachments, drafts, comments, tags and custom fields (metadata). Also offers the ability to exclude specific pages and posts. Does not search password-protected content.
  • Search Suggest By Joost de Valk. Offers a spelling suggestion for a certain word, useful on search pages when no result was found. Include spell_suggest();, or related_searches(); for related queries.
  • Add to Any: Share/Bookmark/Email Button By Add to Any. Help readers share, bookmark, and email your posts and pages using any service.
  • Add to Any: Subscribe Button By Add to Any. Helps readers subscribe to your blog using any feed reader.
  • RSS Footer By Joost de Valk. Allows you to add a line of content to the end of your RSS feed articles.
  • for WordPress By Ricardo Gonz. Displays your recently listened links. Based on Pownce for WordPress by Cavemonkey50.
  • DISQUS Comment System By The DISQUS comment system replaces your WordPress comment system with your comments hosted and powered by DISQUS. Head over to the Comments admin page to set up your DISQUS Comment System.

CMS Control

Some clients want their site just to have static Pages, and that’s fine. But having all those menus available on the backend is confusing and non-intuitive. I use Adminimize to pare-down the menu creep caused by installing several plugins, and TinyMCE Advanced to organize and give them a few more functions not available by default in the Visual Editor. Autolink URI just helps for those clients who skip over adding links to URLs, and Publish the Feed Later helps avoid embarrassing accidents, especially if your feed goes out via email. And the Custom Help Page gives me an easy way to customize a help section for each particular client’s WordPress configuration.

  • Adminimize By Frank Bultge. Visually compresses the administratrive meta-boxes so that more admin page content can be initially seen. The plugin that lets you hide ‘unnecessary’ items from the WordPress administration menu, for alle roles of your install. You can also hide post meta controls on the edit-area to simplify the interface. It is possible to simplify the admin in different for all roles.
  • TinyMCE Advanced By Andrew Ozz. Enables advanced features and plugins in TinyMCE, the visual editor in WordPress.
  • Autolink URI By Denis de Bernardy. Automatically wraps unhyperlinked uri with html anchors.
  • Role Manager By Thomas Schneider. Role Management for WordPress 2.0.x, up to 2.6.x..
  • Publish the content in the feed at a later specified time to allow for editing/mistakes
    function publish_to_feed_later($where) {
    global $wpdb;
    if ( is_feed() ) {
    // timestamp in WP-format
    $now = gmdate('Y-m-d H:i:s');
    // value for wait; + device
    $wait = '60'; // integer
    // add SQL-sytax to default $where
    $where .= ” AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, ‘$now’) > $wait “;
    return $where;
    add_filter(‘posts_where’, ‘publish_to_feed_later’);
  • Plugin Name: Help Menu
    Description: Adds a site help link to the admin menu
    Author: Addison Berry
    function mt_add_pages() {
    // Add a new top-level menu:
    // The first parameter is the Page name(Site Help), second is the Menu name(Help)
    //and the number(5) is the user level that gets access
    add_menu_page('Site Help', 'Help', 5, __FILE__, 'mt_toplevel_page');
    // mt_toplevel_page() displays the page content for the custom Test Toplevel menu
    function mt_toplevel_page() {
    echo '

    Site Help

    This page contains information and tutorials that are specific to your site. You can put your own text and links on this page to help your clients with their particular configuration of wordpress.

    Frequently Asked Questions

    I don’t want people to see the edit link/be able to edit my site!

    Those edit links only appear to you when you log in to the site as the admin.
    The public will NEVER see them and even other users with accounts won’t see
    them unless you give them the rights to be able to edit something. To get rid of
    the links when you visit the site you must Sign Out of the admin account. You
    can do this from the administration pages in the upper right-hand corner.


Akismet is still the best Anti-Spam plugin I’ve tried, and WP-reCAPTCHA keeps out account signup bots. AntiVirus also just seems like a good thing.

  • Akismet By Matt Mullenweg. Akismet checks your comments against the Akismet web service to see if they look like spam or not. You need a API key to use it. You can review the spam it catches under “Comments.” To show off your Akismet stats just put in your template. See also: WP Stats plugin
  • AntiVirus By Sergej Muller. AntiVirus for WordPress is a smart, effectively solution to protect your blog against exploits and spam injections.
  • WP-reCAPTCHA By Jorge Pena. Integrates reCAPTCHA anti-spam solutions with wordpress

Notifications, Debugging and Performance

  • Broken Link Checker By Janis Elsts. Checks your posts for broken links and missing images and notifies you on the dashboard if any are found.
  • WP Status Notifier By iDope. Sends email notification of posts pending review.
  • Pending Review Notification By Dortich. Display a notification about “Pending Review Posts” on your Dashboard.
  • 404 Notifier By Alex King. This plugin will log 404 hits on your site and can notify you via e-mail or you can subscribe to the generated RSS feed of 404 events. Adjust your settings here.
  • WP Super Cache By Donncha O Caoimh. Very fast caching plugin for WordPress.


Being able to change and edit the theme at will is my favorite part of WordPress. Using Widget Context with the Thematic framework is like having the finger of God. And using Better Excerpt, Blog Icons Next/Previous Posts classes, Split Categories and Preserve Code Formatting all just make things look prettier and function better.

  • Theme Test Drive By Vladimir Prelovac. Safely test drive any theme while visitors are using the default one. Includes instant theme preview via thumbnail.
  • Widget Context By Kaspars Dambis. Display widgets in context.
  • Widgets Reloaded By Justin Tadlock. Replaces many of the default widgets with versions that allow much more control. Widgets come with highly-customizable control panels. Each widget can also be used any number of times.
  • Better Excerpt By Sue Bailey. Gives you full control over the WordPress excerpt: change the length, the ellipsis […] and surrounding markup; can automatically add a link to the full post. Has admin page; no code/theme editing required.
  • Blog Icons By Joost de Valk. A simple method of adding favicons and iPod Touch / iPhone icons to your blog.
  • Query Posts By Justin Tadlock. A widget that allows you to show posts/pages in any way you’d like on your site.
  • Preserve Code Formatting By Scott Reilly. Preserve formatting of code for display by preventing its modification by WordPress and other plugins while retaining original whitespace and characters.
  • Make the loop display the_excerpt on the home page of a child theme (note* this function is written specifically for a child-theme of Thematic)
    Credit to Chris on the Themeshaper Forums –
    function childtheme_content($content) {
    if (is_home() || is_front_page()) {
    $content= 'excerpt';}
    return $content;
    add_filter('thematic_content', 'childtheme_content');
  • Apply classes to the Next and Previous Posts links for Styling
    Credit goes to
    function previous_posts_link_class() {
    return 'class="previouspostslink"';
    function next_posts_link_class() {
    return 'class="nextpostslink"';
  • Split the Categories listing into two columns
    Credit goes to (and also written to fit on a Thematic hook)
    function two_col_categories() {
    $cat_n = count($cats) - 1;
    for ($i=0;$i<$cat_n;$i++):
    if ($i<$cat_n/2):
    $cat_left = $cat_left.'
  • ‘.$cats[$i].’
  • ‘;
    elseif ($i>=$cat_n/2):
    $cat_right = $cat_right.’
  • ‘.$cats[$i].’
  • ‘;
    ?><!–?php }

Post/Page and Media Whizbangs

To have a little more fun with Post content, these plugins make it easier to add image galleries, audio clips, and find something to post about.

    • Series By Justin Tadlock. Creates a new taxonomy called “Series” that allows you to tie posts together in a series.
    • Insights By Vladimir Prelovac. Insights allows you to quickly search and insert information (links, images, videos, maps, news..) into your blog posts.
    • NextGEN Gallery By Alex Rabe. A NextGENeration Photo gallery for the Web 2.0.
    • Cleaner Gallery By Justin Tadlock. This plugin replaces the default gallery feature with a valid XHTML solution and offers support for multiple Lightbox-type image scripts.
  • Audio player By Martin Laine. Audio Player is a highly configurable but simple mp3 player for all your audio needs. You can customise the player’s colour scheme to match your blog theme, have it automatically show track information from the encoded ID3 tags and more. Go to your Settings page to start configuring it.

Do you have any other plugins you use for WordPress that are ‘essential’? Share links to them in the comments.