Programmatic SEO architecture diagram representing the 3,949-URL Toronto SEO sitemap structure
Methodology pillar

Programmatic SEO Methodology: How We Built 3,949 Indexable URLs That Actually Rank

A walk-through of the actual playbook we run on Toronto SEO and on every client engagement — data model, templates, indexation strategy, and the 12-rule quality gate every page must pass before it ships.

14 min read
·
2,150 words
·
Updated April 25, 2026
·
By Martin Vassilev

What programmatic SEO actually is (in one paragraph)

Programmatic SEO is the practice of generating large numbers of high-quality landing pages from a structured dataset and a small number of templates, then targeting the long tail of search demand at scale. The discipline is older than people think — Yelp, TripAdvisor, Zillow, G2, and Wikipedia are all programmatic SEO sites at their core. What's new in 2026 is that LLMs have made the underlying data enrichment and per-page customization step radically cheaper, which has caused both an explosion in good programmatic SEO and a much larger explosion in bad programmatic SEO that gets deindexed.

The single failure mode that defines whether a programmatic build succeeds or fails is per-page substance. A site can have 50,000 indexed URLs and earn meaningful traffic, or 50,000 URLs and earn nothing — the variable is whether each page actually contains something a real user searching that specific query would value. Everything in this playbook exists to enforce that constraint.

Our own site as the case study: 3,949 URLs across 26 sub-sitemaps

We don't write theoretical programmatic SEO content. The site you're reading is a programmatic SEO build that runs the playbook end to end — and we publish the sitemap so you can verify it.

TorontoSEO.com sitemap snapshot — April 2026
3,949
Indexable URLs
across the public sitemap index
26
Sub-sitemaps
by intent cluster
1,338
Pages pruned
noindex / 404 / consolidated
12
Quality-gate rules
every page must pass

Live data: sitemap.xml. Pruned-pages count from our internal indexation report.

The clusters break down roughly as follows — and the cluster taxonomy itself is the playbook. Each cluster targets a different search intent, uses a different template, and is monitored separately so we can deindex underperforming clusters without losing the rest.

Sub-sitemapApprox URLsIntent cluster
sitemap-best.xml835Comparison / 'best of' intent
sitemap-canada-city-industry.xml550Local × industry intent (national)
sitemap-services.xml + service-canada-city.xml180+Service × geo intent
sitemap-legal-cities.xml96City × legal practice area
sitemap-health-cities.xml60City × healthcare practice
sitemap-glossary.xml300+Definitional / 'what is' intent
sitemap-answers.xml120+AEO / direct-answer intent
sitemap-comparisons.xml50+Vendor comparison intent
sitemap-research.xml32Original research / link bait
sitemap-static.xml80+Hand-written hub & service pages

Three of those clusters (best, canada-city-industry, legal-cities) account for roughly 1,500 of the 3,949 URLs and drive a disproportionate share of long-tail capture. Three other clusters (research, comparisons, answers) are smaller but produce most of the AEO citations and inbound links. The methodology below is what determined that mix.

The 7-step programmatic SEO playbook we run on every engagement

1. Intent map first, URLs second

Before a single page is generated we publish a written intent map: every cluster has a defined search intent, an example query, an SERP archetype, and a defended reason it will rank.

2. Source or build the dataset

Real data — public records, scraped + cleaned third-party data, our own observations, or LLM-enriched primary research. The dataset is the moat. Without it the build fails.

3. Design 1–3 templates per cluster

One template per intent type. Templates are not 'the page swapped per row' — they're the structural skeleton plus the per-entity slots that produce real differentiation.

4. Render with the quality gate

Every page passes a per-cluster quality gate before it can be added to the sitemap. Pages that fail the gate are flagged but not published — the build process refuses.

5. Layered internal linking

Hub pages link down to clusters; clusters interlink horizontally; long-tail pages link up to hubs. Three-layer architecture so PageRank actually flows.

6. Schema at every layer

Hub schema, cluster schema, per-entity schema. The schema graph is what allows Google and LLMs to disambiguate near-similar pages.

7. Per-cluster monitoring + pruning

Every cluster has a Search Console saved view. Underperforming clusters get rewritten, deindexed, or consolidated quarterly. Programmatic SEO is a living system, not a launch event.

