How to Display Related Posts in WordPress (Without Slowing Your Site)
Related posts are one of the simplest ways to keep visitors on your WordPress site. When someone finishes reading an article and sees three or four relevant posts below it, a significant percentage will click through rather than leaving. This reduces bounce rate, increases pageviews, and strengthens your internal linking structure — all signals that search engines value.
But not all related post solutions are created equal. Some plugins compute relationships on every page load, running expensive database queries that slow your site down. Others rely on random posts or simplistic tag matching that produces irrelevant suggestions. In this guide, we'll look at how related posts work, why performance matters, and how to implement them without compromising your site speed.
Why Related Posts Matter
User Engagement and Session Duration
The average visitor spends less than a minute on a blog post before deciding what to do next. If your content doesn't offer a clear next step, they leave. Related posts provide that next step organically. Unlike "popular posts" widgets (which show the same posts everywhere) or "recent posts" (which are unrelated to what the visitor just read), related posts are contextually relevant. A reader who just finished an article about WordPress security is far more likely to click on "How to Harden Your wp-config.php" than "Our Company Picnic Recap."
Internal Linking and SEO
Every related post link is an internal link. Internal links help search engines understand your site's structure, distribute link equity across pages, and establish topical relationships between content. A strong internal linking structure is one of the most underrated SEO tactics. Related posts automate part of this process by creating contextual links between thematically connected articles.
Content Discovery
Most WordPress sites have far more content than visitors discover. Older posts, cornerstone articles, and niche topics often receive little traffic because they're buried in archives. Related posts resurface this content where it's most relevant, giving your back catalog a second life.
The Performance Problem
Here's where many related post plugins fail. Computing "related" content requires comparing the current post against every other post in your database. The naive approach is to look at shared categories, tags, and content similarity for every post on every page load. For a site with 500 posts, that's manageable. For a site with 5,000 or 50,000 posts, it's a disaster.
YARPP: The Classic Example
YARPP (Yet Another Related Posts Plugin) has been the go-to related posts plugin for over a decade. It's powerful and flexible, but its architecture has a well-documented performance problem. YARPP computes relationships by running complex SQL queries with MATCH...AGAINST full-text search on every page load. On large sites, these queries can take several seconds per page.
The plugin does include a caching mechanism, but it must build the cache, and cache invalidation happens frequently — whenever any post is updated, published, or deleted. On active sites with frequent publishing, the cache is constantly being rebuilt, negating much of its benefit.
Many site owners install YARPP, see their page load time jump by 1-3 seconds, and immediately deactivate it. The recommendations are good, but the performance cost is too high.
Jetpack Related Posts
Jetpack's related posts module takes the opposite approach. Instead of computing relationships locally, it offloads the work to WordPress.com's servers via the Elasticsearch API. This means zero local database load, which is great for performance.
The trade-off is control. You can't fine-tune the matching algorithm, the results depend on WordPress.com's indexing (which can lag behind your actual content), and the feature requires an active Jetpack connection. Some site owners are uncomfortable sending their content to external servers. The styling options are also limited without custom CSS.
Tidy Related Posts: Cached Taxonomy Scoring
Tidy Related Posts takes a different approach that balances accuracy with performance. Instead of running full-text comparisons on every page load, it uses a taxonomy-based scoring system that pre-computes and caches similarity scores between posts.
How the Scoring Works
When a post is published or updated, Tidy Related Posts calculates a similarity score between that post and every other published post based on shared categories, tags, and custom taxonomies. Each shared taxonomy term adds to the score, weighted by how specific the term is (a tag shared by only three posts is weighted more heavily than a category containing 200 posts).
These scores are stored in a dedicated database table. When a visitor loads a post, the plugin simply retrieves the top-scoring related posts from this pre-computed table — a single, indexed query that returns results in milliseconds.
Why Caching at the Score Level Matters
Unlike YARPP's query-level caching (which caches the output but still runs expensive queries to build it), Tidy Related Posts caches the underlying scores. This means cache invalidation is surgical: when a post is updated, only the scores involving that specific post are recalculated, not the entire relationship map. On a site with 10,000 posts, updating one post recalculates at most 10,000 scores rather than rebuilding the entire cache.
The result is consistent sub-50ms query times regardless of site size. Whether your site has 100 posts or 100,000, the related posts query performs the same way.
Display Options
Tidy Related Posts renders related content via a server-side rendered Gutenberg block. You control the number of displayed posts, layout (list or grid), whether to show thumbnails and excerpts, and the heading text. The output uses clean, semantic HTML with minimal CSS, so it integrates naturally with any theme.
Manual Approach: Handpicked Related Posts
For sites that publish infrequently or want complete control, you can manually select related posts for each article. WordPress's built-in "Related Posts" meta box doesn't exist, but you can create one using custom fields or a simple plugin that adds a post-picker to the editor.
The advantage is precision — you pick exactly which posts to recommend. The disadvantage is labor. On a site with hundreds of posts, manually maintaining related links is unsustainable. It also creates a maintenance burden: when you delete or unpublish a post, you need to update every article that linked to it.
For most sites, automated taxonomy-based recommendations with the option to override specific posts is the best balance of quality and effort.
Implementation Checklist
- Audit your taxonomy structure. Related post quality depends on your categories and tags being well-organized. If your tags are a mess of duplicates and one-off terms, clean them up before installing any related posts plugin.
- Start with the default settings. Most related post plugins work well out of the box. Install, activate, and review the output before tweaking configuration options.
- Test performance before and after. Use a tool like Query Monitor to measure database query times on a post page before and after activating the plugin. If query time increases by more than 50ms, investigate.
- Check mobile display. Related posts appear at the bottom of content, which is prime real estate on mobile. Make sure the layout is clean and tappable on small screens.
- Monitor click-through rates. After a few weeks, check your analytics to see how often visitors click related posts. This tells you whether the recommendations are actually relevant.
Learn more about Tidy Related Posts →
Frequently Asked Questions
Do related posts slow down my site?
It depends entirely on the plugin. Solutions that compute relationships on every page load (like YARPP with caching disabled) can add 1-3 seconds to page load time on large sites. Plugins that pre-compute and cache scores (like Tidy Related Posts) add negligible overhead — typically under 50ms per page. Always test with a performance monitoring tool after installation to verify the impact on your specific site.
How many related posts should I display?
Three to five posts is the sweet spot for most sites. Fewer than three doesn't give visitors enough options. More than five creates visual clutter and decision paralysis. The optimal number also depends on your layout — a grid with thumbnails works well with three or four posts, while a simple text list can comfortably show five or six.
Can I exclude certain posts from related suggestions?
Yes. Tidy Related Posts allows you to exclude specific posts, entire categories, or posts older than a certain date from appearing as related content. This is useful for excluding time-sensitive content (like event announcements) or promotional posts that shouldn't appear as editorial recommendations.