For pages that have to be found

SEO for AI-generated websites, and why most of them never rank

The site looks finished. Search Console says nothing. The usual diagnosis is thin copy. The usual cause is a first HTML file that contains a spinner and a script tag. This page is the technical argument, written so you can check your own URL in half a minute.

  • 2 to 5 minFirst draft
  • 6Index signals
  • 30 sFirst-HTML check
  • $0Free, 1 seat

The technical problem nobody explains

An AI website builder can write a handsome layout in two minutes. That is not the same job as shipping a document a crawler can read. Googlebot, Bingbot and the fetchers behind ChatGPT, Perplexity and AI Overviews start with one request: they download the URL and look at the bytes. If those bytes do not contain the title, the H1 and the sentences a visitor later sees, the page has not entered the contest.

Most talk about "AI SEO" is about adjectives and schema plugins. The failure that keeps AI-generated websites invisible is older: the marketing page is a client-rendered application. You see words because your browser ran JavaScript. The crawler often does not.

A crawler does not owe you a second pass. If the first HTML is empty, six months of "we will write more blog posts" will not fix it.

Client versus server rendering

Client rendering means the server sends a shell: an empty div, a bundle, a loading state. The browser downloads the script, fetches the copy, and paints the page. That is a reasonable way to ship an app you are logged into. It is a poor way to ship a public brochure. Server rendering and pre-rendering mean the first response already contains the words. Hydration can still make the page interactive afterwards. The order matters. Search is a document problem first and an application problem second.

What the crawler actually receives

Turn JavaScript off and reload. If you still see the trade, the town, the price and the H1, a crawler can start. If you see a blank, a cookie wall with no content behind it, or a heading that says "Loading", that is the file Google stored. Some crawlers will execute JavaScript later. They do it on a budget, not on every recrawl, and they may store the empty version first. "Rendered" in a lab tool is not the same as "indexed as a useful document". The test that matters is the raw HTML, not the screenshot you sent a client.

Why a beautiful site stays invisible for six months

A shell can still collect a few impressions if a sitemap lists it and a human shares the link. It will not collect the long-tail queries that pay for a small business site. The URL sits in "Crawled, currently not indexed". People wait, then they buy a blog package. The blog is another shell. Six months later the design is still prettier than the WordPress they left, and still absent from the queries they typed into the brief.

First HTML a crawler receives from an AI-generated website, with title, H1 and body copy already in the response
View-source on a published page: the title, the H1, and the body copy already sit in the first HTML.

The six things a page needs to be indexed

Indexation is permission to compete, not a ranking. A page can be indexed and still sit on page four. A page that fails these six is not in the index at all, or it is in the index as a near-empty URL. None of the six is a trick. All six are checkable on a Tuesday afternoon without a consultant.

Words in the first HTML

The title element, one H1, and enough body copy to say what the page is for must be in the first response. Not after a client fetch. If you sell cuts in Austin, those words should appear in view-source. A hero image with text burned into pixels does not count.

A title and an H1 that name the same job

The title tag is the contract with the query. The H1 is the contract with the visitor. They should agree. "Welcome" and a brand line that names nothing will get you a document Google can store and a click nobody wants. Do not replace a working title with a slogan because the new theme looked calmer.

A URL a bot is allowed to fetch

No login wall on the public page. No accidental noindex on the template. robots.txt must not block the path you care about. A canonical that points at a different host, a staging copy, or a parameter you do not use will waste the crawl. Self-canonical on the live URL is the default that keeps you honest.

A sitemap that lists the live URL

A sitemap is a hint, not a command. It still has to exist, be valid XML, and list the addresses you actually published. A sitemap that lists the preview host after you attached a domain is how a first month disappears. Submit it in Search Console. Keep it in sync when you add or retire a page.

A path from another page you already have

Orphans wait. A new Services URL that only exists in the sitemap is easier to ignore than one the homepage and the contact page already point at. Breadcrumbs help humans and they give the crawler a second route. Do not bury the page that should rank behind a scripted menu the first HTML does not contain.

A reason to keep the URL

Useful, specific, true. A unique price, a named area, a policy you actually follow, a photograph of the work. Duplicate thin pages, ten city doorways with the same paragraph, and AI filler that could sit on any site in the category are how you get indexed once and then dropped. The technical six get you in. The seventh, which is usefulness, is still your job. No builder owns that part.

Six index signals on an AI-generated website: first HTML, title, H1, fetchable URL, sitemap and internal links
The six signals on a published page: first HTML, title, H1, a fetchable URL, a sitemap, and an internal link.

What Eqlo does automatically

