When an engine fetches a page in real time to answer a question, it reads the visible HTML. ChatGPT, Claude and Perplexity don't execute JavaScript at that moment (in a December 2025 test by searchVIU, no AI assistant read a price held only in JSON-LD on a live page fetch), so content that only exists after client-side rendering may as well not be there.
This explains a lot of failed AEO tooling. When Ahrefs tracked 1,885 pages that added JSON-LD, against 4,000 matched controls (May 2026), AI citations moved +2.4% on Google AI Mode and +2.2% on ChatGPT, both statistically indistinguishable from zero. Schema on its own didn't move the answer. Hidden AI-only content is structurally useless for the same reason: the engine isn't reading the hidden layer at answer time. It's why the Geoffy widget renders in the DOM, visibly, on the canonical page.