Building dynamic comparison posts/pages like Capterra, G2, etc.

Boy

@jdcharnell
BuSo Pro
Joined
Feb 21, 2018
Messages
371
Likes
573
Degree
2
For those who don't know what I mean, let's look at the HubSpot page on Capterra: https://www.capterra.com/p/152373/HubSpot-CRM/

It has the basic information about the software as any overview would.

Then it appears they've dynamically created an "alternatives to Hubspot" page here: https://www.capterra.com/p/152373/HubSpot-CRM/alternatives/

But more importantly, they have the "compare and contrast" part, where a ton of keywords can be won (bad example because of the competition):
https://www.capterra.com/customer-r...compare/152373-155928/HubSpot-CRM-vs-Zoho-CRM
and other comparison pieces like:
https://www.capterra.com/customer-r.../compare/132666-61368/Pipedrive-vs-Salesforce

Which aren't so much direct "we tried both software, here's what we found" but simply the information laid out in a way that was easily digested to make a buying decision.

This is something I've been doing (manually) for a while but I'm looking for an automatic solution. I believe it's possible, it's just I'm not a developer so don't know all the components of a project like this.

What I imagine is (from my WordPress point of view, which probably isn't best for something like this)
  • A backend database where information about the product/services could be added, with custom information inputs depending on the category chosen. Checkboxes, sliders, pricing, etc, and a check would be put into place so every field needs to be filled out. Different categories require different parameters.
  • When there are 2+ products/services in a given category, it starts automatically pulling that information in comparison pages. Every additional product/service added into a given category it retroactively updates existing 'alternative to' pages and creates additional comparison posts. Additionally, when information is updated in one place it updates it across the board à la reusable blocks.
EfdjkHx.jpg

Possible? Expensive? I have no idea.

What I do know is that 'alternatives to x' and 'a vs b' articles make a lot of money and I want to bring this method to my industry.

EDIT: I don't know if I made it understandable, but I'm looking less for dynamically displayed content and more for dynamically creating static content...if that makes sense?
 
If you wanted to do this with Wordpress, you'd create Post Templates that would be used when you manually create the "Alternatives to A" and "A vs. B" posts.

I'm thinking that you'd have a custom post template for the post about the specific product like "A Review". Your post template would have custom fields inserted all over it, so that most of the page is built out by adding custom fields with specific field keys (names) and values. The values are inserted all over the page to flesh out the tables, charts, pricing, affiliate links, etc.

You can also create a text section that gets filled out by whatever you put in the Gutenberg editor. This is where you custom, unique content comes in.

Let's say you do this for 2 different posts: "A Review" and "B Review". They are fleshed out with a set of standardized custom fields you use on every one of these posts. These custom fields also hold the data you would use to create the "A vs. B" posts.

So you create a post template for "A vs. B" that gets used when you manually create the "A vs. B" post. In this post template you'd have two custom fields for post IDs for the "A Review" and "B Review" posts. And that's all you need, because the rest of the post template is pre-coded content that's told to "loop through the A-Review's page ID's custom fields" and do the same for B.

So essentially when you need to list the "pro's" for whatever product or service "A" is it's already coded to say "Go grab the list of pro's and drop them here". "Go grab the price and put it here".

It's all very possible and a large part of your publishing procedure will be data collection and data entry, plus outsourcing some static, unique text content for the "A Reviews" style posts to help flesh it out.

This all could be made easier with Advanced Custom Fields but you missed the window on being grandfathered in, and they now are on a subscription model. Probably still worth it.

This is how I'd do it. An alternative method would be to create Gutenberg templates where every custom block you need is inserted for you and locked into place. But doing this means you'll have to re-enter all of the data each time you publish. The way I typed it would make it way less time consuming and annoying to roll out content and create less opportunities for errors.
 
Thanks for the response @Ryuzaki. Right after posting, I refined my Google searches because I was getting results for dynamic content, not dynamically created content.

Good thing I'm about to branch into a whole new category of platforms I can build this out with. Would be absolutely brutal to retroactively update the existing posts.

I suppose it doesn't need to be 100% automatic what with images, a bit of unique text, etc. At one point I built out a spreadsheet which was a database of reusable blocks shortcode coupled with vLookUp & excessive use of the concatenate function. Madlib articles.

ACF is not a problem at $50/year, because I'm sure there are a few wizards on Upwork that can create this for me. I just paid for ThirstyAffs pro yesterday just for the keyword-based link insertion.

Gutenberg templates where every custom block you need is inserted for you and locked into place.
What a coincidence you bring that up. I'm going through now with a custom top-of-article summary for the different platforms I promote. CTR is improving as expected.
 
This can easily be accomplished with any RDBMS and web framework templating system. You would create templates for each "type" of page (alternatives, comparison, etc.) and use relationships to make queries that display data from the table rows for the alternatives. Template variables would handle the rest of the basic dynamic content.
 
  • Like
Reactions: Boy
You MIGHT be able to do this with Jetengine, which can do various forms of conditional lists.

I would try that before going the custom route.

What you can do is have a Google Sheet functioning as your database and then you can import it into custom posts with Advanced Custom Fields.

You keep one row for all the info, all the categories, the price etc and even the description and the body text.

Now, one reason for keeping it in Google Sheets is the ease of updating. You can just get your VA to do this and keep prices updated, but also stuff like features and benefits.

Another thing is you can run some advanced operations to group your entries, basically you can do almost anything either with advanced formulas or Google Script.

If you wanted, you could code a script that would test relevance for each entry compared to the other entires. If the relevance was above a certain treshold, you could add a category to it "SEMRush alternative" or add the postId to a list of alternatives to that particular entry and so on.

Then it would be very simple to display dynamically with Jetengine because you could just get those postIds from your import.
 
Thanks, everyone for the responses. The more I think and write out my idea, the simpler it seems to get. I'm talking with a few devs now because I don't know shit about development. Seems like they understand what I'm going for, and it's not going to be terribly difficult to create. A usable prototype could be knocked out in a week or 2 with no automated post generation, just something simple like shortcode [alternatives post ID1, ID2].

Then it's on to automatic creation of draft posts...
 
A whole rundown so far.

1st iteration: The Upwork & Codeable Flakes
Posted a job on Upwork, got tons of Indian devs interested. Hopped on a call with 2, both disappeared after we talked. Mistake 1: looking for the cheapest option.

Looked at the ACF website and saw they were recommending Codeable for finding devs that could pimp your ACF. Great, posted a job and was going back and forth with a gent from NZ. He drafted up a scope draft, it looked good. We got on a call, he said he'd have a scope by EOD. It was a Friday. No scope by Tuesday.

2nd iteration: DIY Frankenstein's Monster
Using reusable blocks extended shortcodes, Google Sheets, and Pabbly (Zapier alternative), I came up with a simple solution.
  • Create every section of a post in reusable blocks
  • Create a table in Google Sheets with the platform names, blocks shortcode
  • Put together a nasty concatenate+vlookup abomination
  • Publish from Sheets to WP with Pabbly when every column is filled out
Watch the video from about 3:30 on:

3rd iteration: Codeable Came Back
So that was figured out on the 4th. On the 5th the Codeable dev came back with the scope and quote. Looked good to me. MVP plugin would be able to do everything I needed it to do initially with additional pages and features added over time. Demo sometime this week.

MVP: Create summary pages pulling all the data fields + 'alternatives to' at the end of the page, create 'a vs b' pages based on category, have default fields & features fields be defined by category & checkbox'd per product. All of which will be published automatically (not sure if it'll be right away or with a job).
  • Semrush vs. Ahrefs
  • Everything You Need to Know About Semrush
