Content without JavaScript

Agents read the HTML your server sends and do not run JavaScript. Whatever is not in that HTML does not exist to them.

Standard
Established

What it checks

The extension fetches the page’s HTML as the server sends it and measures the visible text in it, ignoring scripts and styles. It also looks for an <h1>.

If the raw HTML has at least 500 characters of text, the page has enough server-rendered content and the result depends only on whether an <h1> is present.

If the raw HTML has less than that, a short page is not automatically a problem. The extension compares the raw text with the text on the rendered page in your browser. The page counts as depending on JavaScript when the rendered page has at least 500 characters and more than twice the text of the raw HTML.

Results

Status When
Pass The raw HTML has at least 500 characters of text and an <h1>
Warn The raw HTML has at least 500 characters of text but no <h1>
Warn The page has little text either way, raw or rendered
Fail The rendered page has at least 500 characters and more than twice the raw HTML’s text
Unmeasured The HTML could not be fetched, or the raw HTML is thin and the rendered page could not be read to compare it

How to fix

Render the page’s content on the server, so it is in the HTML response rather than added by scripts after load. Most frameworks support this through server-side rendering or static generation (for example Next.js, Nuxt, Astro, or SvelteKit with SSR or prerendering turned on).

Give the page a single <h1> that names what it is about, and enough text for an agent to tell what the page is for. An <h1> and a few hundred characters is a reasonable minimum.

You can see what an agent sees by fetching the page without a browser:

curl -s https://example.com/page | less

If the content you expect is missing from that output, agents cannot read it either.