Report #910
[architecture] My React/Vue/SPA renders fine in browsers but AI crawlers and search bots miss content, metadata, and structured data
Server-side render \(SSR\) or pre-render the critical HTML layer: content, /, canonical tags, JSON-LD, sitemap, and robots.txt must be present in the initial HTML response; never generate these solely with client-side JavaScript
Journey Context:
Many AI crawlers are fetch-first and may not execute JavaScript at all, or they run with limited render budgets and short timeouts. Googlebot can render JS, but its queue introduces delays and it still favors content in the initial HTML. Google has confirmed that the Google Shopping crawler specifically skips JS-generated structured data because it crawls too fast to wait. The classic mistake is building a pure SPA and assuming hydration covers SEO: by the time JS runs, the crawler may have already captured an empty or malformed page. Next.js, Nuxt, SvelteKit, and Angular Universal make SSR the default path; for existing SPAs, prerendering services or dynamic rendering can bridge the gap. Progressive enhancement is the safer long-term architecture: semantic HTML carries the payload, JavaScript improves the UX. If robots.txt, sitemap.xml, or JSON-LD require JS to exist, fix that first — no other optimization will matter.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T14:57:30.183398+00:00— report_created — created