# Programmatic pages with thin-content gates

> Make generated pages worth indexing, and keep thin ones out of the index and the sitemap.

Canonical: https://abacklaunch.com/prompts/programmatic-pages
Last updated: 2026-10-26

Version 1.0.

Pages generated from data on the production site (categories, tags, locations, integrations, comparisons) can bring a lot of search traffic, or get the site judged as thin and low quality. Make sure each generated page earns its place: unique content, a minimum number of items, and thin pages kept out of the index and the sitemap.

Site: not given. Find the production URL in the project config, or ask me.

## Ground rules

1. Read before you write. Explore the parts of the codebase this job touches and tell me what is already in place.
2. Plan, then stop. Give me a numbered plan: what you will change, in which files, and why. Wait for my approval before editing anything.
3. Fix things at their source (the shared layout, the config, the generator), not with one-off patches page by page.
4. Keep the project's conventions: its framework APIs, file layout, naming and code style. Add no new dependency without asking.
5. Where something is already done well, say so and leave it alone.

## You will not

- Edit `.env` files, secrets or API keys, or print their values.
- Deploy, push, merge or publish anything.
- Delete data, or run migrations or scripts against a production database.
- Add tracking, third-party scripts or links to any site I did not ask for.
- Change copy, design or behaviour that this job does not need.
- Generate filler text to pad pages.
- Delete pages that get traffic without a redirect.

## Your stack

- Framework: Work out the framework, router and build output from the project files (package.json, lockfiles, framework config) before planning, and say which you found.
- Host: Work out where the site is hosted from the config files (vercel.json, netlify.toml, wrangler config, Dockerfile, fly.toml) and say which you found.

## Steps

### 1. Inventory the templates

List every route that generates pages from data, how many pages each produces, and how many have very few items (zero, one, two). Note pages that differ only by a word in the title.

### 2. Gate thin pages

Pick a minimum per template (for example three items) below which a page is `noindex, follow` and left out of the sitemap, while still working for visitors who reach it. Apply the same rule in the page's metadata and the sitemap generator, from one shared function.

### 3. Make each page unique

Give every indexable page content beyond the list: an intro written from the data (counts, what the items have in common), a short FAQ from real facts, and useful sorting. Never pad with filler text or spun copy.

### 4. Link and canonicalise

Link generated pages from hubs and related pages, merge near-duplicates (singular and plural tags, aliases) with redirects or canonicals, and give each its own title and description from its data.

## Done means

- [ ] Every generating template is listed with its page counts.
- [ ] Pages below the minimum are noindex and out of the sitemap, from one shared rule.
- [ ] Indexable pages have unique, data-based content beyond the list.
- [ ] Near-duplicate pages are merged, and generated pages are linked from hubs.

## Report back

When you finish, give me:

- what you changed, file by file;
- anything you skipped, and why;
- anything I must do by hand (DNS records, dashboards, accounts, deploys);
- how to check each change on the live site.

## Related

- [A sitemap that stays correct, plus IndexNow](https://abacklaunch.com/prompts/sitemap-and-indexnow)
- [Internal linking audit and fix](https://abacklaunch.com/prompts/internal-linking)
- [Titles, descriptions and canonicals, fixed at the source](https://abacklaunch.com/prompts/titles-descriptions-canonicals)
