Programmatic SEO: Building 23 000 pages of BOFU Content

At Crisp, we thrive on automation and mindful projects that can have a huge impact on revenue thanks to a deep focus on BOFU content.

Crisp is an all-in-one multichannel customer service software for companies around the world. We're fully bootstrapped with a team of 14 people, and we scale our growth through a 100% inbound strategy.


This title might not be easy to understand for someone that is not deep into modern marketing so I'll detail the few keywords that are composing it.

SEO: Search engine optimization or the art of ranking a specific page in the first results of specific keyword research.

Programmatic SEO: The art of combining scalable content creation that targets highly valuable search intent.

BOFU: An acronym for Bottom Of the FUnnel. That relates to content targeting keywords used by potential buyers at the end of their buyers' lifecycle.

Template engine: A piece of software combining templates with data to create documents or pages.

Now you understand the title, let's get down to what it took us to build 23 000 pages automatically.

By reading this article, here's what you'll get:

  • Details on our content production strategy ๐Ÿง
  • An idea to iterate faster on content ideas ๐Ÿ’ก
  • The step-by-step strategy we applied to create 23 000 pages

Before diving into details, I want to take a moment to explain our mindset, which fuels our growth strategy.

The secrets behind our BOFU contents for SEO

We're working in a crowded market where there are more than 500 different vendors benefiting from huge amounts of private capital, and a large number of employees. In a nutshell, they have much more money than us so why should we compete with them on the entire customers' lifecycle?

That's why we've decided not to work on TOFU (Top Of the FUnnel) content to let our competitors educate the market with millions of $ being spent every year.

As an example, Drift spent 15M$ to create the conversational marketing market, which is obviously money we don't have.

Our strategy at Crisp is to be super strong at the last steps of the customers' lifecycle: comparison and decision.

Why? Because someone that types "what is a live chat?" has far less value to us than someone who types "intercom alternative".

We can apply this strategy because we're in a mature market where we differentiate ourselves a lot in terms of pricing and product. Not every company can get started with this kind of strategy.

Normally, you should now understand our vision. Let's deep dive into the story of programmatic SEO and the 23 000 pages we generated.

Programmatic SEO needs content

Nothing programmatic here, but this is where we got started. As you may know, keywords such as "alternative to x" or "competitorName Vs X" are super interesting and competitive keyword searches in B2B markets.

The blog article strategy

How did we got started? With a simple blog article back in the day. It is the best and fastest way to test a search intent.

That's the perfect way to:

  • Validate a hypothesis
  • Go fast with no budget
  • Gather data
  • Have arguments to bring the team into further investments

I acknowledge I wasn't proud of myself when I launched it but seeing the results made me happy with it.

Example of a comparison article between Crisp and Tawk.to

For reference, here is how the article has been performing since I created it.

For my savvy marketers out there, a conversion is set as a website visitor that creates an account on Crisp.

Conversion rates on this article were much higher at the beginning and decreased as I doubled down on this strategy by creating dedicated landing pages.

The dedicated landing pages strategy

As our hypothesis was correct, we decided to invest in this further by building dedicated landing pages that would help us to increase conversion and allow us to build GAds campaigns.

We got started with 15 main competitors that we were facing the most during sales demos (that I handle too so data gathering was easy ๐Ÿ˜).

To do so, we created a new repository on our website: /alternatives/ and a "category" page that would contain all the alternative pages. Think about it as category pages on an e-commerce website.

And here is an example of the TawkTo Alternative page that we designed.

And as a result, it worked pretty well too, as you can see on the screenshot below, and it's still growing because as again, we doubled down on it.

Seeing these results, we decided to double on it, and here is what we did:

  1. Translated all the alternative pages in 11 different languages because we noticed were ranking on the first page for competitors' brand name keywords.
  2. Added 30 more alternative pages to the directory.

Here is where we decided to go big on alternative pages (๐Ÿ‡ฌ๐Ÿ‡ท, ๐Ÿ“Paros). We do a yearly remote retreat with the entire team where we combine hard work and joyful moments. Wanna join? We're always looking for mindful marketers to join. Click here to submit a spontaneous application.

๐Ÿ“Paros ๐Ÿ‡ฌ๐Ÿ‡ท

It was painful as I've been through each competitor to review their product, pricing, and feature details.

To make sure I didn't do any mistakes, I've even hired a freelancer to review each alternative.

This is also where I've been thinking about working on competitors' audiences to build my own. As a mindful marketer, you know that one of the successful growth strategies you can apply in a competitive environment is to work on top of other people's networks.

I repeated the same strategy and created a dedicated blog article that would compete with two main leaders in our market: Intercom and Drift.

Didn't do anything else than publish the content and look at traffic rising.

And here is the story of how we generated 23 000 pages thanks to programmatic SEO.

What is Programmatic SEO?

In simple words, programmatic SEO is a method that helps to improve search engine visibility by creating dedicated landing pages at large scale.

Companies such as Zapier, TripAdvisor, and Wise have nailed this kind of strategy for years.

