I’ve been buddies with Ajay Dsouza since 2007, when I first dove into WordPress. Ajay is a prolific plugin developer, so when he suggested I give Contextual Related Posts a spin, I decided to try it out.
Why Bother Adding Related Posts to Your Site?
I’m a huge fan of Related Posts, particularly when they are added to blog articles or post types in a series.
Related posts provide:
- An instant SEO benefit, providing internal and automatic linking opportunities.
- Additional articles for a reader to consume, helping them stay on your site and building content authority.
- Instant authority, particularly if you’ve written several articles on the same topic.
I’d been using Jetpack Related Posts for ages, and making the switch to something more native sounded appealing. After all, ditching Related Posts from Jetpack meant one less bulky feature to deal with.
To somewhat spoil the ending, here’s a quick screenshot of how Contextual Related Posts Pro looks when styled.
Introducing Contextual Related Posts (Free)
Contextual Related Posts (free) is a handy plugin related posts plugin. The plugin works natively, not requiring a third-party service that Jetpack requires.
The plugin scans your titles and content for keywords, enabling it to suggest the most relevant articles. The plugin works great as a free base, but if you find yourself longing for extra customization and performance tweaks, then the Pro version is likely for you.
What I was really after was the Pro Query Block to use Related Posts as a template part. Additionally, Pro offers more customization and performance options. The remainder of this review will concentrate on Pro features.
Contextual Related Posts (Pro)
Pro Features of Contextual Related Posts
So, if you’re thinking about going with Contextual Related Posts Pro, here’s the breakdown of what it brings to the table:
- Custom Query Block: With the Pro Query Block, you can easily display related posts anywhere you want. This can be via a Synced Pattern, a template part, or even a custom hook module that comes with your theme.
- Enhanced Customization: You get way more control over how related posts look.
- Performance Improvements: The Pro version enables custom tables and content weighting, allowing you to fine-tune the algorithm to produce higher-quality results.
- Advanced Filtering Options: You can filter the posts based on categories or tags, ensuring that suggestions are related and relevant to your audience.
- Support & Updates: As a pro user, you’ll receive priority support and regular updates to keep the plugin running smoothly without any hassles.
Contextual Related Posts Pro (CRP Pro) Pricing
Pricing for Contextual Related Posts Pro starts (as of this writing) at one site for $49 a year. There are additional packages for multiple sites, ranging from $99 for five sites to $299 for unlimited sites.
A Jetpack Complete bundle starts at $24.95 per month for comparison, and its Related Posts feature is quite limited as far as customization.
Installing CRP Pro
Ajay was kind enough to supply me with an evaluation plan for CRP Pro about a year ago, and I happily renewed it. You can purchase the plugin through Freemius. Freemius has its upsides and downsides, but for the most part, Ajay was able to make the experience relatively unobtrusive.
I recommend using the Freemius download email sent post-purchase to get the Pro version download. You can also log in via the CRP Pro Freemius store login.
One thing that’s not apparent from the parent site is how to retrieve account information, so I recommend Ajay make this more evident on his site how to retrieve downloads and licenses for existing customers.
The Chicken and Egg Scenario – Log Into Freemius
CRP Pro uses Freemius, so logging in and getting download/license information is more complicated than it needs to be. Use the shortcut below to log in and get your license.
Once logged in, I’m shown an area for downloads and licenses.
From this screen, I downloaded a copy of Contextual Related Posts Pro and began plugin installation.
Once installed, I’m asked for a license. I found the license in the Freemius web store.
One nice feature of Freemius is that I can have my license key mailed to me. However, there’s nothing else on this screen on how to retrieve a license manually.
Feature Request… A shortcut to Licenses
At the license stage of the plugin, there is no apparent way to log into the Freemius site to retrieve a login.
A shortcut in the admin area here would go a long way.
Once the license is entered, I can view the CRP Pro settings by navigating to Settings->Contextual Related Posts.
Configuring CRP Pro Part 1 (Auto-Generating Related Posts on Blog Posts)
I’ll walk you through this first part as if you’re setting it up yourself. Please bear with me as there’s a lot to cover.
Navigate to the Contextual Related Posts settings and find the General tab. We’ll be configuring a few settings on that screen.
The General Tab
The General tab has a wealth of settings, some more advanced than others. For the most part, I’ve chosen to stick with the defaults, aside from a few tweaks below.
Post Type Settings Allow For Auto-Generation of Related Posts
You can choose where to display the related posts automatically on the General tab. You can uncheck all items if you want more manual placement. For manual placement, you can use the Pro query block or a PHP function to output related posts.
In this case, I want to display the related posts on the “Posts” post type, which is typically used for blog posts.
The Miscellaneous Section Allows You to Enable a Post Meta Box
On the same tab, scroll down to Miscellaneous and make sure the “Show Metabox” option is enabled. This will allow you to configure Related Posts per post and disable them per post if needed.
The metabox option is ultra-handy, particularly if you need custom settings for a post.
These meta settings will come in handy if you have a lot of blog posts, as inevitably, you’ll want to customize exactly what shows up as a related post.
Feature Request… A way to look up Post IDs
It’s a pain to look up something by post ID only, so a way to look up a post ID by keyword would be a great time-saver.
The Performance Tab
The Performance tab houses several options, including one to install custom tables (recommended), and some cache defaults I chose to leave alone.
On the Performance tab, I recommend enabling Custom Tables. This will considerably speed up the performance of related posts.
The List Tuning Tab
The List Tuning tab sets the number of posts to display, as well as other general query parameters necessary for displaying the Related Posts.
For my case, I set the “Number of posts to display” to four.
I’ve also adjusted my “Relevance” parameters. Since many of my post titles are SEO optimized, I’ve lowered the weight (from 10) while also increasing the relevance of the content.
I’ve adjusted the “Post Selection Criteria” to only include posts.
The Output Tab – Set Heading, Title, and Excerpt defaults
The Output tab allows you to do several things:
- Set the heading displayed for the related posts.
- Set what to do if there are no related posts.
- Display an excerpt as part of the related posts.
- Title and excerpt trimming options.
- Explicit post type exclusions.
On the Output tab is a place to exclude post types. This is a bit confusing as I already set which post types I want related posts appended to.
I’ve checked the option to show a date and author.
Bug Report! The Above Settings Didn't Save.
These should be disabled if they can’t be saved.
I received a warning saying I needed to change layouts to display an author or date. As a result of that, I saved my changes and headed to the Styles tab.
A Brief Detour to the Styles Tab
Because of the warning I received, I decided to switch the layout from default to Grid. Grid is safe enough to use for most modern websites.
I left the remainder of the Output tab options as defaults.
The Thumbnail Tab – Set Image Defaults and Dimensions
The Thumbnail tab is a bit difficult to navigate as there’s no real-time preview, but I can share some of the settings I set to make my images match my site.
I’ve selected the image size crp_thumbnail and set my image width/height to 450×253, which is a 16 / 9 aspect ratio. This aspect ratio works well for my featured images, but you are welcome to use any image width you like.
Feature Request… A preview option
It’s tough to imagine what all this will look like, so perhaps a persistent preview option will pop a preview in a lightbox.
Save the Settings
Saving is caring, so make sure to save any settings.
Feature Request… Saving remembers your tab.
There is some odd behavior when saving, which refreshes the page but doesn’t take you to your last-used tab. This can be solved by hash routing, but that isn’t exactly straightforward to implement.
Feature Request… Fixed Save Nav Bar.
Since the “Save Changes” works globally across all tabs, persisting this bar on desktop devices makes sense.
Here’s an example of the Yoast plugin doing a fixed save bar as an example:
Lastly, Build the Index
In numerous test installs of this plugin, I’ve found that the index isn’t built automatically.
In this case, I went to Tools->Related Posts Tools and built the index.
The Result and Verdict
The output is “almost” what I need. Adding some CSS helps to fix some of the layout issues custom to my theme.
With a little custom styling, I was able to get the following default layout:
Here’s. the CSS I used (note, I have the Grid layout selected):
.crp_related.crp-grid ul {
gap: 20px;
}
.crp_related.crp-grid ul li {
display: flex;
flex-direction: column;
row-gap: 0;
justify-content: start;
}
.crp_related.crp-grid {
grid-row-gap: 20px;
grid-column-gap: 20px;
}
.crp_related.crp-grid figure {
display: flex;
}
.crp_related.crp-grid ul li a {
flex: 0;
}
.crp_related.crp-grid ul li a .crp_title {
margin: unset;
margin-top: 16px;
}
.crp_related.crp-grid img {
aspect-ratio: 16 / 9;
object-fit: cover;
object-position: center center;
width: 100%;
max-width: 450px;
height: auto;
margin: 0;
padding: 0;
}Code language: CSS (css)I added these styles in the Styles panel in the CRP admin panel settings.
I will admit that adding these styles is frustrating, not because of the lack of preview but more so that the settings are refreshed after saving, and you lose your place.
Configuring CRP Pro Part 2 (Query Block)
To set up for the CRP Query Block, I’ve unchecked auto-appending to the post types in the General tab.
To speed things up, I’ve also checked to have the global settings applied to the Related Posts blocks, as shown below. It’s under List Tuning.
For this next part, I’m using my theme’s pro feature to create a “hook” template part. I’ll be inserting CRP Pro’s query block into that and have my theme auto-display it. Let’s get started.
Adding the CRP Query Block
I’ve created a new content part in my theme and set it to show up only on posts and only at the bottom of posts.
From there, I can use the block interface to add and configure the CRP query block. Here’s a quick video (1 minute, no audio) of me setting it up in the content block.
The block is very easy to set up and configure. You’ll feel right at home if you’ve used any other Query Loop block before. Ajay does a great job of organizing the blocks and options.
One surprising aspect of this is that the styles for the blocks didn’t need to be customized at all (I stripped my saved styles to test this).
Here is a screenshot of the result.
At this point, I’m wondering what I did wrong when I configured the automatic placement before.
The Verdict
Overall, I do recommend Contextual Related Posts Pro as a solution for displaying Related Posts. What makes this plugin worth getting is the Query Loop block, customization options, and support.
Beginner User Experience
I wish I could say this plugin was easy to install, but it wasn’t. The license nag, tied to the saving behavior of the admin, and the need to remember to index posts make this plugin time-intensive on the first configuration.
Admin Panel Settings
The admin panel settings are comprehensive and well-organized. What made the experience frustrating was the license integration with the plugin (the license was very hard to find) and the Save and Refresh behavior.
Some settings were repeated or required information from other tabs to be modified first. It made the experience a bit overwhelming and became a game of “let’s check this and see what it does.”
One recommendation as far as organization is to have a setup wizard, or have two modes for users: advanced, and novice.
An example of this in the wild is EWWW Optimizer’s admin panel settings, where an “easy” mode sets smart defaults for most settings and a “ludicrous” mode for much more advanced settings and customizations.
Automatic Output Customization and Features
Setting the necessary settings was straightforward, and setting Grid styles got me most of the way there.
Setting some styles for the frontend output is expected, and it is easy to add styles via the admin. What makes this area frustrating is the Save/Refresh behavior in the admin, as you have to save the changes to see what the frontend looks like.
Having some admin preview would make this customization experience much more intuitive.
Block Experience and Output
It’s obvious Ajay did his homework here and studied many other query blocks before doing this one. The experience is very similar to other query blocks and even improves in a few areas, such as a child custom “Featured Image” block.
The block configuration and styled output worked on the first try, which is why I’m rating this area so high.
Support
I had two separate issues that I needed help with, and Ajay was responsive both times and even provided a same-day release when I found a bug. This level of support these days is unprecedented.
Ajay is also very active on the free version’s .org listing, so it’s not just me he’s being well supportive of.
Conclusion
First, I thank plugin author Ajay Dsouza for creating both the free and pro versions of this plugin and agreeing to let me do this comprehensive review.
I do recommend the Pro version for the Query Loop and support alone. The admin settings can be frustrating, but they can be overcome to generate some nice-looking related options.








































