☀️ Summer Sale: 50% Off on Yearly Plans
hrs
min
sec
Back to Blog

AI Programmatic SEO in 2026: The Template-With-Variables Method Behind a 29K-Visit SaaS Site (Case Study)

10 hours ago • 16 mins read
Vasco Monteiro
Vasco Monteiro
AI Programmatic SEO in 2026: The Template-With-Variables Method Behind a 29K-Visit SaaS Site (Case Study)

Disclosure first: the site in this case study is an Arvow customer, and Arvow is my company. Everything below is read off the screens I show in the video, recorded in July 2026, plus a re-check I did in October 2026 before publishing. The re-check turned up something the video could not know; it gets its own section near the end.

The short version: an AI-receptionist SaaS was pulling roughly 29,000 organic visits a month from about 8,400 keywords, mostly from a programmatic section built from one template and a handful of variables, written by AI so that each page changed around the variable instead of just swapping it in. That is the whole difference between programmatic SEO that works in 2026 and the find-and-replace version that stopped working years ago.

The scoreboard, as Ahrefs showed it on 6 July 2026

Here is the site's Ahrefs overview, filtered to changes over the previous six months. Organic traffic sat at 29K, up 20.8K in six months. Organic keywords were 8.4K, up 3.6K, with 2.5K of them in the top three. Domain rating was 61, up 6. The backlink column is the one to pause on: 62.4K backlinks, up 53.7K in six months, from 4.3K referring domains, up 3.3K. I come back to that in step three.

Ahrefs Site Explorer overview, changes over the last six months: AI responses with AI Overviews 84 (+84) on 63 pages and ChatGPT 13 (−63) on 10 pages; by platform AI Mode 86 (+86), Gemini 14 (−38), Perplexity 34 (+3), Copilot 13 (−1), Grok 305 (+305), AIO search queries 2.8K (+2.1K). Backlink profile: DR 61 (+6), UR 16 (−1), backlinks 62.4K (+53.7K, all time 101K), referring domains 4.3K (+3.3K, all time 5.4K). Search: organic keywords 8.4K (+3.6K), top 3 2.5K (+1.8K), organic traffic 29K (+20.8K), value $11.1K (+1.1K), paid keywords 3, paid traffic 23.
Ahrefs overview, 6 July 2026, six-month changes. Two stacked crops of the same screen so the platform rows under the AI-responses card stay legible. The red circle is mine, drawn in the video.

The whiteboard in the video uses an older snapshot of the same card (30.3K traffic, 8.9K keywords), which is where my "almost 9,000 keywords" and "30K a month" come from; use the live numbers. The "40K a month" in my opening line is the spring peak of the traffic chart, not the July figure.

The traffic was also where it should be for a US phone product. The location table from the same session:

CountryOrganic trafficShareKeywords
United States19.8K65.4%7.5K
Canada4.4K14.6%1.6K
Nigeria1.2K4.0%247
India9793.2%472
Pakistan9473.1%178
Philippines5411.8%257
United Kingdom4311.4%242
Mexico3231.1%172
Bangladesh3121.0%64
Australia1420.5%143

Eighty percent is the US and Canada, the market that can buy a North American business number. Check that before the total; the 3.5K-to-13.9K case study has a location table that told a less convenient story.

Where the traffic came from: 939 pages, and one blog post worth 892 visits

Open the Top Pages report before copying anyone. This site had 939 pages with traffic. The top row was a classic blog post: 892 visits a month, 3.1% of the total, ranking for 224 keywords. URLs are blurred because it is a customer's site; the shape of the table is what counts.

Ahrefs Top pages report: 939 pages, total traffic 29K, 6 Jul 2026 versus 6 Jun 2026. Rows show traffic of 892 (3.1%, value $12, 224 keywords), 727 (2.5%, $2.1K, 843 referring domains), 0, 585 (2.0%, $133), 549 (1.9%, $115), 539 (1.9%, $87), 511 (1.8%, $69), 435 (1.5%, $43), 435 (1.5%, $5, UR 4.5), 426 (1.5%, $54) and 421 (1.5%, $24). URLs are blurred in the source video.
Top pages, 6 July versus 6 June 2026. The first row is a normal article; most of the rows below it are templated pages. URLs blurred in the video.

