seo-factory
50K-page programmatic SEO sites generated by local Qwen — cloud-LLM equivalent would cost $5-15K, ours is electricity.
Launch kit
seo-factory — launch kit
1-liner
50K-page programmatic SEO sites generated by local Qwen — cloud-LLM equivalent would cost $5-15K, ours is electricity.
Tweet hook
50,000 SEO landing pages.
Cloud LLM cost: $7,400. Local Qwen cost: ~$8 in electricity.
Same content quality. Site live in 4 days.
Architecture below 🧵
- r/SEO: "50K-page programmatic-SEO factory in Python — open code"
- r/IndieHackers: "Built a niche calculator+content site, 18 months to $4k/mo. Here's the engine."
- r/juststart: "Free engine for spinning up programmatic-SEO niches."
Cold-email ICP
- Affiliate marketers running 1-10 sites
- Local SEO agencies with $5K-50K/mo retainers
- Niche-site flippers (motion, exit-prep)
Cold-email template
Subject: $0 marginal cost programmatic SEO
Hi {first} — saw {their site / niche} on {recent ranking move / mention}.
I built an engine that takes a CSV (e.g., every ZIP × every drug, or
every car model × every state) and emits 50K Markdown pages with
internal links + sitemaps via local Qwen. $0 per page.
The customer (you / your client) gets a 50K-page site shippable to
Cloudflare Pages in a weekend. Affiliate + display ads pay the rest.
DIY: free, MIT-licensed.
DFY: $500-5000 per niche site.
Want to walk through one of your stalled niches as a test?
SEO content angles
- "Programmatic SEO is back in 2026 — what changed"
- "How to avoid Google's helpful-content update kill on programmatic sites"
- "Cloudflare Pages + Astro + 50K pages: the full deploy stack"
- "Internal linking at 50K-page scale (with code)"
- "Niche selection: 10 untouched programmatic-SEO opportunities"
Documentation
seo-factory
Programmatic-SEO content factory. Generate 50K+ long-tail pages from a seed CSV using local Qwen, ship as a static Astro/Hugo/Eleventy site, rank on Google's long tail, monetize with display ads + affiliate links.
Why this works as a passive-income play
- Local Qwen = $0 marginal token cost. Cloud Claude/GPT would cost $5K+ to generate 50K pages. Qwen on your hardware = electricity.
- Static site = $0 hosting (Cloudflare Pages, Netlify, Vercel free tier).
- Long-tail SEO rewards comprehensive coverage. 50K pages each ranking for 1-3 micro-queries = millions of monthly impressions.
- Internal link graph is auto-generated, fixing the orphan-page problem that kills most programmatic-SEO sites.
- Repeatable — once one niche works, scale horizontally.
Niches that work
| Niche format | Seed columns | Pages |
|---|---|---|
| "Best {product} for {persona}" | product × persona | 1K-50K |
| "{Profession} in {city}" | profession × city | 50K-500K |
| "{Drug} side effects in {age group}" | drug × demo | 50K |
| "How to {task} in {tool}" | task × tool | 5K |
| "{Recipe} {variant}" | recipe × variant | 10K |
| "{Job title} salary in {city}" | role × city | 100K |
Pricing models
- DIY (operator-as-owner): $0/mo. You operate it, you keep ad revenue.
- Done-for-you build: $500-5000 one-time per niche site.
- Revenue split: 50/50 with the site owner. Better for low-trust first deals.
- SaaS interface (v0.2+): Customers paste a niche idea, we generate the site. $99 per 1K pages, $499 per 5K pages, $2999 per 50K pages.
How to use it
1. Initialize a niche
cd C:\openclaw-products\seo-factory
seofactory init niches/best-laptop-for-x
This creates:
niches/best-laptop-for-x/
factory.yaml ← niche config (sections, prompts, templates)
seed.csv ← rows of (primary, modifier, year)
page.md.j2 ← Markdown+Jinja2 page template
out/ ← generated .md pages land here
2. Edit the seed + prompts
Replace seed.csv with your real seed data. Open factory.yaml and tune
the per-section prompts.
3. Smoke test (10 pages)
seofactory build niches/best-laptop-for-x/factory.yaml --limit 10
Check the output. Rewrite prompts if quality is off.
4. Generate at scale
seofactory build niches/best-laptop-for-x/factory.yaml
50K pages on a Qwen 30B running locally takes 8-16 hours.
5. Add internal links
seofactory link niches/best-laptop-for-x --field modifier --per-page 5
Every page now links to 5 sibling pages sharing the same modifier.
6. Generate sitemaps
seofactory sitemap niches/best-laptop-for-x --base-url https://yoursite.com
7. Ship to a static-site generator
The out/ folder contains valid Astro/Hugo/Eleventy content. Drop into
your site's src/content/ and deploy.
Quality safeguards
The dirty secret of programmatic SEO is that 80% of generated content is generic enough that Google's helpful-content updates can torch your rankings overnight. Mitigations baked in:
- Per-niche prompt tuning. Each section is a separate Qwen call with targeted constraints. You can iterate prompts cheaply.
- Pull facts from the seed CSV. The prompt fills row data, so the generated content is anchored to real attributes (not pure imagination).
- No infinite tail expansion. If you find a sub-niche works, double down on those rows; if not, drop them.
Test
pytest tests/ -v
Roadmap
- Astro starter site embedded (so customers don't need their own)
- One-click deploy to Cloudflare Pages
- Affiliate-link injection (Amazon Associates, Skimlinks)
- Mediavine/AdThrive ad-slot template
- PageSpeed budget enforcement
- Anti-spam guard (max 2 outbound affiliate links per page)
- SaaS dashboard for non-technical buyers