crea.site
4 min read productseo

What an AI Website Builder Should Actually Generate

Most AI builders generate one page. A business needs a site: linked pages, one h1, a sitemap, structured data and a form that sends mail. Our checklist.

A generated page is easy. Ask any model for a landing page and you will get one: a headline, three columns of features, a call to action. It looks fine in a screenshot.

A generated site is a different problem, and it is the one a small business actually has. The bakery does not need a page. It needs somewhere people find the opening hours, a menu that matches what is in the counter, a form that reaches an inbox someone reads, and enough structure that a search engine can tell what the business is and where it is.

Here is the checklist we hold ourselves to, and what each item is really about.

Several pages, linking to each other

One page cannot rank for more than one thing. If the bakery wants to be found for both "sourdough" and "wedding cakes", those are two pages with two titles, two descriptions and two first headings - and they have to link to each other, because a page nothing links to is a page nothing finds.

That means the generator has to decide a structure before it writes a word: which pages exist, what each one is for, and how a visitor gets from the front page to any of them in two or three clicks. A category page - services, with a page per service under it - is the shape most trades and clinics want, and it is the shape a flat list of sections cannot express.

One h1, and an outline under it

Every page gets exactly one h1, and the headings below it descend without skipping a level. This sounds like pedantry until you find the failure it prevents: a page whose first block happens not to be a hero can easily end up with no h1 at all, and nothing in a normal review catches it, because the page still looks right.

We check it by rendering every section type in every variant and asserting the outline, rather than by reading the code and believing it.

The machine-readable half

A site that a person can read and a crawler cannot is half a site. Generated with the page, never bolted on afterwards:

  • sitemap.xml, listing exactly the pages that are public - not the members-only ones.
  • robots.txt that says the same thing, so the two files cannot disagree.
  • A canonical URL per page, from the site's real domain rather than whatever host answered.
  • ld+json describing the business: what it is, where it is, when it opens, what it sells.
  • Breadcrumbs that a visitor can see, matching the BreadcrumbList in the structured data. Markup describing navigation that is nowhere on the page is the exact thing Google's guidelines warn about.
"Every one of those comes from the same site definition the page is rendered from. There is no second source of truth to drift.

Words a person would actually type

The part no amount of engineering supplies. A title that reads "Home - Welcome" is a wasted line in every search result the site ever appears in. A description that lists keywords is a wasted sentence.

So the generator is told the shape of the job in detail: the title is fifty to sixty characters, leading with what the business does and the town it does it in; the description is a hundred and fifty to a hundred and sixty and ends with a reason to click; every page owns one subject, because two pages aimed at the same phrase compete with each other and both lose.

Something that works without JavaScript

Generated sites here are server-rendered, with no client-side routing. It is an unfashionable choice and an easy one: it is why the pages are fast on a phone on a bad connection, why every one of them is crawlable, and why a form still submits when a script fails to load.

The interactive parts - a menu, a gallery, a map - are progressive. They improve a page that already worked.

Readable by an agent, too

Increasingly the visitor is not a person. Every page of every site we generate is available as markdown: add .md to the path, or send Accept: text/markdown. Each site publishes an llms.txt listing its public pages, and its robots.txt names the AI crawlers explicitly instead of leaving them to guess from a wildcard.

For a business that wants to be recommended when somebody asks a model where to get a sourdough loaf in Kraków, being readable is the whole game.

What this does not include

No invented facts. Not a review, not a registration number, not an award, not a price the owner never gave us, not a photograph of a team that does not exist. A generated site is a draft of a real business's public face, and a plausible-sounding invention on it is worse than an empty section.

That constraint costs us the odd impressive-looking demo. It is not close to a difficult trade.