Eqlo pre-renders the marketing pages. Title, meta description, the heading tree, and structured data sit in the first HTML. That is a product fact, not a ranking. Nobody should buy a builder for a guaranteed first page.

At generation

The first draft lands in two to five minutes with pages, navigation, copy, forms, and images. Title, H1, and body copy are written into the first response. Images become WebP, with sizes and alt text.

At publication

The sitemap and robots.txt are generated. The sitemap is submitted. Hosting starts on a projet.eqlo.app subdomain, then your own domain with DNS checks and an SSL certificate. Core Web Vitals are measured on every publish. A regression raises an alert.

On every change

Each exchange creates a version you can restore. A chat edit that changes a price still leaves the words in the first HTML. You look at view-source before you send the URL.

What stays your job

Eqlo does not invent a reputation or place a backlink. It will draft copy from your sentence. You still correct the price, cut the page that was never in scope, and refuse the extra city page that would be a doorway. If you publish ten near-identical service URLs because the model offered them, that is your sitemap, not a ranking.

The split: we ship a document a crawler can read. You still have to be worth reading. Rankings come from the copy and the links. Generation can be wrong. Read it before you publish.

Getting cited by assistants

Assistants that cite sources still begin with a fetch. A page that is empty to a crawler is empty to most of them. There is no secret schema that repairs a shell. There is a document that names the work, states a fact a human would defend, and can be retrieved without executing a large bundle.

Why rendering counts for them too

They start with one request. If those bytes do not contain the title, the H1, and the sentences a visitor later sees, the page has not entered the contest. Some fetchers will execute JavaScript later. They do it on a budget.

What makes a passage citable

A clear H1. A date on anything that changes. Prices you will still honour next month. Structured data that matches the visible page. A fact a stranger can check. A paragraph that could sit on any site in the category is not a source.

Check in thirty seconds whether your current site is indexable

Open the live URL in a private window. Disable JavaScript. Reload. You want the title in the tab, an H1, and enough sentences to know the business. If you need a developer to interpret the blank, you already have the answer.

Then view source. Search for your H1 string. If it is absent, the pretty site is a client app. Check for a surprise noindex. Open /robots.txt and /sitemap.xml on the hostname you share, not a preview. In Search Console, "Crawled, currently not indexed" plus empty first HTML is a rendering problem. "Discovered, not crawled" plus a blocked robots rule is a fetch problem.

If you want the same check without turning JavaScript off by hand, use the index check tool on this site. Paste a public URL. Eqlo fetches the first HTML from our servers and reports title, H1 count, visible words, and JSON-LD. It is not Search Console and it will not submit anything. It answers one question: did the first response contain a document?

If the current site already sends real HTML, keep that property when you rebuild. A redesign that swaps a solid document for a shell is how rankings fall while the new palette gets applause. Eqlo can start from the URL you have. The redesign page is the companion when the site already earns impressions.

Related pages

If you are choosing a builder, read the website builder and the cost table. If the site already ranks, start from the redesign guide. If a term on this page was new, the glossary is the longer list.

Frequently asked questions

Why does Search Console say crawled but not indexed?

Often the stored document is thin: a shell or a duplicate. Check the first HTML with JavaScript off. If the words are missing, fix the rendering before you write another article. Indexation is not a queue you can shout at.

If Google can render JavaScript, am I safe?

No. Rendering is rationed. The empty first response can be what gets stored. Other crawlers are stricter. Assistants that cite you may only see the raw file. Ship the document in the first bytes. Treat JavaScript as enhancement, not as the copy.

How soon should a new Eqlo site appear in the index?

There is no SLA. A fetchable page with a sitemap can be seen in days. A new domain with no links can wait weeks. Do not buy a promise of page one in 48 hours.

Should I request indexing on every URL by hand?

Request the homepage and any URL that must exist on day one. Then let the sitemap and internal links do the rest. Hand-submitting forty thin pages trains nothing useful and can look like impatience rather than a site.

Do I need a blog for an AI-built site to rank?

Only if you will write it. A weekly post that restates the homepage is a new empty URL. A pricing page with real numbers, a catchment, and a named example usually beats a blog you will abandon in November.

What does Eqlo still need me to write?

The facts: prices, hours, who you will not serve. The model will draft. You accept or you cut. You also decide which URLs exist.

Can ChatGPT cite a page Google has not indexed?

Sometimes a model has seen a URL another way. You should not plan on it. If the page is not a stable, fetchable document, a citation is luck. Make the page indexable first. Treat assistant mentions as a bonus, not a strategy.

Publish a page a crawler can read on the first request.

Five free projects, no card. Open view-source on the preview before you attach a domain.