next:ssr:clean:article

Pattern survival mapping: what 9 LLM surfaces actually see across JS content patterns

By · Published

Article hero image placeholder

We measured what crawlers and on-demand LLM fetch tools actually receive when they request the same page rendered through eight different JS content patterns. This is the v0.4 pivot from the original mode-axis experiment.

Why this question matters now

Most renderability literature was last published in 2019. Since then, three things changed materially: AI crawlers (GPTBot, ClaudeBot, PerplexityBot) became dominant traffic for some niches; on-demand fetch tools (ChatGPT browse, Claude Web, Perplexity Sonar) became a parallel retrieval pathway with different rules; and Bing's rendering behaviour has been a black box since the last MERJ tests.

Method, in two sentences

Eight JS content patterns × five page types × three rendering modes (SSR baseline, CSR negative control, optional SSG sanity) — about 50 cells. Each cell is hit by 25+ user-agent classes (batch crawlers, on-demand LLM fetchers, search-RAG bots) and every hit is logged with the marker UUID it actually saw.

Pre-registered hypotheses

Six hypotheses were committed before any v0.4 data was collected (see METHODOLOGY.md §1.5):

  1. H1 (sanity): ssr/cleanssg/clean for batch crawlers.
  2. H2: ssr/clean fully visible to all batch AI crawlers.
  3. H3 (main test): patterns js-images, js-links, click-reveal, js-fetched, hash-routing, late-loaded produce invisible main content to batch crawlers.
  4. H4: Googlebot eventually renders all patterns, with measurable per-pattern delay.
  5. H5: On-demand fetch tools — exploratory; GPTBot vs ChatGPT-User split for the same pattern is the watched signal.
  6. H6: Bing's pattern survival is inconsistent — first systematic data since 2019.
  • Pattern survival per bot class — early findings
  • Bing rendering revisited: first systematic data since 2019
  • On-demand vs batch pathway: GPTBot vs ChatGPT-User