WB × The Multiplier / AI in the studio

Case study

Programmatic SEO Without the Garbage: The Editorial Quality Gate Behind The Outpost

Ninety-two pages, fifteen writer agents, two reviews per page, and a build that fails on purpose. What the pipeline caught before Google could.

By Weston BeckwithUpdated 9 min read

A rack of identical printing plates in a dark press room, one lit teal.
Illustration for WBX Creative

Programmatic SEO is not against Google's rules. Programmatic garbage is. The Outpost, a programmatic SEO publication WBX Creative built for Power Lodge Florida, went to production on September 17, 2026 with a plan of 92 pages, and as of September 22 every one of them carries two recorded quality-control passes, a fact-check and an editorial read, and has passed a 10-check build gate that has no bypass flag. Nothing reached the live site as a draft.

That pipeline is the case study. Google's John Mueller said in July 2023 that "programmatic SEO is often a fancy banner for spam," and the deindexings since then back him up. The way to not be that is not a better prompt. It is an editorial process that a machine enforces.

Context

Power Lodge Florida is a powersports and marine dealership in Bonita Springs. Its main site runs on DX1, a dealer platform the dealership cannot restructure, so the brief was an editorial and live-inventory site beside it: reviews, buyer's guides, Florida law explainers, and local riding and boating guides, each linking out to the dealer's listings. Astro 7, MDX content collections, Tailwind 4, Cloudflare Pages deployed from GitHub Actions. Staging went live on September 2, 2026.

The risk was obvious. Ninety-plus pages about vehicles nobody at the studio had ridden, drafted by agents, on a domain with no history, in a category Google has been pruning since the March 2024 spam update. Tailride lost roughly 50,000 AI long-tail pages to an algorithmic deindexing and recovered only after cutting them; the July 2025 Search Engine Journal write-up sums it up as "Less pages + more quality." NationalToday.com took a manual action in April 2026 with, per Glenn Gabe's analysis, more than 850,000 AI-generated local-news URLs indexed, and its ChatGPT citations collapsed with it.

Google's wording, from the spam policies as updated August 28, 2026: scaled content abuse is "when many pages are generated for the primary purpose of manipulating search rankings and not helping users," and it counts "no matter how it's created."

So the design question was never whether to use agents. It was how to make every page pass the test a quality rater would apply, with a person accountable and a machine refusing to deploy anything unchecked.

How does the pipeline work?

Seven parts, in the order the work happens.

1. Research packs before any prose. Three hall packs (boats, off-road, motorcycles), three model packs, a Florida legal pack, and a dated brand and inventory matrix. Every fact carries a URL and an access date. Anything not confirmed on a primary page is marked UNVERIFIED, and the writer's local checker treats that word as a placeholder and fails the file. Writers do not research. They write from the pack and cite it.

2. A machine-readable plan. content-ops/plan.mjs renders to plan.json: 92 pieces, each with a permanent slug, final URL, type, halls, brands, model needles matched against live inventory, title, angle, and related slugs, in 15 writer clusters with one background agent each. The checker and the gate both read the plan, so every in-body link resolves to a planned URL or fails.

3. A writer brief with non-negotiables. Only the brands the dealer sells get titles and recommendations. Nothing invented. No first-hand ride claims: a review renders a methodology note automatically, and the checker greps for "we rode," "threw a leg over," and their relatives. Every price is labeled by model year. Trademarks are spelled per owner, and the generic term is personal watercraft. Recalls are never "none," always "none found in the registry as of September 2026" with the registry named. Status stays draft, and writers never add QC entries.

4. Draft by default, enforced by the schema. The content collection's Zod schema defaults status to draft. Production builds exclude drafts; staging renders them under a banner. The schema refuses status: approved unless the qc list holds a passing fact-check entry and a passing editorial entry, so a build cannot complete with an unreviewed page marked live.

5. Two independent QC passes, recorded in frontmatter. Each pass is a separate agent that did not write the page. The fact-check pass traces every claim: Florida law to FWC, FLHSMV, or the statute; specs and MSRP to the OEM page; prices and stock to the dated snapshot. The editorial pass reads for trademarks, off-brand picks, invented experience, thin or duplicative sections, answer-first structure, and working links. Each records stage, by, date, verdict, and notes on what was fixed or cut. One script, qc-status.mjs, is the only thing that flips a page to approved, and only when both stages passed and nothing failed.

On September 2 I wrote down the rule that replaced me as the bottleneck: I did not have time to review every page, so two recorded passes by reviewers who did not write it, plus a person who can revert any page to draft, is the honest version of oversight at this scale.

6. A 10-check gate over the built site. After astro build, gate.mjs parses every HTML file in dist/ and checks: thin pages against a per-template minimum (400 words for a guide); near-duplicates by term-frequency cosine above 0.85 within a template; placeholders; orphans and anything more than three clicks from home; broken links, images, and alt text; title, description, canonical, and og:image with no duplicate titles; JSON-LD that parses, carries the dealer node and an Article on guides, and has no Product or Offer markup; an inventory snapshot under 48 hours old; draft leakage; and robots inverted for the environment, since staging must noindex everything and production must not. On staging it reports everything and fails only on structural problems. In production any failure exits 1, and there is no flag to override it.

