Your Single-Page App Serves an Empty Page to an AI Crawler
A client-rendered SPA ships an empty <div id="root"> and a script bundle. A browser runs the bundle and paints your content; an AI crawler that does not execute JavaScript reads the raw response and sees nothing. That is the JS-only-shell problem. How to tell what a non-rendering fetch actually receives, the three states of your initial HTML, why "but Googlebot renders JS" does not save you with answer-engine crawlers, and the fix.
Read article →