What this prompt does
This prompt hands the AI a full programmatic-SEO blueprint to follow rather than a vague request. You set [page_count] and [page_type], point it at a [data_source], and it returns the ten pieces you actually need to ship at scale: a URL/slug pattern, a title-tag template with dynamic variables, a content template with [section_count] unique sections, internal-linking rules, JSON-LD, thin-content guards, canonical strategy, sitemap generation, and an indexing order. It closes with sample page HTML and a data model wired to your [tech_stack].
The structure works because the failure mode of programmatic SEO is sameness — hundreds of near-duplicate pages that get filtered as thin content. By forcing the model to address "strategy to make each page genuinely unique (not just variable swapping)" alongside canonical and minimum-content thresholds, the prompt makes uniqueness a first-class requirement instead of an afterthought. Raising [section_count] pushes the model toward richer per-page templates; pointing [data_source] at something with real depth (features, pricing, ratings) gives each page genuine substance to render.
When to use it
- You are building a comparison or "alternatives" hub with hundreds of pages from a structured dataset.
- You want a slug and title-tag system designed before you write a single Blade or component template.
- You need a canonical and indexing plan so similar pages do not cannibalize each other.
- You are worried about thin-content penalties and want minimum-content thresholds baked in.
- You need a JSON-LD template that applies uniformly across the whole generated set.
- You want a data-model-to-template mapping you can hand straight to your
[tech_stack].
Example output
Expect a structured plan broken into the ten numbered sections, each concrete rather than generic: a literal slug pattern, a title template with {variable} placeholders, a sample page rendered as HTML for one example row, and a described data model (fields, types, relationships). The thin-content section reads as actual thresholds and checks, not platitudes.
Pro tips
- Set
[data_source]to something genuinely rich — a dataset with features, pricing, and ratings produces far more unique pages than a thin list of names. - Keep
[section_count]at a level you can actually populate with real data; padding sections is exactly the thin content this prompt is meant to prevent. - Start
[page_count]smaller than your end goal so you can validate uniqueness and indexing before generating the full set. - Match
[tech_stack]to what you ship — naming Laravel with Blade, for instance, gets you a data model and template that map onto a real generator rather than abstract pseudocode. - After the first run, ask the model to stress-test its own uniqueness strategy against a Google thin-content reviewer; iterate the canonical rules from there.
- Treat the indexing strategy as a sequence, not a switch — submit your highest-value pages first and watch how they index before opening the floodgates.