The GEO Audit: A Step-by-Step Guide to Making Your Pages Citable
A GEO audit checks whether AI engines can reach, read, and reuse your pages. The full checklist: access, robots, rendering, structure, and content readiness.
A GEO audit answers one question systematically: can AI engines reach, read, and reuse your pages? Content strategy gets the attention, but a large share of AI invisibility is mechanical, a firewall rule, a robots directive, a JavaScript-only render, and mechanical failures are silent. The engines do not send error reports. Your pages simply never enter the answers, and no amount of writing fixes a page that retrieval cannot see.
Run the audit before investing in content. It is the cheapest visibility work you will ever do, and it ends the guessing about which layer is broken.
Stage 1: Access
Can an AI crawler physically fetch the page?
- Fetch key pages as the bots do. Request them with AI user agents (GPTBot, ClaudeBot, PerplexityBot) and confirm 200 responses with full HTML. A curl with a spoofed user agent approximates it; watching verified real visits settles it.
- Check the security stack. CDNs and WAFs ship bot-management defaults that block AI crawlers without anyone choosing to. Review firewall events for the documented AI user agents; Cloudflare's own reporting on crawler behavior shows how contested and configurable this layer has become.
- Confirm no geo, rate, or interstitial walls stand between bots and the pages you want cited.
Stage 2: Robots policy
Is your robots.txt saying what you intend?
- Audit against the current agent list. OpenAI, Anthropic, and Perplexity each run separate training, search, and live-fetch agents, per the OpenAI and Perplexity docs. Blanket blocks written a year ago against "AI bots" often block the search agents that create visibility while missing the training agents they meant to stop. The distinctions and a sane template live in our AI crawler guide.
- Validate syntax against the standard. Robots parsing follows RFC 9309 and Google's documented interpretation; malformed groups and conflicting rules produce behavior you did not write.
- Remember Google's split: Google-Extended governs Gemini training only; regular Googlebot feeds search and the AI surfaces on top of it.
- Treat llms.txt as optional. It costs an hour and proves nothing yet; the evidence, and a way to test it on your own site, is in our llms.txt review.
Stage 3: Rendering and readability
Does the fetched HTML contain the content?
- Read your pages with JavaScript disabled. Most AI fetchers consume delivered HTML without executing scripts. If the substance appears only after client-side rendering, the bots receive a shell.
- Check the response weight and noise. Content buried under kilobytes of boilerplate, cookie markup, and navigation parses worse than clean documents where the main content dominates.
- Verify canonical and metadata sanity. Conflicting canonicals and stray noindex directives silently disqualify pages from the indexes retrieval draws on.
Stage 4: Structure and extraction
Can a machine lift the answer out of the page?
- Answer first. Every target page should resolve its core question in the opening paragraphs, declaratively. Models cite passages, and the passage that answers cleanly wins, consistent with the tactics validated in the GEO paper.
- Use real structure. Descriptive headings, lists for enumerable things, defined terms. Structure is the extraction API.
- Mark up entities. Schema.org types for organization, product, and FAQs remove ambiguity about who and what the page describes.
- Make claims attributable. Statistics with named sources and quotable statements give engines material they can reuse with attribution.
Stage 5: Content readiness
Do you have pages worth retrieving for the prompts you care about?
- Map pages to prompts. For each prompt group in your set, which URL should the engine cite? Gaps here, especially on comparison prompts, are the most common content-side finding.
- Check the comparison surface. Honest alternatives and versus pages match buyer questions engines answer constantly.
- Audit freshness on cited topics. Retrieval favors current pages for time-sensitive queries; stale dates cost selection.
Make the audit a loop
A GEO audit run once is a snapshot that starts aging immediately. Robots files change, CDNs update bot rules, engines add crawlers, teams ship JavaScript. Two disciplines make it durable: schedule re-audits so drift gets caught, and pair the audit with output measurement, mention and citation rates over repeated runs, so you can see whether mechanical fixes actually moved answers, per the method in why AI answers change. The pipeline logic connecting the two ends is laid out in a crawler visit is not a citation.
FAQ
How often should I run a GEO audit? Quarterly as a floor, plus after any infrastructure change: new CDN, redesign, framework migration, robots edits.
Is a GEO audit different from a technical SEO audit? They overlap on crawlability and structure. The GEO audit adds AI-specific layers: per-agent robots policy, JavaScript-free readability, extraction structure, and the prompt-to-page mapping.
What's the most common failure you see? Security layers silently blocking AI crawlers, followed by robots files that block search agents while intending to block training. Both are invisible until someone checks.
Run the audit without the spreadsheet
Citlyze's GEO audits check crawler access, robots policy, and content readiness against your actual pages, and pair the results with live crawler analytics so you see fixes take effect. Start with AI crawlability audits, guided setup in the docs.