SEO & Marketing

Programmatic SEO: What It Is, When It Works and How to Apply It

E
Equip editorial Posicionament-Web
08 May 2026 6 min 15 views

Programmatic SEO: What It Is, When It Works and How to Apply It Without Getting Penalised by Google

Programmatic SEO is the practice of generating hundreds or thousands of optimised pages from a template and a dataset. Think Tripadvisor (one hotel page per city), Zillow (one page per property) or a comparator of the type 'best tax lawyer in [city]' multiplied across every Catalan town. Done well, it is the most powerful growth lever in SEO; done poorly, it is the shortest path to an index purge by Google. This guide explains what it is, when it makes sense, what anatomy a programmatic page that ranks needs and how to add an AI layer in 2026 without producing thin content.

1. What programmatic SEO is

It is a technique that combines:

  • An HTML template with dynamic fields (city, product, attribute, metric).
  • A structured dataset (CSV, database, Airtable, Sheets).
  • A generator that combines both and publishes one page per row.

The outcome: 200, 2,000 or 20,000 pages covering very specific long-tail ('emergency plumber Sabadell central neighbourhood' × every neighbourhood × every town) that Google indexes one by one if they carry enough value.

2. When it makes sense (and when it does not)

It makes sense when:

  • You have real, differentiated data per combination (not just the city's name swapped into the same sentence).
  • The combined long-tail adds up to real search volume (check it in Search Console or Keyword Planner before you build).
  • Your sector has clear patterns: rental, travel, real estate, local services, comparisons.

It does NOT make sense when:

  • The only variable is the city name and the rest is an identical template.
  • You have no own dataset and just hope Google believes 1,000 pages are useful with no sources.
  • The sector is saturated by top players (do not try to build Booking 2.0 if you are an SME).
KeyProgrammatic SEO is a data lever, not a template lever. If you do not bring your own data to each page, it is thin content disguised as volume.

3. Anatomy of a programmatic page that ranks

A useful programmatic page must include these blocks (none can be skipped):

BlockPurposeWithout it…
Unique H1 per rowNaturally combines entity + attribute + cityIt slides into duplicate content
Direct answer up front2-3 sentences answering the query with the concrete dataOut of AI Overviews and AI citations
Specific data3-5 own data points (average price, duration, local criteria)Thin content
Visual componentTable, grid, map or chart built from the datasetPoor user value
Smart internal linkingLink to 4-6 relevant sibling pages (not all)Crawl budget wasted
FAQ with 3-5 questionsSpecific to that combination, not genericLoss to listings with FAQ
Schema.orgWhatever fits (LocalBusiness, Product, Service)Lower chance of rich result

4. Step by step: from dataset to published pages

  1. Define the entity and the variables. Example: entity = 'SEO agency', variables = city × sector. Outcome: SEO agency restaurants Barcelona, SEO agency real estate Tarragona, etc.
  2. Verify real volume: 50-100 random samples in Keyword Planner. If most have 0 searches, rethink the entity.
  3. Gather a real dataset: without this data, do not continue. It can come from your DB, public directories or your own surveys.
  4. Design the template locally: 3-5 manual pages before generating. If those do not work, the batch will not.
  5. Generate with a script (Python, Node, Symfony, n8n…): 50-100 pages in a first batch. Index them manually via Search Console.
  6. Measure for 4-6 weeks: impressions, positions, CTR. Scale what works. Retire or revise what does not.
  7. Progressive scaling: never publish 10,000 pages at once. Release batches of 200-500 and watch the impact in Search Console.
3-5
Manual pages before generating the batch
200-500
Recommended initial batch size
4-6
Weeks of measurement before scaling

5. Mistakes that cause cannibalisation or penalty

  • Identical template with only the city swapped — Google flags it as duplicate content.
  • Indexing everything before testing — launching 5,000 weak pages hurts domain trust.
  • Bulk-generated FAQ with the same 5 questions for every page — no diversity.
  • Massive internal linking (every page links to all others) — diluted and poorly prioritised, it adds no authority.
  • No own dataset, relying on what AI can invent — Google has its own model to detect that.

6. Practical Catalan cases

  • A travel agency in Castelldefels generated 320 pages of the type 'weekend break in [destination]' × 80 destinations × 4 profiles (couple, family, group, romantic). Each page with a unique itinerary pulled from its internal DB. Three months later, 35% were receiving steady organic traffic.
  • A real estate portal in Salt (Girona) scaled to 1,800 pages on neighbourhoods and villages of the Gironès, but started with only 60. The first three batches confirmed that pages with real datasets (prices, schools, transport) worked; those that only swapped the city name did not.
  • A local gym comparator in Tarragona launched 240 pages (gym × city × discipline) where each page showed a real comparative table with 4-6 verified businesses. It started appearing in AI Overviews on local queries within six weeks.

7. What AI brings to programmatic SEO in 2026

AI does not generate the dataset (that remains human work or legitimate scraping), but it does help on three critical points:

  1. Wording variation: to avoid identical templates, ask the model for 50 different versions of the introduction from the same dataset. Filter and assign randomly.
  2. Specific FAQs: for each row, generate 3-5 questions based on its real data (not generic questions). This alone is the difference between cannibalisation and useful content.
  3. First-paragraph summary: ask AI to write 80-100 words specific to each entity, with its data, to maximise citation in AI Overviews.

If you would like help building a programmatic SEO project in your sector, we run a free audit in which we assess fit, the dataset size you would need and a progressive launch plan. If it does not fit, we tell you straight.

8. Recommended technical stack

Layer2026 recommendation
DatasetOwn DB, Airtable or Sheets depending on size; minimum 200 real rows
GeneratorSymfony with fixtures, Next.js ISR, Astro or WordPress with dynamic-template plugins
AI layerClaude or ChatGPT API for wording variations and FAQ; never to invent data
IndexingSitemap fragmented by batch + Search Console Indexing API
MonitoringSearch Console + Looker Studio for performance per page cluster
CannibalisationAudit with Screaming Frog and pairwise semantic comparison

Frequently asked questions

How many pages are 'too many' for programmatic SEO?

There is no magic number. An SME with 200 useful, data-rich pages weighs more than a project with 10,000 template pages. Start in the hundreds and grow by validation, not by ambition.

Does Google penalise programmatic SEO?

It does not penalise the concept. It penalises thin, duplicate or value-less content. If each page has a unique dataset and a concrete answer, Google indexes them like any other well-built page.

Can AI generate programmatic content on its own?

No, because it would invent data and Google does detect that. AI helps to vary wording and generate FAQs from your real dataset, never to create the dataset.

How long does a programmatic project take to deliver results?

For an SME with an own dataset of 200-500 rows, first results appear between 6 and 12 weeks. Consolidated results, between 4 and 8 months.

What do I do if some pages do not rank?

Remove them from the index (canonical or noindex) or redirect to the parent page. Keeping non-performing pages live for months hurts the entire domain.

Want to improve your SEO in Catalonia?

Free SEO analysis: we tell you exactly where to start.

Free analysis


Share:
E
Equip editorial Posicionament-Web

L'equip editorial de Posicionament-Web publica continguts SEO pensats per a negocis de Catalunya.

Comments

No comments yet. Be the first to comment!

Leave a comment