What this checks, and what it can’t
GEO (generative engine optimization) is the work of making pages that AI answers can find, read and quote. Nobody outside OpenAI, Anthropic, Perplexity or Google can see how their systems rank sources, and any tool that claims a “ChatGPT ranking score” is guessing. This checker does something narrower and verifiable: it tests the things that decide whether an AI product can use your page at all.
The checklist, by weight
- AI search crawlers allowed (20 points). We read your live robots.txt for OAI-SearchBot, Claude-SearchBot, PerplexityBot and the user-triggered fetchers (ChatGPT-User, Claude-User, Perplexity-User). Training bots are listed but not scored: blocking them is a legitimate business choice.
- Googlebot and Bingbot allowed (10). Google’s AI Overviews and AI Mode draw on Google’s index, and Copilot on Bing’s.
- Main content in the server HTML (20). We count the words in the page’s main content without running any JavaScript.
- Indexable (10), headings (8), JSON-LD (8), title and description (7), a date signal (3). The basics that help any system understand what a page is and whether it’s current.
- llms.txt (8), llms-full.txt (2) and a Markdown version (4). Optional extras. We look for a .md twin (as the llms.txt proposal describes) and for Markdown served on
Accept: text/markdown, which Cloudflare’s Markdown for Agents does.
How to use the result
Fix access first: a blocked bot or an empty HTML shell makes everything else irrelevant. Then make the page easy to quote: one clear H1, H2s that match the questions people ask, short answers near the top of each section, and structured data that names the entity. Check what a non-JavaScript reader gets with the webpage to Markdown converter, and review every crawler rule with the AI crawler checker.
A high score means the door is open. Whether you get cited still depends on what the page says, how specific and sourced it is, and whether other sites point to it.