Chapter 3. Technical Implementations
I got a call last year from a software-as-a-service (SaaS) company that, on paper, was doing almost everything right from an AI search perspective.
Search, social, and PR teams were collaborating regularly. Content teams were producing high-quality original research. Design had redesigned the blog template to surface key answers earlier on the page. The site was earning hundreds of third-party mentions every week from respected industry sites, communities, and forums. And traditional search performance was at an all-time high.
All really great stuff.
But here was the problem. When you asked ChatGPT or Perplexity questions about their brand or category, they were barely there. Not “they showed up after a few tries,” barely there. More like zero meaningful mentions, zero citations, zero evidence that the answer systems understood they were an authority in the space.
So I took a closer look, starting with the crawl data, server logs, and the raw HTML those systems were actually receiving.
And there it was.
A huge portion of the site was built as a client-side React application. In a browser, the content looked gorgeous because JavaScript rendered everything after the page loaded. But for AI crawlers and retrieval systems that don’t reliably execute JavaScript, the initial HTML exposed little more than an app shell: an empty root div, scripts, and a loading state.
In other words, while the content was accessible to humans (via browser) and for ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access