resulthack

What an AI crawler that runs no JavaScript can read in your page

Paste your page's HTML source and see the text, headings, meta tags and structured data a crawler gets from the HTML alone, before any script runs. It works on pages that are not public yet. The HTML is parsed in this tab and nothing is fetched or sent.

Why the HTML alone matters

A crawler that does not run JavaScript reads the HTML your server sends and nothing else. If your page is built in the browser (a React, Vue or Svelte app without server rendering), that HTML is an empty container and a list of scripts. The check above counts what is actually there.

What operators and measurements say about running JavaScript:

The safe reading: if the words are not in the HTML, most AI crawlers do not get them, and Google gets them only after rendering.

What counts as readable text

Every text node inside <body>, in source order, with runs of spaces collapsed and each block element on its own line. Left out: <script>, <style>, <template>, <iframe>, <svg>, <canvas> and the <head>. <noscript> is shown on its own, because a client without JavaScript sees it and a browser with JavaScript never does. Text hidden with CSS is counted: it is in the HTML, and a crawler that runs no CSS reads it too.

Words are counted with the browser's Intl.Segmenter, which uses Unicode word boundaries and dictionaries for Chinese, Japanese and Thai, so 我们今天去公园散步 counts as 5 words, not 1. "Client-side" counts as 2 words and "don't" as 1.

The signs of a client-rendered shell

The fix is to send the content in the HTML: server-side rendering or static generation (Next.js, Nuxt, Astro, SvelteKit and Remix all do it), or prerendering for a plain single-page app.

What this check cannot see