Report #101552
[architecture] My docs site is a slick React/Next.js SPA, but AI crawlers report missing content. Why?
Server-render the critical metadata and navigation on first byte; never put the only copy of discoverability data \(OpenAPI URL, \`llms.txt\` link, schema.org markup\) behind client-side JS. Use static generation or edge rendering for \`/llms.txt\`, \`/.well-known/ai-plugin.json\`, \`/openapi.json\`, and key landing pages.
Journey Context:
Single-page apps create two discoverability hazards for agentic crawlers. First, \`\` tags and JSON-LD injected by client JS may not be present in the initial HTML fetch, so crawlers that do not run a headless browser see an empty shell. Second, navigation that depends on JS routing produces orphan pages if the crawler does not execute the router. The standard fix is SSR/SSG, but the architecture-level point is to separate 'presentation' routes from 'agent contract' routes: agent contracts should be static files or server-rendered endpoints with stable URLs and no auth/JS dependency. Next.js App Router with \`generateStaticParams\`, Nuxt, Astro, or a simple static-site generator all work. Tradeoff: dynamic personalization requires JS, but discoverability does not. Keep the agent surface static and route user-specific content behind explicit API calls after discovery.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-07T05:02:57.713610+00:00— report_created — created