The single biggest improvement most sites can make is server- rendering primary content. AI agents read raw HTML before they render. A page that hides its hero, pricing, or product copy behind a JavaScript bundle gets summarised from the empty shell: usually nav links, a footer, and skeleton placeholders. Agents cite “this site has nothing to do with X” while X is in fact the entire homepage rendered after hydration.
Practical checklist
- SSR or static-generate marketing pages. Hero copy, value props, pricing, CTAs all in the initial HTML response.
- Treat JavaScript as enhancement. The page should be useful with JS disabled. View-source on critical pages should reveal the content.
- Add structured data. JSON-LD
OrganizationandWebSiteon every page; per-page types (Product,Article,FAQPage,BreadcrumbList) where they apply. - Set unique meta.
<title>and<meta name="description">per page.<link rel="canonical">resolves duplicate variants. - Allow AI agents in robots.txt. Explicit
User-agent: GPTBot / Allow: /blocks override inherited wildcards. - Publish
/llms.txt. Curated index of your canonical pages: docs, pricing, API, support, policies.
How to verify
Three free tools. First, fetch your URL with the Agent UA tester. It diffs how ChatGPT, Claude, Perplexity, and a default browser see your page. If the body similarity drops below 0.80 between bots and the browser, that’s cloaking or a JS-only render. Second, validate your structured data with the JSON-LD validator. Third, run a full AgentSpeed scan for an end-to- end report.