You shipped a polished single-page app, the marketing copy is sharp, and still: search barely mentions you, and when someone asks ChatGPT for tools like yours, your name never comes up. The product is fine. The problem is what the crawlers can read.
What a crawler actually sees
Most single-page apps ship an almost empty HTML file: a root div and a bundle of JavaScript that builds the page in the browser. A person with a fast laptop never notices. A crawler often does, because it reads the raw HTML first and decides what your page is about from that.
Google can run JavaScript, but it does so on a slower second pass that it rations across the web, so fresh or deep pages can wait weeks or get skipped. The crawlers behind ChatGPT, Claude, and Perplexity are stricter still: many read the HTML and move on without running your JavaScript at all. If your words only exist after the bundle runs, those readers never see them.
Render the page before it reaches the browser
The fix is to send real HTML from the server. With a framework like Next.js you can render each page ahead of time or on request, so the crawler receives your headings, copy, and links in the first response, and the browser still hydrates it into a fast app afterwards.
We hit this on our own site. Early on it was client-rendered, and view-source showed almost nothing. We moved it to server-rendered pages, and the same content users saw was suddenly in the HTML that crawlers read first.
How to check your own site
You do not need special tools. Two quick checks tell you most of what you need:
- Open the page, then View Source (not the inspector, which shows the built page). If your headline and body copy are not in that raw HTML, crawlers probably cannot see them either.
- Fetch the page the way a bot would, for example curl the URL, and read what comes back. An empty shell means client-only rendering.
If the content is missing, server rendering is usually the highest-leverage fix you can make for both search and AI answers. It is the same content either way. The only question is whether it arrives in time to be read.