Why prompting SEO pages from a blank repo still burns evenings
Before JSON was the source of truth on nextbento.dev, I tried the obvious prompt: “add twenty comparison pages.” I got routes before lunch. I also got three slugs chasing the same phrase, prices I could not point at, and H2s that only swapped a brand name.
That is the SEO twin of prompting auth and Stripe from a blank repo. The villain is starting the generator from zero every time. Why tags and a blog are the wrong substitute is SEO tags are not a comparison-page factory. This post is the loop.
What the first prompt actually gives you
A typical first pass looks complete:
/compare/acmeand/compare/globex- An H1 that swaps the competitor name
- A table with three checkmarks
- An FAQ that asks “which is better?”
Then you try to use it. Two slugs target the same phrase. Prices are a year old, or invented. Every page opens with the same three headings. There is no last-verified date. Schema is missing, or it is Article on a page that should carry visible Q&A. The sitemap lists drafts you were about to delete.
Google's guidance on generative AI content is blunt: using those tools to generate many pages without adding value can violate scaled content abuse. The policy does not care whether you typed the duplicates or the model did.
Each of those gaps is a follow-up prompt. Each follow-up rewrites a file you already “finished.” Evenings disappear in that loop, not in writing the product.
The parts that do not survive a one-shot scaffold
Intent is a system. One URL owns “ShipFast alternative.” Another owns “NextBento vs ShipFast.” A blog post owns the long-form argument. If all three chase the shortlist query, you cannibalize yourself. The map we use is keyword ownership. I wrote it after the first scaffold duplicated titles. The agent will not invent that map unless you already have one.
Proof is a system. Competitor prices rotate. If you cannot point at a vendor page and a date, do not present the number as a fact. NextBento comparison JSON carries dateModified and an evidence section for that reason. A prompt that says “make it comprehensive” fills gaps with guesses.
Uniqueness is a system. Shared layout is fine. Shared body is not. Twenty pages that only change the brand name are one thin page. Searchers bounce. You still paid the model for the duplicates.
Hygiene is a system. Canonicals, breadcrumbs, visible FAQs, internal links to pricing and docs. None of that is the first route the agent writes. It is the week after, when Search Console has impressions and no clicks.
Aggarwal et al. tested this class of problem at scale in GEO (KDD 2024): 10,000 queries. Adding citations, quotations, and statistics lifted visibility up to about 40% in their setup. Keyword stuffing did not. A one-shot vs-page farm is stuffing with extra steps.
Do not ask the model for city pages because a pSEO thread told you to. Local intent for most SaaS is close to zero. You will rank for nothing and look like spam.
When a blank repo is still the right call
Use a blank repo if the product is an SEO experiment, or you already have a factory you will not leave. A kit that fights your CMS is slower than prompts you already know how to steer.
Google's people-first checklist asks whether the content shows first-hand expertise: actually using the product, not summarizing a SERP. That is the bar. Do not use a blank repo because the agent “should be able to write content.” It can generate the shape. You still spend the weekend making the shape survive a real query.
What to clone instead of re-explaining
If you are an indie hacker shipping a Next.js SaaS, start from a repo that already has compare / integration / glossary templates, then fill JSON for your market. The agent extends the factory. It does not invent a second one.
What actually works on this origin: 20 JSON pages, a validator that fails after 180 days of stale dateModified, and a hard rule of at least 3 FAQs per page. I did not copy those vs-pages into the kit you clone. How this marketing site does it: the pSEO JSON factory. The split is why the marketing site is a different repo.
NextBento is $59 one-time. Next.js 16, Supabase, Stripe, Resend, eight skills, JSON programmatic SEO. Get the kit. Pricing. If comparison pages are not how you get customers, you still get auth and billing. If organizations, i18n, or MongoDB are hard day-one requirements, this is not that kit.
Related
- SEO tags are not a comparison-page factory
- How this site's programmatic SEO JSON factory works
- Prompting auth and Stripe from a blank repo
- Programmatic SEO docs
- Compare
- Pricing