Next steps, once it's completed and used:
  • create 'alternatives to' pages automatically by category, with dynamic titles, and implement a weighting for each product in a category for order.
    • Alternatives to Semrush
    • Alternatives to Ahrefs
  • create 'best [category] that have [feature]' type pages automatically following the same principles, with something like a minimum of 3 checkboxes before they're created
    • The Best SEO Tools That Have Track Rankings
    • The Best SEO Tools That Have Historical Data
  • editable identifiers like price could be changed to pricing, or price per user, or price per serving, etc. Still serves the same function, but more use cases
 
Last edited:
Nice write up thanks @Boy!

You didn't seem to go down the route suggested here https://www.buildersociety.com/thre...s-pages-like-capterra-g2-etc.6431/#post-66467 That Jetengine plugin plus Google Sheets seems pretty interesting.

Sounds like you have the situation under control though and are progressing well!
Yeah I was looking into that and it seemed like it could work (hence finding Codeable from ACF), but it would take a boatload of time for me to configure. Then I would have gotten frustrated and just hired someone to do it. While I don't have bankrolls for stank hoes just yet, $4k isn't hard to replace nowadays.

Got the demo this evening for the plugin!
 
Nice, please keep us updated. Interesting thread and I watched some of your videos too.
So the demo went well, about what I expected. They gave me a copy of the plugin to put on one of my sites, test it out for bugs, request changes, etc.

It's based on Advanced Custom Fields. Good, because I don't know how to do that shit*, have no desire to learn it*, and if I need a nerd in the future I'm guessing they can easily modify it.

A few bugs to work out, such as the comparison pages being created but not showing up in the sitemaps.

A big issue is there's no redundancy check. It would create site.com/semrush/compare/ahrefs as well as site.com/ahrefs/compare/semrush.