7. Schema and inventory rules. The organization node is a MotorcycleDealer. Articles carry a Person or Organization author. There is no Product or Offer JSON-LD anywhere, because Google disallows it on pages that link out to buy and the vehicle rich results were retired in 2025. There are no unit detail pages; the dealer's platform is canonical, and inventory modules link out with UTMs. A hub page needs at least three units in stock to exist.

Deploy is one workflow: npm ci, mirror the unit photos, build, gate, wrangler pages deploy. The Cloudflare account, GA4, and Search Console belong to the dealership; WBX operates them as a member. A client's asset should never live in a vendor's account.

What changed?

StageCount, as of September 22, 2026
Pieces in the plan92: one already published, two existing stubs of 360 and 293 words expanded in place, 89 new
Writer clusters15, one agent each
QC entries recorded in frontmatter187 across 92 guides
Guides approved92 of 92; drafts in production: 0
Gate checks10; production fails on any
Staging liveSeptember 2, 2026
Production launchSeptember 17, 2026

The counts are the easy part. What the passes caught is the argument for having them, and the qc ledger records it page by page:

What was caughtPassWhat happened
A review quoted suspension travel for a trim whose OEM page and dealer sheet publish no travel figure; the numbers belonged to a sibling trimFact-checkCut from the spec table, body, and FAQ
"580cc minus 420cc is 137cc"Fact-checkCorrected to 160cc
A one-year factory warranty for a CFMOTO modelFact-checkRemoved; the OEM site blocked every fetch, so the page declines to quote a term rather than assert one
A claim that 310 hp was the highest output on the floorFact-checkCorrected; the Sea-Doo GTX Limited 325s on the same floor make 325 hp
Six passages lifted near-verbatim from two sibling pagesEditorialVaried on the newer page
British spellings in six of eight files in one waveEditorialAmericanized, and a US-spelling rule was added to the brief

None of those would have registered to a casual reader. All of them are what a quality rater is told to look for, and what an unreviewed pipeline ships by the hundred.

What would I do differently?

  • A canonical-passage rule from day one. Early pages converged on a house formula: the same battery-tender line, the same chain-clock line, the same heat-between-your-knees joke across pages. The near-duplicate check is a warning by design, because two reviews of similar machines should share vocabulary, so the editorial pass caught this by hand. The brief now assigns each recurring insight to one page and tells the others to link to it.
  • Concurrency in CI on the first day. On September 4, three overlapping CI runs finished out of order and Cloudflare Pages made the oldest commit the production deployment, because Pages serves the most recently created deployment, not the newest commit. The workflow now uses a concurrency group that queues runs instead of cancelling them.
  • Stop expecting anything from FAQ markup. Every Outpost page emits FAQPage schema. Google's Search Central changelog put a deprecation notice on the FAQ rich result documentation on May 8, 2026, and removed the documentation on June 15, 2026 with the note that the feature "is no longer shown in Google Search results." The questions still serve readers. The markup earns nothing.

Stack

Astro ^7.2.10 (7.3.4 current as of September 22, 2026), @astrojs/mdx 8, MDX collections with a Zod schema, Tailwind 4, sharp plus satori and resvg for images and Open Graph cards, no SSR adapter, node-html-parser in the gate (since ported to this site), Cloudflare Pages deployed by wrangler from GitHub Actions on Node 22, Python service-account scripts for GA4, Tag Manager, and Search Console, an IndexNow script, fal.ai for the gpt-image-2 illustrations, and Claude Code agents as writers and reviewers. The Astro versus Next.js comparison covers why this site is not on the same stack, and the AI content checklist is the shorter, general version of the rules above.

If you are planning a content property at this scale, the pipeline is the deliverable. The technical services page is where a build like this starts, and consulting is the right door if you already have the pages and need the gate.

Planning pages at scale?

Tell me the topic and the count. I will tell you what the review process has to look like before any of them are written.

Start a conversation

Questions people ask

Is programmatic SEO against Google's guidelines?
No. Google's spam policy targets scaled content abuse: many pages generated "for the primary purpose of manipulating search rankings and not helping users," however they are made. A template is fine. A template filled with unoriginal, unchecked text at scale is what gets deindexed. The Outpost's defense is that every page is fact-checked, edited, and gated before production sees it.
What is an editorial quality gate?
Two things working together. An editorial rule that every machine-drafted page is a draft until two independent reviewers, a fact-checker and an editor, record a pass in its frontmatter. And a build script that parses every finished page and fails the production deploy on thin text, near-duplicates, placeholders, orphans, broken links, missing metadata, bad schema, or a leaked draft.
How many pages did The Outpost launch with?
The plan holds 92 pieces, 91 of them written or expanded for the launch by 15 writer agents in clusters. Staging went live on September 2, 2026, and production launched on September 17, 2026. As of September 22, 2026, all 92 guides carry both QC passes in their frontmatter and are approved.
Does Google penalize AI-written pages?
Not for being AI-written. Google's Search Quality Rater Guidelines, current as of September 11, 2025, say "the use of Generative AI tools alone does not determine the level of effort or Page Quality rating," and in the same section rate content that is AI generated "with little to no effort, little to no originality, and little to no added value" as Lowest. Effort and originality are what is judged.
How do you keep 92 generated pages from reading like copies of each other?
Three layers. Each page has a specific angle in the plan and its own research slice. The build gate computes a term-frequency cosine between pages of the same template and flags anything above 0.85. And the editorial pass reads for lifted passages by hand; on The Outpost it varied lines that had converged on a house formula across several pages.

Sources

Keep reading