Skip to main content
Tips & Tricks3 min read

Programmatic SEO without AI content still ranks

Generate the structure, write the sentences by hand. How 48 landing pages across five clusters are built, cross-linked and kept honest.

By Franco Cirulli

Share

You have a spreadsheet of keywords and one page template that could cover every row in it. The tempting move is to hand each row to a model and publish the batch overnight. What comes back is fluent. It is also generic, and interchangeable with every other page built the same way. Programmatic SEO is still the right strategy. The part you generate is the structure, not the sentences.

The template is generated, the sentences are not

i3Dify runs 48 programmatic landing pages: 6 free-tool pages, 7 competitor comparisons, 9 integration guides, 18 template pages, 8 industry pages. Each cluster is one TypeScript file in src/config and one generic React component. A page is an object with typed fields, an h1, a hero subtitle, a benefits array, its own FAQ, and the component renders any entry you give it. The strings inside every entry were written one at a time. Generating the layout costs nothing and scales. Generating the claims is what gets a whole cluster demoted at once.

A page ranks on the thing the model could not have known

The free 3D restaurant menu page chases a query a hundred other pages chase. It says the specific thing: independent restaurants reprint every four to six weeks, print and laminate run 150 to 300 dollars a month, and the QR code stuck to the table keeps working after you re-upload the PDF with new prices. A model will write the sentence about digital menus being convenient. It will not know that the QR sticker is the part the owner is afraid to reprint. That one sentence is the page. The rest is layout.

A comparison page has to say when to pick the other tool

Most of the Issuu comparison is about Issuu. Their reader network is real value: people browse issuu.com and find magazines there, and an embed on your own domain does not replace that. The page says so in a field called whenToPickThem, before it says anything about us. Then the plans go side by side, Issuu at 35 dollars a month against i3Dify Pro at 3, stamped with the month that pricing was last checked. The free plan row reads watermark, 3 projects, 50 MB. A comparison that concedes nothing reads like an ad. It gets treated as one.

A landing published on its own sits on its own. Every page exposes four to six hand-picked links from src/config/related-links.ts, chosen to cross clusters: the menu tool points at the restaurants industry page, the Issuu comparison points back at the flipbook free tool, the Notion embed guide points at the flipbook tool and at two industry pages. Nothing in that map is automatic. A daily cron submits every landing URL to IndexNow, so a new page is pushed for indexing within a day of going live. Some of these will never bring traffic alone. A template page for a niche with a few dozen monthly searches exists to hold the cluster together, and that is a fine reason to build it.

The model belongs upstream of the sentences

  • Outlining: ask for the ten questions a page on this query has to answer, then throw the answers away and write your own.
  • Translation: the body exists in five locales, and a first pass is a reasonable starting point for a native read-through.
  • Meta descriptions: 155 characters restating what the page already proves is mechanical work, and it comes back faster than you would type it.

Test any page you are unsure about with one question. Could this sentence sit on a competitor's page with the brand name swapped? If it could, you published the template, not the page.

Writing the sentences by hand is slower than generating them, and it stays slower. What you get back is a page that says something checkable, and checkable is what survives the next update. Start with the one query you know better than anyone else writing about it.

Turn a PDF into a 3D flipbook.

Frequently Asked Questions

How do you find winnable queries?

Google the query and look at who owns the top three. If it is Wikipedia, Reddit and a mega-domain SaaS, a new domain is not taking that spot. Narrow the query until the results are pages the size of yours: free portfolio builder belongs to Wix and Squarespace, which is why the page in our config is 3D portfolio builder. Then let Search Console tell you what the first live pages are already picking up.

How many words per page is the right target?

Long enough to answer the query, then stop. Comparison pages run longest because a plan table and a fair case for the other tool take room. A tutorial that answers the question in 900 words should be 900 words, and padding it to hit a number is how a page starts reading like a generated one.

Should I write all pages before launching or ship as I go?

Publish as you go. The first few pages tell you which queries are winnable and which framings get clicked, and the rest of the cluster gets written with that in hand. Holding 30 finished pages back also holds back 30 pages worth of indexing time.

Does this approach work for blog content?

Yes. A fluent blog post with nothing specific in it fails the same way a fluent landing page does. This article names files in the repo for the same reason the landings name prices.

#seo#programmatic seo#content marketing#saas growth
Share

Ready to create your own 3D experience?

Transform your content into immersive 3D experiences in seconds.