And I have a few changes I want to make, such as the category in the URL rather than a generic site.com/platforms/semrush, I'd rather it say site.com/seo-tools/semrush.

Don't even really plan on using it for SaaS as it's so damn congested. Unless I run the gamut on something like https://market.partnerstack.com/ or trolled AppSumo for SaaS startups with generous affiliate programs.

As we work out the kinks & get all the features good to go, I'll be using it on a fresh domain comparing CBD products. It may make some dollars, but it's more for testing multiple categories, creating pages at scale, customizing the pages, yada yada yada.

*Looking at the templates, it's not terribly difficult to understand. Could probably make adjustments or even whip up my own page template with a few hours of copy + pasting & 12 oz of cold brew.
 
A walkthrough of version 0.01

Ugly, but it works. A few bugs need to be fixed, some minor (titles & descriptions), some MAJOR (redundancy issues, sitemaps) as I said in my last post.

I sound like a dunce because I was up for a long time playing around with it and woke up fuggin early to get back to it. Cold brew on deck.

 
Thanks for keeping us posted @Boy. Do you plan on implementing this as a standalone website? Or in a site that you already run (with regular posts)?

I have been looking into programmatic SEO (G2 is an inspiration for me as well), and one thing I am worried about is that the same content gets pulled into different pages (like Product 1, Product 1 vs. Product 2, etc.). Would it be prudent to spin it off as a separate subdomain? But then again, that's losing the authority gained for the main blog. On the contrary, I do not want any duplicate content penalty to pass on to my main blog.
 
So I just released escrow to the devs. MVP status achieved, worked out all minor bugs that were within the project scope.

Still sent a message beforehand about making changes/improvements in the near future, all of which I've identified previously. My guess as a non-dev for a redundancy check would be using an ID system to only compare lower ID entries to higher ID entries, then if it's a higher ID, they swap IDs and that's the "canonical" so to speak.

Do you plan on implementing this as a standalone website? Or in a site that you already run (with regular posts)?
I'm going to use this on new sites only. Mostly because of how it behaves. While it does work, it's still very much in beta.

I have a new live site I'm testing it on to practice CSS, PHP, and all that to make it look and act how I want it to. Set up an offline environment but F that, I don't know nor follow best practices.

I have been looking into programmatic SEO (G2 is an inspiration for me as well), and one thing I am worried about is that the same content gets pulled into different pages (like Product 1, Product 1 vs. Product 2, etc.). Would it be prudent to spin it off as a separate subdomain? But then again, that's losing the authority gained for the main blog.
So I tested using content in multiple spots on a site mid to late 2020. What I did was take parts of 'overview' type articles, turn them into reusable blocks, then combine them into 'a vs b' and 'top alternatives to' articles.

Straight up the same 5-6 sections of text used on 20, 30, 40 posts on the site. All bring in a tiny amount of traffic each day which adds up to a healthy amount of traffic each week.

Now I can do that but it won't be manual. It's been over 16 months and I've yet to have any negative come my way because
  1. It's genuinely helpful to see those two platforms lined up side by side (in the vs articles sake)
  2. No one else is doing it. This wasn't an keyword research play, this was a "hey, I saw on my-niche-subreddit that people were asking about X vs Y, I'll create that for them"
There are many variations of programmatic SEO I've discovered. This way, the reuse content in as many ways as possible automatically.

Another is the 'mad libs' style where you have a data set and then create a shell of a post/page where key points can be input. One example of this (which is a build in public thing) is https://gardenauntie.com/. Go look at the articles on that site, two of them side by side. Not the best, but it's ranking and answering the query someone is looking for.

Another example, which is what sparked my interest in exploring this more, was the https://failory.com pitch decks, which is explained in detail in the first video on YouTube when you search programmatic SEO.

On the contrary, I do not want any duplicate content penalty to pass on to my main blog.
As far as I know, which isn't shit, duplicate content comes from jacking other people's shit. You think you're going to get slammed for using the same 200 words multiple places on a site? Ecommerce dudes on self-delete watch if that was the case.

I don't remember where I said it or what the context was, but we think way too highly of ourselves. Spammers are out here scraping and blasting, GPT-3 people also asked sites with 2 million pageviews a month are rampant, and people are still able to purchase Google ads leading to phishing sites.

Yet we think there's a microscope on us because we got accepted to Mediavine.

Man, on my very first site ever I put product star rating schema on every article to make my SERP ranking look better. Never got hit for it, took it off because I realized I was a moron.

You'll be fine. If G2, Capterra, Getapp, Softwareadvice, Softwaresuggest, or the hundreds of other SaaS comparison sites out there can rank (which are all doing the exact same thing), you can rank.
 
Back