Skip to main content
friendly4AI LogoMaking websites AI-friendly - Your website optimization platform for AI systemsfriendly4AI
  • Product
  • Leaderboard
  • Pricing
  • Blog
Sign in
  1. Methodology
  2. ›
  3. Parameters
  4. ›
  5. Content Visibility Without JavaScript

Content Visibility Without JavaScript

stable

Category: content-structure · Methodology v4.5

It estimates how much of your primary content arrives in the initial HTML response, before client-side rendering kicks in.

Signal Source

Source
https://{domain}
Kind
html_dom

Score Bands

VerdictCondition
Passthe initial HTML carries rich visible text (about 1500+ characters after stripping scripts, styles, and tags) and is not a script-heavy single-page-app shell
Partialthe initial HTML carries a moderate amount of visible text (about 500+ characters) — some content is server-rendered but parts still depend on JavaScript
Failthe initial HTML carries minimal visible text (under about 500 characters), typically a JavaScript-dependent shell with little or no server-rendered content

Description

This parameter checks how much of your primary content sits in the raw, server-provided HTML before any JavaScript runs. friendly4AI strips out <script> and <style> blocks along with the remaining tags, then measures the visible text that's left. Why it counts: most AI crawlers — the ones behind ChatGPT, Perplexity, and Claude — never execute JavaScript. Anything injected client-side simply isn't there for them.

What does this parameter measure?

It estimates how much of your primary content arrives in the initial HTML response, before client-side rendering kicks in. friendly4AI takes the server-provided HTML, removes the <script> and <style> blocks, strips the remaining tags, and measures the length of the visible text that survives.

It also looks for single-page-app (SPA) markers — id="__next", id="root", id="app", framework hooks like ng-app — and loading placeholders. A near-empty shell carrying those markers is a tell: the real content only shows up once the browser renders it.

Why does it matter for AI-readiness?

Most AI crawlers don't run JavaScript. So if your hero copy, product descriptions, pricing, or FAQ answers get injected client-side, those crawlers receive an empty frame and your content stays invisible to ChatGPT, Perplexity, and AI search features. Server-rendered HTML keeps what a human reads identical to what a machine reads, and that's the biggest single factor in whether your content can be cited at all. Heavy client-side rendering is one of the most common reasons a content-rich site still scores poorly on AI-readiness.

How is it scored?

Under the v4.5 methodology this Content Structure parameter is graded on a gradient, using a visible-text-length heuristic rather than a literal rendered-versus-raw comparison. The processor measures the visible text length of the initial HTML and assigns one of three scores:

  • Pass (100): visible text is rich (roughly 1500 characters or more) and the page is not a script-heavy SPA shell. A page does not earn 100 if it shows SPA markers together with more than ten script blocks.
  • Partial (50): visible text is moderate (about 500 characters or more) — a mix of server- and client-rendered content.
  • Fail (0): visible text falls under about 500 characters, which usually points to a JavaScript-dependent layout.

One caveat: the published "≥80% / 50–80% / <50%" rubric is approximated by these character-length thresholds. The processor doesn't render JavaScript, so it can't compute an exact percentage.

How do you fix it?

  • Move to server-side rendering (SSR) or static site generation (SSG) so primary content ships inside the initial HTML response.
  • Running a SPA framework (React, Vue, Angular)? Turn on SSR or pre-rendering for your key pages instead of rendering everything in the browser.
  • Put server-rendering first for hero content, product and pricing copy, and FAQ sections you want AI systems to read.
  • Don't hide core content behind loading placeholders. Text waiting behind a spinner doesn't get counted.
  • Re-scan once SSR is live, and check that the visible-text length and estimated_visibility_pct climb into the pass band.

Related parameters: Semantic HTML, Heading Hierarchy, and Structured Data.

Version History

Introduced
v4.0
Last changed
v4.5

Key takeaways

  • Signal: https://{domain}
  • Category: Content Structure
  • Passes when: the initial HTML carries rich visible text (about 1500+ characters after stri…

Related Parameters

  • Semantic HTML Structure
  • Heading Hierarchy Quality
  • Structured Data

View full methodology changelog · All parameters · GEO/AEO glossary

Suggest a change to this parameter


friendly4AI LogoMaking websites AI-friendly - Your website optimization platform for AI systemsfriendly4AI

The starting point for making your website AI-friendly.

ai@friendly4.ai
ProductsGEO ScannerAI VisibilityMethodologyDemoLeaderboardHow we comparePricing
friendly4AIAbout usBlogFor developersQuickstartAPI referenceContact usFAQsGlossary
LegalTerms and ConditionsPrivacy PolicyAI usage policy
friendly4AI © 2026