That one article is a "why does this happen" explainer, and the keywords it ranks for are long, specific questions about a problem the product solves, mostly in position one. I would take 892 visits from people mid-problem over 10,000 from people reading a definition. Traffic can be worth zero; intent is what you are buying.

The main strategy was programmatic, not blog posts

Scroll past that first row and the pages start to rhyme. Area Code 775. Area Code 249. Area Code 705. Area Code 336. Same title pattern, same layout, same offer: an AI receptionist and a business number in that area code. The number is the variable. The product is a front-office plan that, per the live pricing page in October 2026, starts at $99 a month or $79 billed annually.

Two of the site's templated pages stacked: 'Area Code 775 – AI Receptionist & Business Phone' and 'Area Code 249 – AI Receptionist & Business Phone', each with an intro paragraph and the site's blog header; body text is blurred in the source video.
Two pages from the same template, 775 (northwestern Nevada) and 249 (northeastern Ontario). Body copy is blurred in the video; the headings are the point.

This is where most programmatic SEO goes wrong. The old way was one article, duplicated hundreds of times, with the area code swapped in wherever it appeared: a doorway page with extra steps, and Google has ignored those for years. This site made the number drive the page instead. 775 is northwestern Nevada, so the page talks about Nevada; 705 is northeastern Ontario; 336 is North Carolina. The intro, the local context and the examples change with the variable, because the AI writing the page knows what the variable means. The programmatic SEO guide covers the classic examples; this article is about the AI-written variant.

Why "change the number and republish" stopped working

Google said this out loud in May 2026, in a Search Central guide to optimizing for generative AI features. It separates commodity content, "something like '7 Tips for First-Time Homebuyers'" that "could originate from anyone", from non-commodity content, "such as 'Why We Waived the Inspection & Saved Money: A Look Inside the Sewer Line'", and says creating content people find unique and useful "will likely influence your website's presence in generative AI search in the long run more than any of the other suggestions in this guide". The page was last updated on 10 July 2026.

Excerpt from Google's guide 'Optimizing your website for generative AI features on Google Search': bullets on providing a unique point of view, creating non-commodity content that's helpful, reliable and people-first (with the '7 Tips for First-Time Homebuyers' versus 'Why We Waived the Inspection & Saved Money' example), and organizing content in a way that helps readers.
Google's generative-AI guidance, opened in the video. The highlighted phrase is the one I think matters for programmatic pages.

Read that with programmatic pages in mind. A page that differs from its 300 siblings only by a three-digit number is commodity content by definition. A page whose variable pulls in facts true only of that region is not, even though it targets the same keyword pattern. The template may be the same; the content may not. The one outbound link here goes to that guide.

Step 1: a template with variables that shape the whole page

A custom template in Arvow has a name, a generation prompt and an optional outline; anywhere you write {{ service }}, {{ city }} or {{ state }} the editor detects a variable. The template below is a demo I built for a Dallas plumbing company: three variables and a prompt that tells the model to "include at least 4 facts true ONLY of" the city, and to "never name or reference any other city".

Arvow Custom Template editor: template name 'Local Business Location + Service pages'; notice '3 variable(s) detected in your template (service, city, state)'; a generation prompt for Berkeys Plumbing, A/C & Electrical instructing the model to target the exact search '{{ service }} {{ city }} {{ state }}', write in a confident local-pro voice, and under a 'localization mandate' include at least four facts true only of the city; Enable Outline toggle on.
The template's general tab: three detected variables and a generation prompt that makes the city change the facts, not just the heading.

The outline decides what every page must contain, and the variables live inside it too. Each heading carries an instruction in braces: three or four local issues flavoured by the city's soil, heat and housing age; the sub-services the company actually offers; honest price ranges in a table; neighbourhoods near the city; one review signed with a first name and the city. Those instructions are what make page 300 differ from page 1 in substance rather than in a number.

