Define goals and opportunities

Set clear programmatic SEO goals and identify the best opportunities to boost traffic and conversions.

Orienteering compass laid on a topographic map

Before you generate anything, write down one primary goal, one query pattern to test it on, and the number that will tell you it worked. Everything else in this chapter serves those three decisions.

I’ll continue with the illustrative example from the persona chapter: a job board for hotel and restaurant staff in France, 30 roles, 2,000 cities.

Choose the goal that fits what programmatic SEO does well

Traditional SEO and programmatic SEO both chase visibility, by different routes. Traditional work means hand-optimized pages, editorial content and backlinks. Programmatic work means many pages built from templates and a database. I cover the trade-offs in programmatic SEO vs. traditional SEO. For goal-setting, what matters is that the programmatic approach serves four objectives well, and each one needs a different measurement:

Goal What to measure Where to read it
Cover long-tail queries Distinct queries with clicks, per template Search Console, filtered by URL folder
Reduce production cost Hours spent per published page Your own project tracking
Get pages indexed Share of submitted pages that are indexed Search Console, Page indexing report, per sitemap
Increase conversions Key events per landing page group GA4

Pick one as primary. The two real projects I document had very different ones. Deux.io wanted to rank in the top 3 for competitive, business-oriented searches, in order to be seen as a market leader. Derrick was a side project whose objective was growth that keeps running once you stop working on it. Those two goals call for different page sets and different definitions of success.

A usable goal for our job board would read: “Within six months of launch, line cook pages in the 200 largest cities bring in job alert signups, measured weekly in GA4.” It names the scope, the deadline and the metric. “Get more SEO traffic” names none of them.

Look for query patterns that repeat

Programmatic SEO lives on patterns: a fixed part plus one or two variables.

  • best restaurants in {city}
  • best tool for {action}
  • {tool} vs {tool}
  • {role} jobs in {city}

Finding a pattern is easy. Validating one takes a little more care. Take around 20 variations spread across your range, including big cities and small ones, or popular tools and obscure ones, and check three things. People have to actually search for them. The results on the page should look alike from one variation to the next. And you need data that changes between variations, because a page whose only difference is the city name has no reason to exist.

Why you should distrust volume on the long tail

Specific queries are where the qualified visitors are. “Comparison of programmatic SEO tools” says far more about the person typing it than “SEO tools” does.

Keyword tools are weak precisely there. Many very specific queries show low or no volume because the tools work from samples and estimates. So I evaluate the pattern as a whole, and I’d rather sum volumes across a representative sample than judge any single keyword.

For the numbers themselves, Google Keyword Planner gives ranges and trends, Semrush, Ahrefs or Mangools give competition data and estimates, and Search Console shows queries your site already appears for. That last one is often the best lead. A pattern with impressions on pages that were never built for it is demand you have already started to capture.

Brass compass on a world map

Read the SERP before trusting keyword difficulty

For each candidate pattern, open the results for several variations. Note which format dominates: listing pages, articles, videos, or a module from Google itself. Note whether the first page is all large authoritative domains or leaves room for a specialist. Check also whether an AI-generated answer already satisfies the query. Purely informational patterns are exposed to that, while a query that ends in an action on a page is much less so.

Then look at who is already doing programmatic work. Repeated URL structures such as /jobs/{role}/{city} give it away, and a site: search on a competitor’s folder shows roughly how far they have gone.

Keyword difficulty is one input and I give it less weight here than in traditional SEO. A template spreads across many queries, so the useful comparison is total search demand against the number of pages you must produce and maintain. It still matters if every variation is held by domains far stronger than yours. No volume makes that winnable.

Count the pages your data can support

The number of possible combinations is a vanity figure. The number that matters is how many pages would have something useful on them. On the job board, that’s one query:

SELECT r.slug AS role, c.slug AS city, COUNT(*) AS live_jobs
FROM jobs j
JOIN roles r ON r.id = j.role_id
JOIN cities c ON c.id = j.city_id
WHERE j.status = 'live'
GROUP BY r.slug, c.slug
HAVING COUNT(*) >= 5
ORDER BY live_jobs DESC;

The threshold of five is an example. Set yours by asking at what point a page stops being worth a visit. The 60,000 combinations from earlier might shrink to a few thousand, and that is good news. Google’s scaled content abuse policy targets mass pages with little value, however they were produced. Pages below the threshold can wait, unpublished or set to noindex, until the data fills in.

Compass on a map among autumn leaves

Score your opportunities in a matrix

Put every pattern in one table and force a decision. Here is the shape of it, with invented figures for the job board:

Pattern Eligible pages Monthly searches (sum) SERP difficulty Business value Decision
hire a {role} in {city} 800 4,000 Medium High (employers pay) Wave 1
{role} jobs in {city} 3,400 90,000 High Medium Wave 2
{role} salary in {city} 600 12,000 Medium Low Wave 3
how to become a {role} 30 15,000 High Low Skip for now

The biggest volume does not win here. The employer pattern goes first because it is the one that makes money, it is less contested, and a small first batch is enough to validate the template. Your goal from the first section decides how to weigh these columns.

Roll out in waves

Publish the best pages of wave 1 first, a batch small enough that you can read a sample by hand. Watch how quickly they get indexed and which queries they pick up, fix the template, then extend. A template bug caught at 100 pages costs an afternoon.

You also don’t need an enormous page count to get a durable result. Derrick was built on 100+ page variations and still brought 88 clicks per day in January 2025, two years later, with no further SEO work. Deux.io was built on 500+ pages, with 485+ business keywords in Google’s top 3. In both cases, what counted was the fit between pages and demand.

Your next step

Take the sheet from your persona work, write your one-sentence goal at the top, and build the matrix with at least three patterns. Validate the winner against 20 real variations and count the pages your data can support. Once you have one approved pattern and a page count, you are ready to decide what each page will contain and in what order.