A practical guide to programmatic SEO
Learn how to generate organic Google search traffic with content created using programmatic SEO.
I've been building websites powered by programmatic SEO for the last 3 years, and my portfolio generates about 3m+ page views per month.
For me, content creation has always been one of the most painful parts of building and growing websites. The process usually looks something like this:
- Write a content brief/outline
- List a job on Upwork or OnlineJobs.ph
- Sift through 50+ applications
- Hire 5-10 writers on a trial
- Pick the top 1-2 to train further
- Repeat the process when one of the writers disappears
I’ve had great success building a content machine like that but, for a solo builder, it’s a lot to manage across a growing network of sites.
Enter programmatic SEO.
Table of Contents
With programmatic SEO, I can generate a lot of organic search traffic from Google with 100, 1000, even 10k+ pages of content created without writers.
(And before you ask, no, this is not spam. Many of the biggest companies in the world use programmatic SEO too)
Data + programmatic SEO = 🔥📈
I get a lot of questions about how to get started with programmatic SEO, so I decided to write this guide.
One of the first questions is usually about how much traffic you can get or if you can rank using data and templates alone.
Here are some of the stats from my portfolio 👀:
Most of these sites were aged content sites that had been abandoned by the previous owner. I acquired them through cold outreach, and used programmatic SEO to grow them.
Sites 5 and 6 though, were brand new domains registered in May 2021. I built the datasets and sites from scratch, and it took ~1 year to get them to these traffic levels.
Programmatic SEO in a nutshell
So what is programmatc SEO? Put simply, programmatic SEO is a way of generating a large number of blog posts or content on topics people are searching for in Google - you guessed it... programmatically.
There are no code tools available, but IMO you need to use at least some code to really get the most benefit. Hence the term "programmatic".
It's really not that different to normal SEO. You need to:
- Find topics people are searching for
- Create a page that answers that question
The difference with programmatic is that we can do it at scale by using data to find topics that are repeatable, and can be used to answer the question or query people are searching for.
The keywords tend to be less competitive long-tail terms, and because of the volume of pages you can generate, it amounts to a lot of traffic.
For the type of sites I build, I prefer the term "data sites" because I spend as much time collecting and organising data as I do using programmatic SEO to build a site around it.
You'll probably have seen it in action with local SEO. Sites like TripAdvisor, Expedia, Airbnb, etc use programmatic SEO to generate landing pages for tens of thousands of locations.
Let's say you have a website with 1,000 pages created using programmatic SEO (which is a tiny amount compared to most of my sites).
If you average 50 visits a month per page, that's 50,000 visits a month.
This is pretty realistic too, because the very nature of programmatic SEO means that you end up targeting long tail, low competition keywords.
The (many) benefits of programmatic SEO
The benefits of programmatic SEO should be pretty obvious...
- Target a lot of long-tail keywords very quickly
- No expensive, ongoing content creation
- Can be done without hiring and training writers
- Much less stress vs editorial SEO
- Creating unique content by combining data (more natural backlinks)
With programmatic SEO, I can spend 2 weeks building a really solid and useful dataset, and then output content around that data using a handful of well written templates.
(and honestly, the last few builds I've outsourced the data collection stage to Upwork)
All up, I spend about a month building programmatic sites and then they become 99% passive. Some auto-update, others I need to run a script once a year to update the data.
An example of programmatic SEO in action
There are a few similar examples that are often shown in posts about programmatic SEO. One of my favourites, which mirrors the type of pages I like to create is the inflation calculator at In2013Dollars.com.
Using inflation data provided by the BLS, the site is able to produce content on the inflation rates and changes from 1635 to the latest year.
So, if you compare the value of $100 in 2015 to $100 in 2022, each comparison like this has it's own URL:
The site takes the start year, end year, and amount, from the URL and calculates the data from the database of CPI values by month and year.
The result is a ~1,900 word template that includes content, tables, charts and downloadable data on a host of areas:
- Buying power
- Inflation by city
- Inflation by country (comparing US to other countries like the UK)
- Inflation by spending category
- Details on calculation and formula
- Alternate measurements
- Comparing to S&P 500
It performs pretty well in Google, too!
If I were recreating this site (which I may or may not have done 🤐) I would:
- Write a PHP or Python scraper to download the data from here
- Set it up on a cron job to run every month and update the db
- Write a CPI class that can calculate the data for a given start year, end year, and amount
Once you you have the data in that format, you can write a template that outputs the content. More on that later.
Finding good data to use
I'll cover this in another post in much more detail, but the main places I source my data are:
- Data.gov - lots of great data sources made public by the US government
- Scraping it - I find interesting sites all the time with valueable data to scrape
- GitHub - there are some great datasets on GitHub that are open source and free to use (example)
To trick is to learn what data works the best for programmatic SEO. You'll figure that out over time through trial and error. I've had success with very simple data, and also with very complex data. Who knows what's gonna rank?!
An overview of my site framework
The actual tools you use to build the site aren't important. A lot of people are using static site generators now (the build times would be too slow for me), others prefer to use WordPress (which runs too slow at 10k+ pages for me).
My stack is a very simple PHP framework that I've iterated over time. Could I move to NextJS and render the pages on the fly? Probably, but my framework is so easy for me and I don't have to learn a new thing.
Here's how it works:
- All traffic routes to index.php
- Internal router based on request URI
- PHP controller loads the data from the database
- Twig template renders the page
If you're hiring a dev, use Laravel! Mine is pretty janky, but it works so well (3m pageviews/mo, remember?) that I don't want to change it.
Each template has it's own controller to load the data. Some sites only have a couple of controllers, larger sites have 20+!
Programmatic SEO is still mostly just SEO
For SEO, I keep it very simple and let the long-tail keywords do their thing. You're programmatically creating a lot of pages, but it's still just basic SEO.
- Keyword focused H1, title + description in the controller
- Breadcrumb navigation
- Internal linking (in the article and also sidebar widgets)
- Basic schema markup
- XML sitemap (or index of sitemaps) to submit to GSC
- Redis to cache database queries
- Cloudflare Page Rules to cache the front end
This generates very simple, fast-loading pages that are easy to crawl and index. Good SEO is rarely complicated.
Writing helpful page templates
The second most important part of programmatic SEO after getting the data is writing killer templates.
This is where you can really stand out from the crowd and create something that's useful and unique. Most sites don't put enough effort into this part and it's where you can do better to outrank them.
There may be some people that see programmatic SEO as spammy or call them doorway pages. I don't agree!
The goal for me isn't just 100,000 pages. It's to provide value on those 100k pages.
I hate to continue this trend of boringly simple advice, but it is quite straightforward:
- At least 700-1000 words of content (with headings, lists etc)
- Conditional content based on the specific page
- HTML tables, maps or interactive data charts
- Internal links to related pages
I always try to make my sites better than the competition. More detailed, more data, easier to use, the ability to download or export the data.
Programmatic SEO is a tool, but you can and should still build top quality sites with it.
Programmatic SEO case study
I did some research into programmatic SEO case studies and courses, and most of what I saw was explaining the methods and the basic SEO theory behind it.
There's nothing practical out there that shows you how to build programmatic SEO sites from start to finish.
Even the examples of people building in public are more directory-style sites, rather than the long-form content sites I build.
I'm not trying to repeat what's already been said in other blog posts, so I'm just going to build a programmatic, data-driven site from scratch, and document the entire process.
There won't be a lot in the way of theory and concepts. It's been covered elsewhere and is pretty simple to figure out anyway.
I'll cover the import stuff like keyword research, finding data sources, writing templates, creating sitemaps and internal linking as I go.
The real power of programmatic SEO is finding (or better yet building your own) databases with a lot of information that can be transformed into content. The rest is just SEO.
The list below contains all of the planned posts in this series. I'll update it as I go, and if you want to be notified when I publish a new post, you can follow me on teh Twitter.
Find and build a dataset
I'll explain the kind of data I look for, where I find them, and how to get the data into a format that can be used by a programmatic site.Read the article
Building a framework
I'll show you my custom PHP framework that I use to quickly roll out new programmatic sites.
Write high-quality blog-style templates
I'll take the data and write long-form, blog post style content that answers the questions people are searching for.
Basic on-page SEO
There's nothing fancy here. Just some basic on-page SEO using keyword research, schema, and a few other things.
Internal linking magic
I'll show you my quick and ugly way to internal link to a lot of pages to help Google find them.
Get the content indexed in Google
If your content isn't indexed, it can't rank. If it can't rank, you won't get traffic. I'll use a few simple tools to get content indexed quickly.
Link to this page
I can haz links? If you can, do me a solid and link to this article if you mention it in your blog post or newsletter.