The same Custom Template's Markdown Outline: '{{ service }} {{ city }}, {{ state }}' then per-section instructions in braces: 2–3 paragraphs weaving in three facts true only of the city; 'Common {{ service }} problems in {{ city }} homes' with 3–4 realistic local issues; 'Our {{ service }} services in {{ city }}'; 'What {{ service }} costs in {{ city }}' with honest price ranges in a compact table; 'What to expect when you call us' as a 4–5 step process; 'Areas we serve near {{ city }}' naming 4–6 real neighbourhoods; one realistic review signed with a first name.
The outline. Every section instruction references the variables, so the variable decides the content of the section.

Generating a page is then a form: template, service, city, state, add article. The result for AC repair in Plano, Texas talks about clay soil shifting foundations and stressing ductwork, 100°F summers, "blue norther" freezes that swing 40°F overnight, and DFW hard water scaling the condenser coils. None of that was in a keyword list; it came from the city variable.

Generated article preview 'AC Repair in Plano, TX': intro about NATE-certified technicians, 24/7 emergency service and 50 years of North Texas experience; a photo of a technician testing an AC unit; bullets on state licensing, same-day response, satisfaction guarantee and financing; then a section 'AC Repair Plano, TX' explaining Plano's expansive clay soil shifting foundations and ductwork, 100°F summers, 'blue norther' freezes swinging 40°F overnight, and hard water in the DFW metroplex causing mineral buildup in condenser coils.
The Plano page the template produced, with the inputs service = AC Repair, city = Plano, state = TX.

Two warnings. First, the variables are the easy half; audit the fixed half of the prompt as carefully. This demo template hard-codes "serving the Dallas–Fort Worth metroplex since 1975" and Texas licence numbers, correct for Plano and wrong for any city outside North Texas. The microsites article shows that leak on a generated page; make those facts variables or keep the template inside the region they are true of. Second, give the template a knowledge base of the brand's own PDFs, pages and videos, so it writes in the company's facts and voice.

Step 2: an AI agent for the technical layer

Second, the customer let an agent handle the technical queue. In the video I open the Site Optimizer on our own site, arvow.com, because I can show that account without blurring anything; the customer's screen looks the same with their URLs. The agent had analysed 100 pages and was holding 93 meta titles, 100 meta descriptions, 27 internal links and 174 alt texts, all "not applied".

Arvow Site Optimizer for arvow.com: Live Optimizations 0, Pages Analyzed 100 (last analysed a month ago), Traffic from Optimizations 0 visits; Internal Links tab with Not Applied (27), Applied (0), Archived (0); rows of suggested anchor text and target URL such as 'Local SEO Software' to arvow.com/local and 'Autoblogging AI Software' to arvow.com/autoblog, each with a Why? link; a bar reads '20 item(s) selected · Apply · Archive'.
The internal-links queue on arvow.com: suggested anchor, target page, a reason, and a bulk Apply for the twenty selected rows.

Internal links matter most on a programmatic site, because a few hundred templated pages with no links to the service pages is a common failure. The agent proposes anchor and target and says why; you tick the rows and apply. The same queue does alt text: 174 images, each with a suggestion and an Apply.

Arvow Site Optimizer Image Alt Text tab: Not Applied (174), Applied (0), Archived (0); rows pairing each current image URL on arvow.com with a suggested alt text, for example a Wistia embed described as 'Arvow AI content marketing video showcasing traffic generation and SEO benefits', a flight-fare comparison tool, a TDEE calculator and a mortgage calculator widget; '20 item(s) selected · Apply · Archive' bar at the bottom.
174 alt texts queued on arvow.com. The approval step is the product; the writing is the easy part.

The approval workflow is in the bulk alt text article; the technical layer under a programmatic section is bigger than under a blog because the page count is, and that is agent work.

Step 3: backlinks on autopilot, and what the number actually was

