Related Posts Plugins are an amazing way to keep a visitor engaged on your site. By doing some magic on the backend of a site, they can make tailored post suggestions according to the content on-page. Tailored recommendations will boost average time on site, average page views, and the like. Related posts are also awesome ways to add advertisements to a site.
Unfortunately, related posts plugins can also destroy a site’s performance, or bring it down entirely.
Many related posts plugins work by creating a “FULLTEXT index” on the “posts” table in MySQL. This is a mechanism to make complex queries against the content of posts. For example, “posts which contain A and B but not C or D.” Usually, this means indexing categories, tags, specific keywords, and a number of other data points and querying them later.
It’s a cool way to search, but MySQL wasn’t built to make queries like this.
In MySQL, FULLTEXT indexes consume high loads of resources at run-time, particularly for larger sites with proportionally large databases. Under heavy traffic loads, this will slow the entire site down, or crash it entirely.
To make matters worse, when changes are made to (large) tables with FULLTEXT indexes, rebuilding that index can take hours and hours. Sometimes rebuilding will even fail, producing a corrupted MySQL table. This can happen when you do something like upgrade to the latest version of WordPress.
That was a lot of bad news. Here’s the good news!
There are TWO PLUGINS that achieve “related posts” functionality, but do it off-server, so that you don’t bog down MySQL.
Nrelate has 3 different plugins based on whether you want your most popular content or related content to display, as well as if you want the related post to “fly out” at the reader. All three are available in the WordPress plugin repository. LinkWithin will make recommendations to related posts based on several factors, including title, tags, and content.
How they work
Nrelate creates its own, secure, RSS feed, and feeds your content directly their servers. This means their pinghost is added to your Update Services. So each time you update your blog with new content, nrelate gets the feed and can analyze it for related posts. Then, they use Natural Language Processing inside a database designed for search to analyze your content and make related recommendations.
LinkWithin similarly analyzes your content off-server. They have a context engine that looks at categories, tags, keywords, and a few other aspects of your content in order to make recommendations. LinkWithin used to redirect traffic through their site, but no longer. You get all the SEO juice from the links.
Both plugins accomplish the related posts functionality off-server. I’m personally a big fan of nrelate’s strategy of using the RSS feed to get the content and then processing it with NLP. I was also able to speak on the phone with both developers from nrelate in the writing of the article, which indicates the support they’re providing their plugin.
LinkWithin has secure processes to pull your content, and there are zero known security issues with their plugin.
When I spoke with nReleate, they talked about how their RSS feed can only be accessed with a random key that is generated when you install the plugin. They hired Mark Jaquith to build this part of the plugin with airtight security.
With nRelate, you can either show your content as one of six sizes of thumbnails, or as very simple bullets. The plugin automatically creates a thumbnail from the featured image, but you can also specify which image to use. If you don’t have any images on your post, nrelate will actually pull one from their image library. You can see examples of their ads on Huffington Post and Endgadget.
LinkWithin relies heavily on featured images from your page in order to provide thumbnails. If you don’t set featured images, the plugin won’t show any. It also provides very customized sizing of images that are optimized for your site.
You can add your advertising networks to nRelate (they have their own ad network) and serve your ads along with the recommended content. Linkwithin does not currently support advertising.
Your css is automatically adopted by nRelate, so the thumbnails and font styling will automatically look like your design, but you can still customize things as you like.
Nrelate is also in the following languages: Dutch, English, French, German, Indonesian, Italian, Polish, Portuguese, Russian, Spanish, Swedish and Turkish.
Check out both of those plugins to see which one works for your needs. Both of them offer significant speed and scalability benefits to your site.
Are you using a related post plugin for your site? How has it affected your traffic? Have you noticed any performance issues?