Programmatic SEO is a way to bypass the slow SEO process of creating content that needs to be good, qualitative, and unique. Here we focus on creating a good user experience while responding to search intent with content that is better than what the market provides.

Another great article about programmatic SEO is the one recently published on Webflow blog, which talks about 300 pages being published within a week.

Programmatic SEO 101: Combining content to target long-tail keywords

This was the longest and most boring work I've done for years but it was worth the try.

Building the comparison table

The comparison table has been set through different means and inspiration, it combines 7 different categories.

In total, it contains 56 criteria.

Gathering the content

Automating this part would have been idiot as we have to master our market knowledge so I took my suitcase and walked along the road of the great customer experience market.

In the end, I have analyzed 50 competitors through 56 different points to build a comprehensive et good enough comparison list.

Categorizing the content

As we're smart marketers at Crisp, we decided to categorize specific BOFU expressions which were interesting to us such as "live chat software comparison" or "chatbot software comparison".

For each vendor, we decided to give it a category, which would help us to further classify our content in the eyes of our beloved search engines.

Thanks to this work, we've been able to create the following specific pages:

Mixing the content

The biggest coding challenge was to create the comparison engine which would create the listing.

Our goal was to create a comparison engine that could scale from 1 to 100, 1000, or 10000 pages easily. Another goal was to keep everything static since our website is entirely static for great performance.

But, how can we build 23000 pages easily? Let's break it down!
First, after gathering the competitors' data, we stored it in a JSON file in English and then translated it into the ten other languages we support on our website. (We run a custom translation script we made for ourselves) The JSON file looks like this:

JSON file snippet

Secondly, we also store company logos to display on every comparison page.

Finally, the key element to our comparison engine is inside our gulpfile.js file. Gulp is a tool that allows us to run specific tasks, like creating a sitemap, compiling CSS, or building pages. We built a couple of tasks that read our JSON files to get data from two competitors and merge it to create a page comparing both. We also have tasks that create pages filtered by category, paginated statically, to support navigation speed.

Here is a code snippet showing how it works:

Gulpfile comparison page build function

The Gulpfile tasks merge JSON data and send it to various Jade files, ย and build each section of our comparison page. Here is an example with some parts of a Jade file.

Jade file code snippet

If we want to add a new competitor to the list, we just add its content to the English JSON file, translate content with our translation script, add the competitor's logos, and run our compilation script and it's done and ready to be live on our website!

๐Ÿš€
Thanks to this comparison engine, we can now build countless pages with the same lines of code!

Classifying the content

As we wanted the most popular competitors to be ranked first (eg on 1st page of the comparison page), we decided to give each of them a note.

To do so, we decided to use Domain Authority also known as "DA". Domain Authority (DA) is a search engine ranking score developed by Moz that predicts how likely a website is to rank in search engine result pages (SERPs). Domain Authority scores range from one to 100, with higher scores corresponding to a greater likelihood of ranking and therefore a higher likelihood of being popular.

Popularity was important to us because that's what we're looking for: target huge audiences and grow on top of them.

To use the Domain Authority, we added this number to every competitor data in the JSON file. This allowed us to focus first on the competitors with the higher Domain Authority to build the higher value pages first.

Nothing is perfect so we had to tweak a bit for some competitors who have high Domain Authority due to having other well-known products but not having high Domain Authority on the specific product we are comparing to.

We browse through our merged comparisons data by multiplying the first competitor score with the second competitor score, and sort the results from high to low.

Each time we want to publish more pages, we just lower the comparison rank, here at 6400.

Indexing the content

Publishing 23 000 pages are something that needs to be prepared. It has to be monitored. Here is our checklist for publishing tons of content:

  • We decided to publish 2000 pages by 2000 pages on a monthly basis which would allow Google Bot to index and rank content easily.
  • After each publication, we run a website crawl using oncrawl to check if everything is going fine
  • We monitor indexation over Google Search Console

To sum it up, we're still super early as we haven't published all the page and they are still getting on the way to being clearly identified and ranked in SERPs.

However, we're already seeing an increase in organic keywords, clicks, and impressions even though it's super young at the time I'm writing this article. (2 months, we just published our second batch of pages a few days ago).

Thoughts on the future of this strategy

Programmatic SEO and Dynamic Ads (Inbound to Outbound strategy)

Creating a ton of pages and not doing anything would be sad. This is why it is important to think about the next step.

As we're going to create a directory of a very large number of expressions, it could be interesting to use DSA (Dynamic Search Ads) to automatically display ads on top of the page, concerning to desired search intent.

Programmatic SEO and Retargeting

As we're going to compile a super large number of visits of potential buyers in our market, the aim here is to create a remarketing list per language that will help us to stay top of mind.

Programmatic SEO and Conversion rate

Our first inputs on conversion are not good, 1000 visits for one conversion. That doesn't scale at all. Now we gotta focus on the right UX.

We need to work on CRO to make it even more powerful. Ideas to share? happy to listen.

ย