TacticSupportedIn the free check

Main content present in initial HTML (SSR/SSG, not client-only JS)

Most AI crawlers read only the raw HTML. Since late September 2026, two site owners have logged OpenAI's OAI-SearchBot rendering JavaScript on some pages; OpenAI hasn't confirmed it. Don't rely on it: put the main text in the first HTML response.

Best study is at least large-n observational or controlled, with some replication. Outcome data is still mostly correlational.

Outcome studies are still mostly correlational unless the write-up says otherwise.

How we grade →

How to fix

Put your main text in the HTML your server sends. Most AI crawlers don't run JavaScript, so text that loads later is invisible to them.

  1. Check what a crawler sees: run curl -s https://yoursite.com/your-page | less, or use View Source (not Inspect). Your headings and paragraphs should be there.
  2. Turn on server rendering or static generation. Next.js: use a Server Component or static page, not a client page that loads text in useEffect. Nuxt: keep ssr: true. Astro, Hugo, Eleventy and most CMS themes already do this. For a React or Vue single-page app, pre-render at build time.
  3. Put the main text inside <main> or <article>. That's where the free check counts it.
  4. Don't hide the answer in tabs or "read more" sections that load text on click. Folded text already in the HTML is fine.
  5. If the check says your text is short, add the facts buyers look for: what you offer, who it's for, what it costs, and proof. "Short" is under 800 characters, our own rule of thumb.

How to check it worked: run the free check again. The "Your content loads without JavaScript" row should pass: "Your main text is in the page as delivered, so AI agents can read it."

What the free check looks for

  • Fetch the raw HTML without running JavaScript and check that the main text is there (the free check flags a bare app shell or under 180 characters as a fail, under 800 as thin — our heuristics).
  • Compare with what a browser renders; if key copy only appears after JavaScript runs, move it into server-rendered or static HTML (SSR/SSG/ISR).

Caveats

  • — OAI-SearchBot JavaScript rendering is unproven: two single-site log reports (Hisashi Space, Create With Logic, Oct 2026), not confirmed by OpenAI. Keep the raw-HTML gate.
  • — Correlational studies dominate this field. AI citations churn: a small 15-prompt preprint (arXiv 2609.22655; the author sells AI-visibility tooling) saw each engine's cited URL set change by about 67% on average from one day to the next, with under 1% URL overlap across engines. Toronto (2610.15033) found only about 40% of the within-site pattern of ChatGPT citations still held two weeks later, and 14% after ten weeks. Re-verify yearly.
  • — Included in the free page check.

Studies and docs

2024

As of Dec 2024: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot and others fetched but did not execute JavaScript; Googlebot (Gemini) and Applebot render JS. See the Oct 2026 log reports for OAI-SearchBot.

2025

Reiterates that critical content should be in initial HTML via SSR/SSG/ISR for AI crawlers.

2026

From Sep 25, 2026, OAI-SearchBot and GPTBot requests verified against OpenAI's IP ranges fired JS-only Next.js prefetches on the author's Next.js sites (a static site served as a control), a sign of rendering. One operator's logs; OpenAI has not confirmed.

2026

Over 27 hours on one site, OAI-SearchBot ran JavaScript on some pages minutes after fetching them; other AI crawlers showed no sign of rendering. Single-site log, IPs not verified.

2026

Within a site, pages that need JavaScript to show their content got fewer Gemini citations (−10.6%, p=0.008) and fewer ChatGPT citations (−6.8%, not significant).

← All tactics · How we grade

See what AI agents can find on your site

Our free AI visibility check shows whether AI agents can reach, read and quote your site, with each fix graded by evidence. There's no overall score, and no one can promise citations.

Free. No password.