WordPress Related Post Plugins
If you have been looking for a related post plugin, you might be overwhelmed by the number of related post plugins available at the moment. Some of them are outdated, some are identical, some are efficient, and some are not. The goal of this post is to help you choose the most suitable one for your website. I will try my best to give all the pros and cons of each plugin and deliver all my testing results so you can (hopefully) choose one with no hesitation.
Although there are so many related post plugins out there (try searching for ‘related’ in WordPress’s Plugin Directory, yuck!), some are actually very different from others in their approaches. In this article I choose to do a short review for the following related post plugins: Yet Another Related Posts Plugin (YARPP), nrelate Related Content, Better Related Posts, Microkid’s Related Posts, and Efficient Related Posts.
Where the hell is WordPress Related Posts, one of the oldest and most popular WordPress related post plugins, you might ask? Well I don’t think a review for that plugin is necessary because it does not have any special feature for us to talk about. Another problem is that WordPress Related Posts doesn’t seem to work with WordPress 3.0 at all. Let’s just leave that plugin alone .
Yet Another Related Posts Plugin (YARPP)
Welcome to the most comprehensive, the most advanced and also the heaviest WordPress related post plugin of all time (well up until now!) With more than 200 ratings and 800,000 downloads this plugin is definitely the most popular amongst the rest, but whether this plugin is suitable for your blog or not is actually another story.
YARPP comes with many configurable options that allow you to have a lot of control over what and how related posts will show up within your posts/pages. You can limit the search for related posts from certain categories or tags and you might choose to search for post that are created only after a specific time. You can find related posts based on titles or post contents too if your post table supports Full Text searching1.
One of the shiny new features of YARPP is the caching facility that helps reduce the intensive relatedness computation for your related posts. You can also flush all the cached data by adding
action=flush to the URL of YARPP’s setting panel, like so:
options-general.php?page=yet-another-related-posts-plugin/options.php&action=flush. Ideally I think there should be a button for this kind of action instead of having to manually append the URL like this, but still I believe the author will change this behaviour in future versions.
YARPP allows you to display related posts in two ways, either using template functions or hooks. You can also have your own templates for displaying related posts that you can modify however you want to suit your need. Your related posts can appear when viewing single posts or when viewing RSS feeds. You can also conveniently sort related posts based on score, date, or title.
Awesome plugin don’t you think? Actually YARPP has many drawbacks, some of which might make it unsuitable for your website.
YARPP is slow (and complicated). This plugin is very heavy and is very database-intensive. With the default settings it uses roughly 12 database queries, and with a very small setup in one of my test (less than 100 posts and 20 tags), it took about 30 milliseconds to complete. Fortunately with the cache in use the query number and processing time is reduced noticeably (but I am not sure how this plugin would function on a larger setup like 2000 posts and a whole lot of tags). Of course you can disable searching for related posts using tags or categories but that’s not an option for every user. One thing I notice with the caching system is that when you flush the cache like above all the cached data is gone. It would be better if the cache is flushed and then rebuilt in a more efficient way. There’s an in-depth article regarding the efficiency of the approach YARPP uses that I think you should read if you are going to use YARPP anyway.
No support for custom post types or custom taxonomies. If you ever want to show related posts for your custom post types, this plugin is not for you. Of course if you allow your custom post types to use post tags and you do not disable searching based on tags custom post types might still show up in the related post list. Custom taxonomy is, however, completely unsupported. There’s a hack that allows you to add support for custom post types that you can apply if you want, though not recommended.
Incompatibility with some plugins. According to user reports as well as the official FAQ page there are some plugins that are incompatible with YARPP. You should take a look if you are having any problem installing or using YARPP.
nrelate Related Content
This is a relatively new plugin but has got quite some attention from WordPress users recently because of a very different approach it uses to generate related posts. You can read a review of this plugin that describes some features it offer here: http://bloggerlens.com/review-of-the-nrelate-related-po ... ess-blogs/. That review will also tell you about the pros of nrelate so I will only talk about the cons of this plugin instead.
Related posts are generated on nrelate’s servers. Well this is a good thing especially if you care about performance, one of the major limitations with related post plugins as stated above. However, since we are relying on nrelate’s servers, your data will be transferred back and forth, who’s gonna make sure that your data won’t be used for other purposes? Community’s feedbacks may help but sometimes it would be too late.
Related posts are displayed using nrelate API. Their servers are reliable or not is another issue worth mentioning. If their servers go down, your related posts will not show up and you will run into the risk of losing visitors’ interest. Not to mention the fact that if your website is used by people all over the world, speed might become a concern. Your visitors will now have to get data from not only your server but also their servers, which is not a good thing generally.
Support for custom post types? I didn’t have enough time to test this out because this plugin requires a minimum of 2 hours after activation for any related post to actually show up. If this plugin does support custom post types, please let me know so I can update this. Thanks!
Anyway, just like other WordPress plugins, you can use this plugin at your own risk. In my opinion this plugin needs more time and more users using it. However, I do hope nrelate will become a great related post plugin that can actually take YARPP’s position someday.
Better Related Posts
This is a new WordPress plugin that has supports for custom post types and custom taxonomies. Better Related Posts is very simple and lightweight yet still provides a lot of features that can actually rival YARPP:
- You can limit the search to certain post types or custom taxonomies
- You can control the scoring of related posts thoroughly (actually better than YARPP)
- You can search for posts that are related to a specific string, for example you can find posts that are related to users’ search query, very convenient.
- You can limit the number of posts in database you are going to search for, for example you have 1000 posts but you only need to search for 500 first posts
- Supports caching (though not as advanced as the new caching facility of YARPP)
- You can display related contents either in posts viewing or RSS feeds.
This plugin has two drawbacks that I know of. The first drawback is you can not limit the search for certain post types only when you are viewing a specific post type, for example it is not possible to search for ‘movie’ post type only when you are viewing a ‘movie’. The second drawback with this plugin is it can be confusing to use at first. I suggest you take a look at the official installation page first for a somewhat detailed documentation: http://wordpress.org/extend/plugins/better-related/inst ... tallation/.
Efficient Related Posts
This is probably the simplest related post plugin out there and for that reason its features are somewhat limited. This plugin only considers tags when searching for related posts and doesn’t care about other taxonomies2. Efficient Related Posts, however, takes all public post types into consideration, which is a good thing if you want related posts for custom post types (it still has the same drawback as Better Related Posts, though).
This plugin is overall good if tags is everything you need. It of course allows you to ignore certain categories and you can insert related posts automatically or manually (using shortcodes or functions). You can also display related posts in RSS feeds if needed.
Now if you haven’t noticed already, this plugin is actually the one mentioned in the in-depth article I told you about while reviewing YARPP3. The word efficient here means your related posts are not generated in your front-end system but in your back-end system instead (when you save your posts or you can process all posts later if you wish). This makes performance no longer a problem for large websites, which is very good. However, this plugin doesn’t support cron processing which means you will have to manually continue the process wherever it is left off. If you have a lot of posts this behaviour can be a major turn off actually.
Microkid’s Related Posts
This is a surprisingly lightweight plugin that has a very unique approach: you will manually select related posts when editing a specific post. No more scoring, no more performance issue, great eh?
Just like other related post plugins, Microkid’s Related Posts allows you to display related posts automatically or manually and sort them using some criteria. Plus you can display related posts in a widget if you wish. When you add a post as a related post to another post you have the option to make both posts related to each other (reciprocal – as the plugin defines it), which is very convenient.
Microkid’s Related Posts also comes with support for custom post types but without support for taxonomies (which should not matter anyway because you manually select related posts). It allows you to display lists separately for each post type but still it has the same drawback (you can’t search for specific post type only) mentioned earlier. Fortunately you can overcome such issue by using the API this plugin provides4.
About output customization, you can’t really do much about it using this plugin’s setting panel but again its API offers extensive support for that if you are interested.
A note when using this plugin is it has some PHP bugs and some incompatibilities with newer PHP versions (some deprecated warnings only, which should not matter if you’re not that into such problems). The approach this plugin takes does give it the complete uniqueness and therefore is worth a try .
The Bottom Line
If you choose front-end plugins like YARPP or Better Related Posts it is recommended that you use page caching plugins for large websites. Back-end plugins like Efficient Related Posts or Microkid’s take a unique approach and can be used without any cache plugin at all so I would recommend using them instead. One drawback for all above plugins (not probably including nrelate because I don’t know how their API works) is that there is no user-defined stop-word list5 which can greatly improve relatedness in matching. Anyway if you have any feedback, suggestion, correction, please comment below, thank you!
- http://www.petefreitag.com/item/477.cfm [↩]
- http://wordpress.org/support/topic/plugin-efficient-rel ... y-just-tag [↩]
- http://wpinformer.com/problem-related-post-plugins/ [↩]
- http://www.microkid.net/wordpress/related-posts/#API [↩]
- http://www.webconfs.com/stop-words.php [↩]