SEO & Digital Marketing September 28, 2026 11 min

The View Source Test: How Much of Your Content Do AI Bots See Without JavaScript?

Googlebot can run JavaScript. Many AI crawlers fetch HTML only. Same URL, two visibilities. View Source shows the gap in 60 seconds.

View Source cover: what do AI bots see?; HTML, JS, and AI badges

Short answer: if your critical offer, CTA, and specs are missing from raw HTML (View Source), many AI bots never see them. Googlebot can run JavaScript. Many AI crawlers fetch HTML only. The same URL produces two different visibilities.

A common field scene: the browser looks full; “View Page Source” shows an empty hero, no CTA, and a feature list that is only a div shell. Humans see it after JS. Machines often do not. This piece clarifies the machine side of SEO / AEO / GEO; speed metrics sit in Core Web Vitals as a separate layer.

Raw HTML

What you see in View Source is the ceiling for many AI bots.

AI bot

Most summary / crawl agents do not run JS; they read the first response.

Googlebot

Can render — with budget and delay. Still keep the HTML solid.

CWV ≠ this

Core Web Vitals are human UX. This test is machine readability.

1. Short answer: missing in source means missing for AI

The decision frame is simple. Sentences that carry the sale or the trust — what you sell, for whom, the primary CTA, critical specs, a price range, the contact path — if they are absent from the first HTML response, JS-free bots treat them as absent.

AEO sentence: If the critical offer and CTA do not appear in View Source, many AI bots never see them either. Googlebot can render; HTML-only crawlers cannot.

2. Googlebot renders; many AI bots fetch HTML

There are two visibility layers. On search, Googlebot often runs JS and indexes the rendered DOM. On AI summary and crawl, many agents read only the HTML that arrived over HTTP. “We show up on Google” is not the same as “AI summaries describe us correctly.”

Googlebot renders with JS; AI bots read HTML only — same URL, different visibility
Same URL: Googlebot may enter a render path; many AI bots stay on the raw source.
Reader What it does Main risk
Human (browser) Runs JS; DOM after hydration “Everything looks full” illusion
Googlebot HTML + (often) render Render budget / delay
Many AI bots Raw HTML only Lost client-only offer / CTA / FAQ

That split matters especially in the AEO and GEO layers: if summary engines cannot find a source sentence, they fall back to the wrong sector, an empty offer, or an outdated About box.

3. The 60-second View Source test

  • 1. Open the page. Home or your most important service / product URL.
  • 2. View source. Right-click → “View Page Source” (or view-source:). Not DevTools Elements — the raw source.
  • 3. Search the text. Ctrl/Cmd+F for your offer line, primary CTA, and one critical spec.
  • 4. Decide. Found → machine side is basically sound. Missing → buried in JS; AI-bot risk is high.
  • 5. Optional: a JS-disabled browser profile or curl on the same URL confirms the same result.

The Elements panel misleads you: that DOM is post-JS. The test is named View Source for a reason.

4. Common failures

SPA / hydration

First HTML is a shell; content fills after the client bundle. Humans see it; the raw source stays empty.

Client-only content

Offer, pricing, FAQ, or feature table renders only after useEffect / an API call.

Late-injected blocks

A chat widget, A/B tool, or tag manager writes critical copy late; it never appears in the source.

None of these means “the site is broken.” Human UX can look great. CWV can even be green. The gap is machine readability.

5. Five fixes

  • 1. Put critical copy in the first HTML. SSR, SSG, or static HTML — offer, H1, CTA, and feature summary must be in the source.
  • 2. Do not hide the offer behind JS. A primary value prop that appears only after “Load more” is invisible to bots.
  • 3. Keep TTFB low. Bots and humans both wait on the first byte. A slow origin hurts crawl and summary quality.
  • 4. Write robots.txt for AI agents on purpose. Allow or deny is a business choice — not a default “block all / allow all.” Verify real User-Agent strings; invent no fake stats.
  • 5. Short-answer + schema blocks. A clear sentence near the top; FAQ / Product / Organization schema in the raw HTML. Next layer: llms.txt.

6. When SPA is fine vs when SSR/SSG is required

SPA is usually fine
  • Logged-in dashboard / tool
  • Internal app, account panel
  • Interactive demo (with offer copy on a separate static page)
  • Private content you do not want bots to read
SSR / SSG / static required
  • Home, services, product, pricing, contact
  • Public blog and FAQ
  • Offer copy you want AI summaries to get right
  • Local / industry landing pages

A hybrid often works: marketing pages SSG/SSR, the app SPA. On Mandalium projects the decision is not “do you like this framework?” — it is “can a bot read the offer in the raw source?”

Conclusion: source first, then layers

Short answer: if it is missing in View Source, many AI bots never see it. Googlebot can render; HTML-only crawlers cannot. CWV is human UX; this test is machine readability.

Put critical copy in the first HTML. Then stack llms.txt, SEO / AEO / GEO, and performance on top.

At Mandalium we make the offer and CTA clear in raw HTML on public pages first; we use JS for experience, not to hide content. Does your site pass the View Source test? Book a free look →

Frequently asked questions

What is the View Source test?

Open the page’s raw HTML source and check whether the critical offer, CTA, specs, and FAQ text appear without JavaScript. If it is missing from the source, many AI bots never see it either.

Do Googlebot and AI bots see the same thing?

No. Googlebot often executes JavaScript and indexes the rendered DOM. Many AI crawlers and summary engines read only the first HTML response and miss client-injected blocks.

Are SPA sites always bad for AI visibility?

No. App dashboards, logged-in tools, and interactive demos can stay SPA. Public offer copy, pricing ranges, feature lists, and contact CTAs must live in the raw HTML.

Do Core Web Vitals fix this?

No. Core Web Vitals measure human experience (LCP, INP, CLS). The View Source test measures machine readability. You need both; neither replaces the other.

What are the five core fixes?

Put critical copy in the first HTML (SSR/SSG/static), do not hide the offer behind JS, keep TTFB low, write robots rules for AI agents deliberately, and add short-answer plus schema blocks. Then consider llms.txt as the next layer.

Does llms.txt replace View Source?

No. The page source must hold the real content first. llms.txt gives AI consumers a short root guide; it cannot rescue an empty or JS-only page. They are layers.

Tugay Mandal

Tugay Mandal

Founder of Mandalium. 6+ years of experience in web design, mobile apps and SEO.

About Us

Let's work together on your project

The first consultation is free. Share your idea and we'll prepare a custom proposal.