I've built programmatic landing pages for five different clients in the past six months. These aren't corner-cutting spam pages — they're location-specific service pages, product category pages, and keyword-targeted educational content that actually ranks and converts. The common thread: every batch was generated with Claude Code in a fraction of the time it would have taken to build them manually.
Programmatic landing pages are one of the highest-leverage uses of AI I've found for SEO. You feed Claude Code a spreadsheet of keywords and supporting data, and it outputs hundreds of pages that are structurally identical but contextually unique. The work that used to require a dev team and weeks of timeline now takes me about three to four hours from start to deployment.
Here's exactly how I do it, the mistakes I've learned to avoid, and when this approach makes sense for a Vancouver business.
What Programmatic Landing Pages Actually Are
Before we get into the mechanics, it's worth being clear about what we're talking about. Programmatic landing pages are SEO-targeted pages generated from a template and a data source. Instead of writing 150 unique "plumber in [neighborhood]" pages by hand, you build one template and a script that fills in the neighborhood-specific details for each page.
The key difference between good programmatic pages and spam is the quality of the unique content. If the only thing that changes from page to page is the keyword, Google will recognize it as thin content and ignore it. If each page has substantive, differentiated information — local service areas, unique case studies, neighborhood-specific data — the pages can rank and drive traffic.
The best use cases I've seen in Vancouver:
- Location pages for service businesses — HVAC companies, landscapers, contractors who serve 20+ neighborhoods and need a page for each one
- Category pages for e-commerce — product listing pages organized by attribute (size, color, use case) where the structure is identical but the product set changes
- Keyword-targeted educational content — "how to" guides or comparison pages built around a list of related long-tail keywords
I've also seen this work well for directory sites and real estate listings, though those require more complex data integration. For most local businesses, location and service category pages are the place to start.
The Data Setup: What Claude Code Needs
The quality of your programmatic pages is a direct function of the quality of your data. Garbage in, garbage out. Before I write a single line of code, I build a spreadsheet with all the information each page needs to be substantive and unique.
For a recent project — a Vancouver-based home services company targeting 40 neighborhoods — the data file looked like this:
- Keyword — the primary search term (e.g., "furnace repair Kitsilano")
- Location — the neighborhood or city name
- Service — the specific service being offered
- Local detail — a unique fact about the area (median home age, common HVAC system types, local building codes)
- Case study snippet — a short real example of work done in that area
- Internal link targets — related pages to link to from this page
The local detail and case study snippet are what make the pages pass Google's quality bar. Without them, you just have keyword-swapped boilerplate. With them, each page has something worth reading that isn't duplicated elsewhere.
I export this as a CSV and feed it to Claude Code as the input file for the page generator script.
The Template: Structuring for Scale
The next step is building the HTML template. This is the skeleton that every page will inherit. I use a mix of static HTML structure and placeholder variables that Claude Code will replace with data from the CSV.
A simplified version of the template looks like this:
<!DOCTYPE html>
<html lang="en">
<head>
<title>{{service}} in {{location}} | Company Name</title>
<meta name="description" content="{{service}} in {{location}}. {{local_detail}} Call us today.">
</head>
<body>
<h1>{{service}} in {{location}}</h1>
<p>{{intro_paragraph}}</p>
<h2>Why Choose Us for {{service}} in {{location}}</h2>
<p>{{case_study_snippet}}</p>
<h2>About {{location}}</h2>
<p>{{local_detail}}</p>
</body>
</html>
Claude Code reads the CSV, loops through each row, and generates a unique HTML file by replacing the {{variables}} with the corresponding data. The intro paragraph, case study snippet, and local detail sections give each page enough unique content to avoid duplication penalties.
I also include schema markup in the template — LocalBusiness structured data with the service area and contact info — which helps with local SEO and rich results in search.
Running the Script: From CSV to 200 Pages
Once the template and data file are ready, the actual generation is straightforward. I run a Claude Code script that:
- Reads the CSV row by row
- Replaces the template variables with the data from each row
- Writes out an HTML file named after the keyword slug (e.g.,
furnace-repair-kitsilano.html) - Generates a sitemap.xml entry for each new page
For a batch of 200 pages, this takes about 8 minutes to run. The output is a folder full of SEO-ready HTML files that I upload to the client's site.
The first time I did this, I was shocked at how fast it was. What would have taken a dev team two weeks of manual work was done in an afternoon. The bottleneck isn't the page generation — it's the upfront work of gathering the unique data for each page.
The Quality Pass: Why You Still Need Human Review
I never publish programmatic pages without a human review pass. Even with good data and a solid template, there are edge cases that slip through: typos in the CSV, formatting quirks, pages where the local detail doesn't quite fit the context.
I randomly sample 10% of the generated pages and read them as if I'm a user who just landed there from Google. If the content feels thin, repetitive, or awkward, I go back and refine either the data or the template. It's a lot easier to fix the system once than to manually edit 200 individual pages.
The rule I follow: if I wouldn't want to rank for this page because it's low-quality, I don't publish it. Programmatic doesn't mean low-effort — it means leveraging automation to execute high-quality work at scale.
For most batches, the quality pass takes about 90 minutes. That's still a fraction of the time it would take to write the pages from scratch.
What You Should Not Do with Programmatic Pages
I've seen people try to shortcut this process and get burned. Here are the mistakes I've learned to avoid:
- Keyword-only variation — if the only thing that changes is the target keyword, Google will treat it as duplicate content and ignore most of the pages
- Auto-publishing without review — edge cases and formatting bugs are inevitable; publishing 300 broken pages tanks your site's credibility
- Ignoring search intent — not every keyword deserves a landing page; some are better served by blog posts or product categories
- Skipping internal linking — orphaned pages don't rank; every programmatic page needs at least 2–3 internal links from other parts of the site
The other big mistake is trying to scale too fast. Start with a batch of 20–30 pages, let them index, track performance for 30 days, and refine the approach before generating the next 200. Incremental iteration beats one massive launch.
When This Makes Sense for Your Business
Programmatic landing pages are not a fit for every business. They work best when you have:
- A clear list of target keywords with real search volume (use Ahrefs or Semrush to validate demand)
- Unique data for each keyword — location details, product specs, case studies, pricing variations
- A site architecture that can support hundreds of new pages without diluting topical authority
If you're a solo consultant with five core services, you probably don't need programmatic pages. If you're a multi-location service business competing in 30 neighborhoods, or an e-commerce brand with 500 SKUs, this is one of the fastest ways to scale your organic footprint.
I've written before about the broader programmatic SEO strategy and how I use Claude Code for SEO automation — both are worth reading if you're evaluating whether this approach fits your business model.
Getting Started
If you want to test this, start small. Pick 10–15 high-value keywords, gather the unique data for each one, and build a simple template. Run the script, review the output, and publish to a staging environment. Let Google index them and track impressions and clicks for 30 days.
If the pages perform — and if the quality holds up under scrutiny — scale to the next batch. The setup takes about a week the first time. After that, generating new batches is a matter of hours.
If you're a Vancouver business owner who wants help building this system, I walk through it with clients regularly. And if you have specific technical questions about whether your site can support this approach, the FAQ page covers most of the common edge cases.
Programmatic landing pages are one of the few SEO tactics that still scales without a proportional increase in labor cost. The question is whether you have the data to make them worth building.