The data model: how we structure entities for programmatic generation

The single most useful framing we've found is that every programmatic page should map to one entity in a graph. Cities, industries, services, schema types, comparison-target tools, glossary terms — each is an entity with named attributes, related entities, and stable identifiers.

On this site, the data model is roughly:

  • City entity
    Name, province, population, market characteristics, neighborhoods, top industries, GBP density, our written market commentary.
  • Industry entity
    Name, search-volume signal, key sub-segments, regulatory notes, distinctive SEO challenges, named tactics that work.
  • Service entity
    Name, scope of work, deliverables, pricing band, ideal-client archetype, related services.
  • Schema-type entity
    Name, schema.org URL, recommended properties, common implementation mistakes, validator behavior.
  • Glossary-term entity
    Term, plain-English definition, technical definition, related terms, named examples.
  • Comparison-target entity (tools/agencies)
    Name, category, named strengths, named gaps, pricing posture, ideal use case, our verdict.

A page like /canada/toronto/seo-for-dental-practices is the join of three entities: City × Industry × Service. Each contributes its own attributes to the rendered page. Because each entity carries genuinely distinct content, the joined page is genuinely distinct — which is the whole quality bar.

Templates: the difference between thin and durable

The most common programmatic SEO mistake we see in audits is treating templates as Mad Libs — one paragraph of body copy with three nouns swapped per page. That pattern produces tens of thousands of near-duplicate pages and gets the entire cluster deindexed by Google's site-quality systems within two to three quarters.

A durable template is a structural skeleton with per-entity slots that produce real, asymmetric differentiation between pages. The skeleton is shared. The content under each H2 is genuinely different per entity because it pulls from genuinely different per-entity attributes.

A 200-page programmatic site of dense per-entity content beats a 5,000-page site of swap-the-variable boilerplate every time. Page count is a vanity metric. Per-page substance is the only metric that matters.

— Martin Vassilev, Founder, Toronto SEO

The test we apply to every template before it ships: print two random rendered pages side by side. If a senior SEO can't tell within five seconds why each page deserves to exist independently, the template fails and gets rewritten. Most of the templated 'SEO content' shipped in 2024 and 2025 fails this test trivially.

Indexation strategy: why most programmatic sites get pruned

Google does not index every URL it discovers. On a 50,000-page programmatic site, indexation rates of 30–60% are common, and the unindexed pages are usually the lowest-quality cluster. The mistake is treating low indexation as a crawler problem; it's nearly always a quality-signal problem.

