Looking right and being found are different jobs
AI builders optimise for "the output looks correct". Search engines care about something else entirely: can the content be read without executing JavaScript, is there structured data, is the title unique.
Those two goals don't overlap, which is why AI-generated sites fail in the same five places.
Trap 1: Client-side rendering only
The most damaging one. Many tools output an empty HTML shell plus a large JavaScript bundle that fills in the content once the browser runs it.
Crawlers may render JavaScript, but the render queue has latency, quotas, and no guarantee. Whether your content gets indexed shifts from a certainty into a probability.
How to check: view source (Ctrl+U), not the Elements panel in devtools — that shows the post-render DOM. If your body copy isn't in the source, the crawler probably can't see it either.
How to fix: ask for it explicitly.
Use Next.js App Router Server Components. Page content must appear in the initial HTML; do not fetch above-the-fold content inside useEffect.
Trap 2: No structured data
Schema.org markup is how a search engine knows what kind of thing a page is — an article, a product, an FAQ, a local business. AI won't add it by default, because it has zero visual effect.
Its weight is rising as generative search grows: AI answers lean heavily on structured signals when deciding what to cite.
How to fix:
Add JSON-LD structured data in
<head>, typed Article / Product / FAQPage as appropriate for the page.
Trap 3: Missing or duplicated titles
The classic multi-page symptom: every page's <title> is the site name, and <meta name="description"> is missing entirely.
Your title is the only ad copy you get in a search result. Making it identical across the site throws that away.
How to fix: write the title and description for each page into the prompt. Don't leave it to improvisation.
Trap 4: Non-semantic HTML
AI loves <div>. You end up with a page of nothing but divs — no <header>, <nav>, <main>, <article> — or five <h1> elements, or a jump from h2 straight to h5.
This hurts SEO and accessibility. Same root cause; fixing it once fixes both.
How to fix:
Use semantic HTML: header / nav / main / section / article / footer. Exactly one h1 per page, no skipped heading levels.
Trap 5: robots.txt and sitemap
The second most common incident: a staging environment shipped Disallow: / and nobody changed it back. The whole site is invisible to search, and it's hard to notice — because in a browser everything looks fine.
How to check: visit yourdomain/robots.txt and /sitemap.xml and read what's actually there.
A block you can append to any build prompt
SEO requirements:
- Content must be server-rendered and present in the initial HTML
- Unique title (50–60 chars) and meta description (140–160 chars) per page
- JSON-LD structured data matching the page type
- Semantic tags; exactly one h1; no skipped heading levels
- Descriptive alt text on every image
- Generate robots.txt (crawling allowed) and sitemap.xml
- Include canonical tags
Don't forget AI retrieval
Beyond classic search, generative engines now decide whether to cite you. They favour pages that are clearly structured, fact-dense, and explicit about entities. Practically: a table or a list is more citable than three paragraphs of atmosphere.
Want to skip the trial-and-error? MotionSites prompts ship with these SEO constraints built in.