Rule page.rendering.js-dependent-content
Server-render your main content so non-JS AI crawlers can read it
page.rendering.js-dependent-content is a check in Crawlmind's site audit that grades high-impact issues of this kind. This page explains why the rule matters and the exact fix.
Why it matters
We fetched this page twice — once as raw HTML and once with a full browser — and the raw HTML held only a small fraction of the rendered text. Google renders JavaScript, but the AI crawlers you care about mostly do NOT: GPTBot, ClaudeBot, PerplexityBot and CCBot read the raw HTML response and move on. If your content is injected client-side, those crawlers see a near-empty page and can't cite you. This is usually the single highest-impact AI-visibility fix for a client-rendered SPA.
The fix
Get the main content into the initial HTML response. Options, easiest first:
- **Framework SSR/SSG/ISR.** Next.js, Nuxt, Remix, SvelteKit and Astro all render on the server by default — make sure your content pages use server components / `getStaticProps` / `getServerSideProps` (or the equivalent) rather than fetching in a client-only `useEffect`.
- **Pre-rendering.** If you can’t adopt SSR, pre-render key routes to static HTML at build time, or put a pre-render service (e.g. Prerender.io) in front of bot traffic.
- **Progressive enhancement.** Ship the core text + headings in the HTML and use JS only to enhance, not to create, the content.
Verify the fix by fetching the raw HTML directly (no browser):
```bash
# The main article text should be present in this output.
curl -sL https://example.com/your-page | grep -o "a distinctive sentence from your body copy"
```
If `curl` shows the content, so will GPTBot and friends.