Our default indexation strategy on every programmatic engagement:

  • Index every page that can defend itself
    Pages that pass the quality gate ship indexable, in the sitemap, with a self-canonical.
  • Noindex (don't 404) borderline pages
    Cluster pages that exist for completeness but don't yet have substance — noindex,follow with a planned content upgrade. Removes them from quality assessment without dropping internal-link equity.
  • 404 obvious zero-value pages
    Pages whose existence is harder to defend than not — 404 with a 410 if the URL has been seen by Google. The sitemap-pruned count on this site is 1,338. Most are deliberate.
  • Quarterly consolidation review
    Cannibalization audit per cluster. Two pages competing for the same query get consolidated to the stronger URL with a 301.
  • Search Console saved views per cluster
    Indexation, impressions, CTR, average position — tracked separately for each programmatic cluster so deteriorating clusters get found in week one, not quarter four.

The asymmetric trade is this: removing a weak page is nearly always a net win for the cluster's overall ranking. A small reduction in 'reach' is dramatically outweighed by the quality-signal lift to the surviving pages. Most agencies don't do this because it's psychologically uncomfortable to delete pages they billed for. We do it because it's how programmatic SEO actually works.

The quality gate: 12 rules every programmatic page must pass

A programmatic page can ship to the production sitemap on this site only if it passes every rule below. Pages that fail are flagged in the build output and either rewritten or held back. This list is roughly the most useful artifact this guide will produce for you — copy it, adapt it, enforce it in CI.

  • 1. Unique H1 derived from real entity attributes
    Not 'SEO for {city}' but a specific noun phrase that exists nowhere else on the site.
  • 2. Self-canonical with a stable, lowercased URL
    No trailing-slash inconsistency, no UTM in canonical, no parameterized variants competing.
  • 3. ≥ 700 words of unique-per-page content
    Not 700 words of swapped boilerplate — 700 words drawn from genuinely per-entity data.
  • 4. ≥ 3 entity-specific data points above the fold
    Local market data, named competitors, regulatory notes — visible in the first viewport.
  • 5. Hub up-link + ≥ 5 sibling links
    Internal linking that survives Google's render. No JavaScript-only links to programmatic pages.
  • 6. JSON-LD schema appropriate to the page type
    LocalBusiness, Service, Product, ItemList, FAQPage — whichever fits. Validated, no errors.
  • 7. Image with descriptive alt + width/height
    No layout shift, no decorative-only stock photos.
  • 8. Title + meta description specific to the entity
    Not duplicated against any other URL on the site, length within bounds.
  • 9. ≥ 1 outbound citation to an authoritative source
    Government data, industry body, primary research. Citations earn citations.
  • 10. Page passes Core Web Vitals on the production template
    LCP < 2.5s, CLS < 0.1, INP < 200ms. Tested on the actual template before scaling.
  • 11. Last-updated date present and honest
    Either the dateModified is real or the page is being misrepresented. Lying about freshness is detected.
  • 12. Defensible reason to exist, in writing
    Each cluster has a one-paragraph rationale. If we can't write the rationale, we don't ship the cluster.

Anti-patterns we refuse to ship

The programmatic SEO patterns below produce short-term traffic spikes and predictable medium-term collapses. We've audited dozens of post-collapse sites and the failure modes are remarkably consistent.

City-only swap

One page template with the city name token-replaced. Identical content otherwise. Highest deindex rate in our audits.

Pure LLM-generated boilerplate

Pages generated entirely by LLM with no per-entity data or human review. Detection rate is rising fast and the failure is binary.

Sitemap stuffing without internal links

10,000 URLs in the sitemap, no hub pages link to them. Crawled, ignored, eventually dropped.

Schema cargo-culting

Schema copy-pasted from a generator with required fields wrong. Validator passes; Google's quality systems penalize.

Fake review or testimonial schema

AggregateRating with no real reviews. Fastest-acting manual penalty we've seen. Don't.

Auto-translation as 'localization'

Single-pass machine-translated pages without human review. Both Google and users detect the seams immediately.

Measuring success: the four metrics that matter

A programmatic SEO build produces a lot of dashboards. Most of them are vanity. The four metrics we report on monthly for every programmatic engagement:

MetricWhat it measuresHealthy band
Indexed-URL ratioIndexed URLs / submitted URLs in Search Console≥ 70% for high-quality builds
Cluster-level CTRAvg CTR by cluster, not site-wide≥ 2.0% per cluster, with outliers investigated
Avg position trendRolling 90-day average position per clusterTrending down (toward 1) quarter over quarter
Earned citations / monthExternal links + LLM citations to programmatic pagesCompounding, not flat

If the indexed-URL ratio is below 50%, the cluster needs pruning. If cluster-level CTR is below 1%, the title and meta need rewriting. If average position is flat, the templates need depth, not the dataset more rows. The trap most operators fall into is responding to soft metrics by adding pages; the actual fix is almost always to deepen the existing pages.

The honest summary

Programmatic SEO done well is one of the highest-leverage tactics in modern SEO. Done badly it's the fastest path to a deindexation event we know of. The difference is per-page substance, enforced by a quality gate and a willingness to prune. The site you're reading runs the playbook end to end — 3,949 URLs in production, 1,338 deliberately pruned along the way, the entire cluster taxonomy public.

If you're considering commissioning a programmatic build, bring your dataset and your intent map. We'll review the architecture honestly and tell you whether programmatic is the right tool for your situation, before you invest in tens of thousands of URLs you'll spend the next year deleting.

Frequently Asked Questions

The questions Canadian operators ask most often about programmatic SEO before deciding whether to commission a build.

Programmatic SEO engagement

Considering a programmatic build?

Bring your data and your intent map. We'll run a 30-minute architecture review and tell you honestly whether programmatic SEO is the right tool for your situation.