§ 01 · Berth · Outbound · Programmatic SEO · Pages at scale
Hundreds of pages.
Built the way that ranks —
not the way that gets ignored.
Location pages, service-area pages, comparison pages — generated from a template and a real dataset. Done badly, that’s how sites get a thin-content reputation. Done the way we do it, it’s how Tampa-first becomes Florida-wide — every page has a genuine reason to exist, real local substance, and a place in the internal-link graph.
Request the manifest · Project-based
Priced by page count & data complexity · Usually bundled with an authority-site build
Discipline · What earns a URL · What doesn’t
Standing orders for every cell.
- 01Real search demand · per rowREQ.
- 02Substantial unique value · not a swapREQ.
- 03Not a near-duplicate of siblingsREQ.
- 04Wired into the internal link graphREQ.
- 05Padding to hit a numberrefused
- 06“Every ZIP” mad-libsrefused
YOUR
URL Thin cut
From the last batch of audits
Before we scope a programmatic build, this is what the audit catches.
Four findings we surface again and again on Tampa Bay sites — each fixed inside the build. The audit names the top ten in yours, prioritized.
Keyword cannibalization
Two pages competing for the same query — common on sites that tried programmatic without checking siblings against each other.
Near-duplicate templates
Programmatic pages where the only change is the city. Google quietly de-indexes them — and devalues the rest of the site for trying. Fix: real per-page substance.
No internal link graph
200 pages with no hub-to-spoke links. Google sees orphans, not a topical cluster. Wire parent hubs down, siblings across, every spoke back up.
Schema markup gap
No LocalBusiness or Service schema per generated page. The SERP entry has no rich features. Add the right schema and click-through climbs.
§ 02 · Berth · The Fit · This is for you if…
You have a pattern. And the search demand to fill it.
You’re tired of
- Writing every location / service-area page by hand and never finishing the matrix.
- Watching competitors with 200 location pages out-rank you in towns you actually serve.
- Plugin-generated pages that Google quietly ignored — and you don’t want a second try at the same outcome.
- “Pages-at-scale” pitches that hand-wave the doorway-page rule.
Fit · 01
Earning in your home metro, ready for the next ones.
Same service, ten more cities — without writing every page by hand or hiring for it. The home metro is the proof; the matrix is the expansion. This is the canonical programmatic use case.
Expansion · Tampa → Florida → US
Fit · 02
Your service area is essentially a spreadsheet.
Lists of areas, industries, or use cases — each row a real search someone makes. Repeating pattern + real demand per row = programmatic territory.
Pattern · with substance per row
Fit · 03
Competitors out-rank you with 200 location pages.
You see it in the SERPs — and suspect you could do it better, not just bigger. The “better” is the part we’re disciplined about.
Competitive pressure · with quality discipline
Fit · 04
Tried this once with a plugin. Don’t want to make that mistake twice.
300 near-identical pages, Google quietly ignored. That outcome was the template’s fault, not the technique’s. If that’s where you are, you’re our buyer. The question isn’t whether to do it — it’s whether each page will earn its place, and that’s the part we’re strict about.
Recovery · learnt the hard way
§ 03 · Berth · The Position · Programmatic ≠ thin
Programmatic SEO isn’t black hat.
Thin content is. Those aren’t the same thing.
“Programmatic SEO” has a bad name because most of it is 400 pages where the only thing that changes is the city in the H1. Google figured that pattern out years ago. It doesn’t penalize the method — it penalizes the result: pages with nothing on them.
So the discipline is simple to state and annoying to enforce: a page only gets made if it would be useful to the person searching for it. That means some rows in your spreadsheet don’t get pages. It means some page types we’ll argue you out of. The template has to carry real, variable substance — and if it can’t, we redesign it or drop it. We’d rather ship 120 pages that rank than 400 that get ignored and drag the rest of the site down with them.
This is also why programmatic SEO usually rides on top of an authority site rather than standing alone — the cluster gives the location pages something to link to and a topical context to sit in. Pages-at-scale works best as breadth on top of depth, not instead of it.
§ 04 · Berth · The Method · How it works
Four steps. The hard part is steps one and four.
Anyone can mail-merge a template. The work that makes it rank is upstream (is this page worth making?) and downstream (will Google index and trust it?) — the full method is in our guide, programmatic SEO, the right way to build pages at scale.
Demand & substance check
Per row · before any HTML
- Each row gets a search-demand check — no demand, no page
- Each page type gets a substance test — generic ≠ specific
- If a page type can’t carry substance, we redesign or cut it
The gate before any generating starts
Template & data model
Block-pattern template · clean schema
- Block-pattern template in your existing theme — same brand system
- Clean data schema · sane defaults · thin row produces respectable page
- Per-page variation built in — different proof, FAQs, supporting content
No generic “location page” plugin look
Page generation & internal linking
Wired into the cluster · no orphans
- Pages generated, reviewed in batches
- Hub-to-spoke + sibling-to-sibling + spoke-to-hub internal links
- Schema per page · LocalBusiness · Service · FAQPage
Titles, metas, breadcrumbs templated — never duplicated
Indexation & quality control
Stage rollout · monitor · prune
- Sitemap strategy · not “submit 400 and pray”
- Stage rollout · watch what Google indexes & ranks
- noindex the thin · canonical the duplicates · 60-day check-in
You get the playbook for the next batch
§ 05 · Berth · The Haul · Patterns we ship · Patterns we refuse
Patterns we’ve shipped — and the ones we’ve turned down.
The first three are where programmatic genuinely works for service businesses. The fourth is the pattern that gives the technique its bad name — and we refuse it on principle.
Service-area pages
/web-design/st-petersburg/ · /web-design/clearwater/
- One page per metro you actually serve
- Real local substance · businesses · market · response area · case
- This is exactly how this site expands from Tampa across Florida
Canonical local programmatic play
Vertical landing matrix
/industries/hvac/tampa/ · /industries/roofing/clearwater/
- Several industries × several metros · each cell has distinct pain & proof
- Cross-product is real pages where there’s something to say
- Empty cells link to parents · don’t get a URL
The matrix that’s actually real
“X vs Y” / “alternative to Z”
“in-house vs agency” · “[competitor] alternative”
- High commercial intent · clear job to do
- Genuinely different content per page · real POV
- Not for name-dropping competitors for traffic
When the comparison is real
“Every ZIP code we touch”
600 near-identical “[ZIP] [service]” pages
- The exact pattern that earns thin-content reputation
- The lazy mad-lib — refused on principle
- We’ll show demand data · recommend the 30 real metros instead
Quality demand discipline · not a number-chase
§ 07 · Berth · Marginalia · Before you scope it
The questions people actually ask.
FAQ · 01
Will Google penalize me for hundreds of generated pages?
Google doesn’t penalize generated pages — it ignores (and at scale, devalues a site for) thin pages. The distinction is the whole job: every page we ship has real, variable substance and a genuine search behind it. If a page type can’t clear that bar, we redesign the template or cut it. Done this way, it’s the same thing every large local site that ranks is doing.
The black-hat question · settled
FAQ · 02
How much does it cost?
Project-based, priced on two things: how many pages survive the demand-and-substance check, and how complex the data model is. Most often bundled into an authority-site build (Flagship tier includes a programmatic layer). Tell us the pattern and the rough count — we’ll give you a real number, no “starting at” games.
Pricing · honest scope · per project
FAQ · 03
Do I need data, or can you build it?
Either. Got a spreadsheet of service areas / industries / use cases? Great — we’ll clean it and model it. Don’t have one? We’ll build the dataset (metros, demand figures, local detail) as part of the project. Going forward, you maintain the data; the template does the rest.
Data ownership · you keep it
FAQ · 04
Can I keep adding pages myself afterward?
Yes — that’s the point of building it on a block-pattern template with a clean data schema. Add a row, the page exists. The care plan can run the rollouts for you if you’d rather not, but you’re never locked out of your own machine.
Self-service add-ons · no licensing lock
FAQ · 05
How is this different from just having an authority site?
An authority site goes deep on one metro and topic — pillars and supporting pages. Programmatic SEO goes wide — the same offering across many metros, industries, or use cases. Depth ranks you where you are; breadth ranks you everywhere you operate. Most businesses want depth first and breadth second, which is why this usually rides on top of a cluster rather than replacing one.
Depth vs. breadth · stack both
Berth · 08
Tampa-first. Then everywhere you actually operate.
Tell us the pattern — metros, industries, comparisons — and the rough count. We’ll send back the demand read, how many pages would really be worth building, and what it would cost. No call required, no follow-up sequence.
- Demand & substance check before any quote
- Block-pattern template in your existing theme
- Schema + sitemap + internal-link graph wired in
- Indexation staged · monitored · pruned
- Bundled with authority sites · or as a scoped add-on
Tampa, FL · Also working in: Orlando · Jacksonville · Miami · St. Petersburg
§ 09 · Berth · Send it over · Scope the project
Send the pattern. We’ll send the demand read by return email.
URL, the pattern you’d want to scale (metros / industries / use cases), the rough count, and what’s bugging you. A senior person reads it and replies within a business day with what’s actually worth building.
We confirm receipt within one business day · often same day