Title: Tidy Related Posts – Contextual Related Posts &amp; Internal Links
Author: tidyplugins
Published: <strong>5 July 2026</strong>
Last modified: 5 October 2026

---

Search plugins

![](https://ps.w.org/tidy-related-posts/assets/banner-772x250.png?rev=3728211)

![](https://ps.w.org/tidy-related-posts/assets/icon.svg?rev=3596861)

# Tidy Related Posts – Contextual Related Posts & Internal Links

 By [tidyplugins](https://profiles.wordpress.org/pierreferrolliet/)

[Download](https://downloads.wordpress.org/plugin/tidy-related-posts.1.1.4.zip)

 * [Details](https://en-gb.wordpress.org/plugins/tidy-related-posts/#description)
 * [Reviews](https://en-gb.wordpress.org/plugins/tidy-related-posts/#reviews)
 *  [Installation](https://en-gb.wordpress.org/plugins/tidy-related-posts/#installation)
 * [Development](https://en-gb.wordpress.org/plugins/tidy-related-posts/#developers)

 [Support](https://wordpress.org/support/plugin/tidy-related-posts/)

## Description

Most related-posts plugins show whatever shares a category. That is why the same
three articles follow readers around your whole site.

Tidy Related Posts scores every pair of posts on five signals — categories, tags,
title wording, body content and freshness — and you decide how much each one counts.
The result is a suggestion block that actually matches what someone just read, which
keeps readers on the site and spreads internal links across your archive instead
of piling them on the same few posts.

#### How the scoring works

Each signal contributes a weight you control in the settings:

 * **Categories and tags** — shared taxonomy terms, scored with the Jaccard index
 * **Title and content** — TF-IDF analysis of the actual wording, so two posts about
   the same subject match even when they were filed differently
 * **Freshness** — a nudge towards recent articles, so old posts do not dominate
   forever

Scores are computed in the background by WP-Cron and cached, so visitors never wait
for the calculation.

#### Display

 * Four layouts: list, cards, grid and minimal
 * Show or hide the featured image, publication date and excerpt
 * Insert automatically after the content, or place it yourself with the Gutenberg
   block or the `[tidy_related_posts]` shortcode
 * Override the templates from your theme if you want full control of the markup

#### Inline internal links

Beyond the end-of-post block, the plugin can drop contextual links inside the article
body — after a given number of paragraphs, in a “Read also” line or as a visual 
card. Posts already linked inline are excluded from the block at the end, so the
same article is never suggested twice on one page.

#### What it does not do

No external service, no account, no data leaves your site. Nothing is added to your
pages until you enable it.

#### More from Tidy Plugins

If you like this plugin, take a look at the rest of the Tidy suite:

 * [Tidy Table of Contents](https://wordpress.org/plugins/tidy-table-of-contents/)—
   automatic, accessible table of contents
 * [Tidy Draft Share](https://wordpress.org/plugins/tidy-draft-share/) — share drafts
   via secure, expiring preview links
 * [Tidy Author Box](https://wordpress.org/plugins/tidy-author-box/) — author bio
   box with avatar and social links
 * [Tidy Broken Link Scan](https://wordpress.org/plugins/tidy-broken-link-scan/)—
   find broken links and images, no external service

## Screenshots

[⌊Related posts at the end of an article, in the grid layout with featured images
and dates⌉⌊Related posts at the end of an article, in the grid layout with featured
images and dates⌉[

Related posts at the end of an article, in the grid layout with featured images 
and dates

[⌊Scoring — tune how much categories, tags, title, content and freshness each count⌉⌊
Scoring — tune how much categories, tags, title, content and freshness each count⌉[

Scoring — tune how much categories, tags, title, content and freshness each count

[⌊End of post — pick a layout (list, cards, grid, minimal) and what each card shows⌉⌊
End of post — pick a layout (list, cards, grid, minimal) and what each card shows⌉[

End of post — pick a layout (list, cards, grid, minimal) and what each card shows

[⌊Inline links — drop contextual internal links inside the article body automatically⌉⌊
Inline links — drop contextual internal links inside the article body automatically⌉[

Inline links — drop contextual internal links inside the article body automatically

## Blocks

This plugin provides 1 block.

 *   Related Posts Display related posts based on taxonomy similarity.

## Installation

 1. Upload the plugin to `/wp-content/plugins/tidy-related-posts/`
 2. Activate through the Plugins menu
 3. Go to Related Posts > Settings to configure

## FAQ

### Why do I see no related posts on a new site?

Scores are computed in the background by WP-Cron, and a post needs something to 
be compared against. On a site with only a handful of articles, or right after activation,
there may be nothing close enough to suggest yet. Publish a few more posts, or open
Related Posts and run the calculation manually.

### Can I change how much categories count compared to the article text?

Yes, that is the point of the Scoring tab. Each of the five signals has its own 
weight and the totals should add up to 1.0. If your categories are broad, lower 
their weight and let the title and content analysis do the work.

### Does it slow down my site?

No. Nothing is computed while a visitor is loading a page: scores are calculated
by WP-Cron and stored, then the rendered block is cached for 24 hours by default.
You can change the cache duration in the Advanced tab.

### Can I exclude some posts or categories?

Yes. You can exclude whole categories, individual tags, or specific post IDs, and
you can turn the block off per post from the editor.

### Does it work with custom post types?

Yes. Tick the post types you want in the Scoring tab; the plugin will index and 
suggest across them.

### Can I place the block somewhere other than the end of the post?

Yes. Use the Gutenberg block or the `[tidy_related_posts]` shortcode anywhere in
your content, or switch the automatic position to before the content. You can also
disable automatic insertion entirely.

### Will it style itself like my theme?

The layouts inherit your theme’s fonts and colours. If you need to go further, copy
the template files into your theme and edit the markup directly.

### Does it send anything to an external server?

No. All the analysis runs on your own site and no data is sent anywhere.

## Reviews

There are no reviews for this plugin.

## Contributors and Developers

“Tidy Related Posts – Contextual Related Posts & Internal Links” is open source 
software. The following people have contributed to this plugin.

Contributors

 *   [ tidyplugins ](https://profiles.wordpress.org/pierreferrolliet/)

[Translate “Tidy Related Posts – Contextual Related Posts & Internal Links” into your language.](https://translate.wordpress.org/projects/wp-plugins/tidy-related-posts)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/tidy-related-posts/),
check out the [SVN repository](https://plugins.svn.wordpress.org/tidy-related-posts/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/tidy-related-posts/)
by [RSS](https://plugins.trac.wordpress.org/log/tidy-related-posts/?limit=100&mode=stop_on_copy&format=rss).

## Change Log

#### 1.1.4

 * Fixed a fatal error that could break the front end of any post displaying related
   posts. Introduced in 1.1.3.

#### 1.1.3

 * The review prompt now waits until related posts have actually been shown to readers,
   appears only on the plugin’s own screens, and says how many days it has been 
   running.

#### 1.1.2

 * Added a dismissible tip on the plugin screen pointing to our free companion tool,
   Broken Link Scan, for a full-site broken-link and image check.

#### 1.1.1

 * WordPress.org coding-standards hardening: documented safe database queries (Plugin
   Check compliance).

#### 1.1.0

 * Removed the undocumented Carousel layout (template + CSS + admin option). The
   free plugin now ships only the documented layouts: list, cards, grid, minimal.
   Carousel is available via the companion Pro plugin.
 * Added `tdrp_allowed_layouts`, `tdrp_layout_picker_options`, and `tdrp_template_path`
   filters so add-on plugins can register their own layouts.

#### 1.0.1

 * Removed the licence-management code from the free plugin (licence + updater are
   now distributed as a separate companion plugin).
 * Removed the now-unnecessary `load_plugin_textdomain()` call (handled by WordPress.
   org translation system since WP 4.6).
 * Added extension hooks for add-on plugins (`tdrp_settings_sidebar`, `tdrp_plugin_action_links`).

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.1.4**
 *  Last updated **2 weeks ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0.7**
 *  PHP version ** 8.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/tidy-related-posts/)
 * Tags
 * [contextual related posts](https://en-gb.wordpress.org/plugins/tags/contextual-related-posts/)
   [internal linking](https://en-gb.wordpress.org/plugins/tags/internal-linking/)
   [related articles](https://en-gb.wordpress.org/plugins/tags/related-articles/)
   [related posts](https://en-gb.wordpress.org/plugins/tags/related-posts/)
 *  [Advanced View](https://en-gb.wordpress.org/plugins/tidy-related-posts/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/tidy-related-posts/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/tidy-related-posts/reviews/)

## Contributors

 *   [ tidyplugins ](https://profiles.wordpress.org/pierreferrolliet/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/tidy-related-posts/)