Books

Growth 365

Tomas Laurinavicius

ChaptersProgrammatic Pages With Real Data

Programmatic Pages With Real Data

Scale to thousands of pages only when every one earns its own click.

Every programmatic-SEO pitch sounds the same. Pick two variables, build one template, multiply. Most teams stop right there and ship ten thousand thin pages that repeat a sentence with a word swapped in. Those pages get hit hardest by every helpful-content update Google ships, because there is nothing on them a search snippet did not already tell you. The version that survives is the one where every page carries a fact nobody else assembled in that exact combination, sourced live, not typed in once and left to rot. Build the feed first. The pages are just how you display it.

What to do: Pick a variable with real, per-entity data that actually changes, a rate, a price, a live count, and pull it fresh at render time instead of baking it in at launch. Only generate a page for a combination where you can put a true, current number on it that a static page could not fake. If the only thing that changes between pages is the H1, you do not have a data feed, you have a mail merge.

Why it works: A page that shows a different true number every time it gets crawled looks nothing like the filler that algorithm updates were built to catch, and it keeps earning fresh crawls precisely because the data keeps moving.

Example: Wise runs more than 260,000 live currency-conversion pages across 60-plus countries and languages, each one pulling the real mid-market rate at the moment it renders, and that single pattern now drives roughly 90% of its organic traffic, an estimated 46 to 60 million monthly organic visits.

Walk it through

I opened two of Wise's live pages back to back in July 2026 to see the same template with two different real numbers behind it.

1. Open one converter page and read what's actually live on it.

https://wise.com/us/currency-converter/usd-to-eur-rate

Wise's USD to EUR page: headline "US Dollars To Euros Today" with the live mid-market rate, $1 USD = 0.8752 EUR, and a working converter

The headline is "US Dollars To Euros Today," not "Currency Converter." The rate underneath it, $1 USD = 0.8752 EUR, is the mid-market rate at the second the page rendered. Type in an amount and the converted total updates against that same live number.

2. Open a second page from the identical template, a different pair.

https://wise.com/us/currency-converter/gbp-to-jpy-rate

Wise's GBP to JPY page: same layout, headline "British Pounds Sterling To Japanese Yen Today", rate £1 GBP = 217.0 JPY

Same layout, same converter widget, same call to action. The only things that changed are the two currency codes and the rate, £1 GBP = 217.0 JPY, which is a completely different real number pulled from the same feed. That is the whole trick. One template, one data source, and the page is only ever as good as the number it is allowed to show.

3. Do the arithmetic on the bet.

260,000-plus pages is not one page per currency pair. It is every pair, times every supported country subfolder, times every language Wise localizes into. Multiply a modest base of currency combinations by 60-plus country and language variants and you land in that range fast. Nobody wrote 260,000 headlines. Somebody wired one template to a rates API and let the country and language matrix do the multiplying.

The read

  • The variable is the rate, not the copy. The headline template is almost decorative. The rate is the only reason the page exists, and it is the only part that has to be correct.
  • Freshness is the moat, briefly. A live number is hard to fake and easy to verify, which is exactly why it survives quality updates that kill static filler. But the number itself is a commodity anyone with the same data source can show too.
  • Scale is a multiplier applied after proof, not before it. Wise did not launch at 260,000. It proved the converter worked on a handful of major pairs, then let the country and language matrix do the multiplying once the format was earning clicks.

Steal it

Find the variable in your own product that is genuinely true and genuinely different for every entity in your catalog, a live price, a real inventory count, an actual median salary, a current exchange rate, a real response time. Hand-build three or four pages around it and check they rank and get clicked before you template anything. If the underlying number is static or made up, you have not found a programmatic-SEO opportunity, you have found a reason to write one good page instead of a thousand bad ones.

Defend it by accepting upfront that the raw data is rarely yours alone. Wise does not own the mid-market exchange rate, anyone can pull the same feed. What it owns is the fastest page, the deepest country and language coverage, and the internal linking that makes Google trust the whole cluster. If a competitor can clone your template and your data source in a weekend, your actual moat is coverage, speed, and the trust signal that comes from having run the pattern longest, not the number on the page.

Gotchas

  • A broken feed quietly turns your best pages into the filler you were avoiding. If the API fails and the page falls back to a cached or hardcoded number, you have rebuilt the exact spam pattern real data was supposed to protect you from. Monitor the feed, not just the page.
  • Real data on a combination nobody searches for is still a wasted page. A true, live rate for an obscure currency pair with zero monthly search volume burns crawl budget for nothing. Generate against demand, not just against the cross product of your two variables.
  • Show your work on how current the number is. A rate, price, or count without a timestamp reads as more authoritative than it is. Label it, because a visitor who transfers money against a number you quietly let go stale is a trust problem, not just an SEO one.