The Ahrefs card showed 62.4K backlinks, up 53.7K in six months, from 4.3K referring domains. To be precise about the claim: the customer used Arvow's backlink agent, and not all of those links came from it. The panel I open in the video is the Automatic Backlinks page in an Arvow project: 100 backlinks from 57 unique domains, landing on 34 pages, with new rows dated 4, 5 and 6 July.

Arvow Automatic Backlinks panel: 'Backlinks are active – your site is in the network; backlinks are placed automatically as other users publish relevant articles. We only count links from articles published through Arvow, so your real total may be higher.' Cards: Backlinks Received 100, Unique Sources 57, Pages Linked 34. Buttons for Buy Premium Backlinks and Documentation.
The Automatic Backlinks panel in the video: 100 links from 57 domains across 34 pages, counted only from articles published through Arvow.

How it works is on the automatic backlink exchange page: your site joins a pool, and when another member publishes an article where a link to your page is relevant, the link is placed, at a pace I quote as a minimum of about two a week. The manual service on the build-backlinks page places links on sites with a domain rating of 40 to 70 and at least 1,000 organic visits a month, from three links. The habit matters more than the mechanism: link building ran without anyone remembering to do it.

Step 4: track where the AI assistants mention you

The Ahrefs card already shows why the fourth step matters. In six months the site went from zero to 84 AI Overview appearances on 63 pages, zero to 305 Grok responses and zero to 86 AI Mode responses, while ChatGPT fell by 63 to 13. You cannot act on that without seeing it per platform, per prompt. The customer runs a brand monitor on five prompts every three days.

Arvow LLM Brand Monitor: 'Monitor is active – prompts run every 3 days'. Cards: Visibility 56% across all LLMs, Sentiment +55 (Very Positive), Prompts 5. Visibility tab, last 7 days: LLM breakdown ChatGPT 56, Claude 55, Gemini 57, Perplexity 57, Grok 57, and a visibility-over-time chart from 30 June to 5 July.
The brand monitor for the customer's five prompts: 56% visibility, +55 sentiment, and a per-model breakdown within two points of each other.

Fifty-six percent visibility means the brand is named in roughly every second response; +55 sentiment is labelled very positive. The loop from there is: find the prompts where you are absent, create the content that answers them, watch the number. The AI visibility article is the long version, and the tracker page is the tool.

What changed since the recording: the area-code section is gone

This is the part I owe you. I re-checked the customer's site on 12 October 2026, three months after the recording. The area-code pages return HTTP 410, Gone, including the section index and every URL I sampled from Google's results, and the site's robots.txt now disallows the whole /area-code path. The sitemap lists about 10,100 URLs and none is in that section. There is no Wayback Machine copy, so I cannot show the body text.

I do not know why the customer retired the section and I will not guess on their behalf. It does not change the method: the same four steps took a different site from zero to 1,800 visits a month, and the customers in the results table mostly run the blog version of the same loop. It does change how to read the 29K: a July 2026 snapshot of a site whose largest section its owner has since removed, with no October number to put beside it.

The lesson: treat a programmatic section as an asset with a lifecycle. Measure it per page in Top Pages, know which pages earn their place and which exist because the template could make them, and retire from the report, not the page count.

The four steps, in order

Whiteboard titled 'The 4-step AI SEO Process they followed': 1. Custom Templated Content with variables; 2. AI Agent for Fixing Technical SEO; 3. AI Agent for Building Backlinks; 4. LLM visibility tracking to increase brand mentions; red pen marks from the video.
The whiteboard from the video.
  1. Pick a variable that changes the facts, not just the heading, and write the prompt and outline so every section uses it.
  2. Audit the fixed half of the template; anything hard-coded appears on every page.
  3. Put an agent on the technical queue and approve in bulk, internal links first.
  4. Keep links arriving without a calendar reminder.

Custom templates with variables, the technical-SEO agent, automatic backlinks and the LLM monitor are all on Arvow's Business plan. See how the AI SEO agent works.

Generate, publish, syndicate and update articles automatically

The AI SEO Writer that Auto-Publishes to your Blog

  • Cancel anytime
  • Articles in 30 secs
  • Plagiarism Free