GEO audit

Check how AI crawlers and agents see your site, answerability scores and the assets that fix gaps.

The GEO audit checks how easily ChatGPT, Perplexity, Gemini, Claude and Google AI Overviews can crawl, understand, trust and quote your site. It reads your pages the way AI crawlers do: without running JavaScript, and through your robots.txt and response headers. It then turns every gap into a finding, a move, and often a file LogNorm can write for you.

The site audit covers classic SEO. The GEO audit covers what AI answer engines and agents need. For what those engines actually say about you, see AI visibility.

Plan feature
The GEO audit and its assets are a plan feature. If your plan doesn't include them, GEO audit shows a lock in the sidebar and the page offers an upgrade. Audits and asset generation use credits; see Credits and billing.

Run your first audit

  1. Analyse your site first

    The audit picks its pages from your site analysis (under Site), so run that first. Without a recent crawl it falls back to links from your home page and your sitemap. The generated assets also need crawled pages to link to.

  2. Open the GEO audit

    Go to GEO audit in the sidebar and click Run GEO audit. It usually takes one to two minutes, and a progress bar shows each stage.

  3. Read the score, then the findings

    Start with the score and Top issues, then work through the Findings tab. Critical and warning findings are already on your backlog as moves.

After your first audit, LogNorm re-runs it every week so the Score history chart fills in. Use Re-run audit at the top of the page whenever you want a fresh result. If a run fails, the page says why and keeps showing the last completed audit.

What the audit looks at

The audit works on two levels:

  • Inspected live. Every key page is fetched and checked in full: home, pricing, about, product, solution, comparison, alternatives, use case, integration and industry pages, up to 300 per audit. Docs, blog and other pages get a representative sample (about 30). Pages deep in one templated section (such as hundreds of integration pages built from one template) share a cap of 24, so one template can't fill the audit.
  • AI read. Every indexable content page, up to 500 per audit, is read by AI for answerability and entity clarity. Legal and careers pages, and very thin pages, are skipped.

The GEO readiness score

The score runs from 0 to 100. It is a weighted blend of seven areas, shown under Score breakdown:

AreaWeightWhat it asks
Answer-ready content23%Direct answers, question headings and scannable chunks engines can quote
Crawlability & access22%Can AI crawlers reach and index your pages?
Structured data14%Valid JSON-LD that says what each page is
Entity clarity14%A clear, consistent story of who you are, what you sell and for whom
Agent readiness10%Can AI agents discover, read and act on your site?
Trust & freshness9%Authors, dates, sources and statistics
Technical8%Metadata, canonicals, headings and image alt text

Scores of 80 and above read AI-ready, 60 to 79 Room to grow, 40 to 59 Needs work, and below 40 Hard for AI to use. Two problems cap the score whatever else you fix, and the page lists them under the score:

  • A noindex on your home page caps the score at 60.
  • Blocking most AI answer-engine crawlers, in robots.txt or at your CDN, caps it at 45.

AI crawler access

The AI crawler access card lists 14 AI crawlers and what your robots.txt tells each one. They come in three kinds, and the difference matters:

  • Answers: search crawlers that fetch pages to cite in live answers, such as OAI-SearchBot, Claude-SearchBot and PerplexityBot.
  • On request: crawlers that open a page when a user asks, such as ChatGPT-User and Perplexity-User.
  • Training: crawlers that collect data for model training, such as GPTBot, ClaudeBot, Google-Extended and CCBot.

Each crawler shows as Allowed (an explicit rule allows it), Unspecified (no rule names it, so it falls back to your generic rules), Partial (allowed, but some key pages are disallowed) or Blocked. Hover the status to see the exact robots.txt lines that decide it.

robots.txt isn't the whole story. The audit also requests your home page with the user agents of the main AI crawlers. If your CDN or firewall returns an error or a challenge page to them while browsers get a normal page, the crawler gets an HTTP badge and you get a critical finding: robots.txt says yes, the firewall says no.

Blocking training crawlers is a choice, not an error
Blocking answer-engine crawlers is critical, because those assistants then can't cite you. Blocking training crawlers is only a notice: it keeps your content out of model training, and models learn less about your brand in return. Decide deliberately.

llms.txt

llms.txt is an emerging convention: a markdown map of your key pages for AI assistants and agents. The llms.txt card shows whether /llms.txt and /llms-full.txt exist. For llms.txt it counts links and sections, rates quality out of five and lists problems, such as a missing # Name title, no > summary line, no ## sections, most links pointing off-site, or links without descriptions. An HTML page served at that address doesn't count.

No usable llms.txt is a warning; no llms-full.txt is a notice. LogNorm can generate both (see Build the fixes).

Answerability and entity clarity

The AI read scores each content page from 0 to 10 on two questions. A page passes at 7:

  • Answerability: can an answer engine lift a direct, self-contained answer from the page?
  • Entity clarity: does the page make plain what the company or product is, what category it belongs to and who it's for? This is scored on every page, but only fails commercial pages: home, product, solution, use case, industry, integration, pricing, about, comparison and alternatives. Articles and docs show it as a meter only.

The read also makes three yes-or-no calls per page, shown as chips in the Pages tab:

  • Answer first or No direct answer: does the page open with a plain answer rather than a slogan or long intro?
  • Quotable or Nothing to quote: is there a self-contained statement or statistic an AI answer could cite?
  • Stale: is the page likely out of date for a reader today, going by its last update or the years, versions and prices it presents as current? Evergreen explanations aren't stale.

On inspected pages, a confident answer-first call overrides the pattern-based "Answer first" check. Question headings that pass the pattern check can still fail if the AI reads them as calls to action rather than real buyer questions. For the pages hardest to quote, the findings include suggested rewrites marked Try:.

Reading the Pages tab

The Pages tab lists every audited page with its type, GEO score, answerability, entity clarity, LogNorm's read and issue counts. Filter by page type or by Inspected live versus AI read only, and sort by Hardest to quote first or Least clear first. Pages marked AI read only have no GEO score, because only their AI checks were run. Click a page to see every check with its evidence and fix.

What "LogNorm's call" means

Findings the AI decided carry a LogNorm's call label with a confidence percentage, and check groups that contain them say AI-judged. They are judgements from the page's content, not measured facts, so check the page before acting. Everything else, from robots rules to JSON-LD validity, is measured directly. AI-judged moves carry lower confidence on your backlog, and because AI calls vary slightly between runs, their moves are only retired after two audits in a row without the issue.

Findings and moves

The Findings tab groups findings by check, sorted by severity (Critical, Warnings, Notices) and then by how many pages they touch. Open a check to see What we found, How to fix, the evidence and the Affected pages. Page checks cover things like content that needs JavaScript, noindex tags and headers, invalid or missing JSON-LD for the page type, missing FAQPage schema, comparison pages without a table, missing author or date, and canonicals.

  • All URLs (CSV) downloads every affected page for a check.
  • Create move adds the check to your backlog. Critical and warning checks become moves automatically after each audit; notices only when you ask. Each check has one move, refreshed on every run.
  • Generate fix appears when LogNorm can build the asset that fixes the check.

When a later audit no longer finds an issue, its move is dismissed as resolved, as long as nobody has started on it. See Moves and ranking.

Agent readiness

AI agents don't just read pages; they look for machine-readable entry points so they can act. The Agent readiness card shows what they find. These checks mirror public scanners such as isitagentready.com, so fixing them here moves those results too.

CheckWhat passesScored?
Markdown for agentsYour home page returns text/markdown when asked with Accept: text/markdownYes (warning)
Content SignalsA Content-Signal line in robots.txtYes (notice)
Link headerAn RFC 8288 Link header on the home page pointing at llms.txt, an API catalog, docs or the sitemap. Preload links don't count.Yes (notice)
API catalog/.well-known/api-catalog (RFC 9727)Yes (notice)
MCP server card, A2A agent card, Agent Skills index, AI catalogThe matching /.well-known file, as valid JSONYes, as one check (notice)
OAuth / OIDC discovery, OAuth protected resource, auth.md, Web Bot Auth, DNS agent discoveryThe file or DNS record existsNo, context only

Items marked info are shown for context and never affect your score. If you have nothing for agents to call, you can skip the protocol files.

Build the fixes

Under the score, the Build the fixes strip ranks the asset types by the findings they would fix, critical first. The Assets tab holds all of them and everything you've generated. Assets are built from your crawled pages, your Company Brain and competitor data.

AssetWhat you getAI
llms.txtA markdown index of your key pagesNone
llms-full.txtYour key pages' content in one markdown fileNone
robots.txt AI sectionYour robots.txt with explicit, commented rules for each AI crawler, plus Content-SignalNone
Agent discovery kitAPI catalog, Link headers, Content Signals and markdown-for-agents setup, with config for your hostNone
JSON-LD bundleOrganization, WebSite, SoftwareApplication and FAQPage snippets for a page you pickOne quick call
"What is" definition pageAn answer-first page defining your category (optionally a term you choose)Quality model
FAQ pageBuyer questions answered from your content, with FAQPage schemaQuality model
Comparison pageYou versus a competitor you pick, with a comparison tableQuality model
GlossaryDefinitions of your market's terms with DefinedTerm schemaQuality model
Fact sheet for AI assistantsOne page of verifiable facts about your company and productQuality model
  1. Generate

    Click Generate on a card, or Generate fix on a finding. Some assets ask for a page or a competitor first; a comparison page needs a competitor on the Competitors page. Pages drafted by the quality model take 20 to 60 seconds.

  2. Review

    Open the asset to preview it or view its code, and read Where it goes. Page drafts can contain TODOs where LogNorm lacked a fact; fill them in before publishing.

  3. Ship it

    Copy or Download the file and place it as described, for example /llms.txt at your site root. Use New version to regenerate after your pages change.

Review the robots.txt asset before replacing yours
It starts from your current robots.txt, and its training-crawler section reflects a choice, not a requirement. Also check the JSON-LD bundle: if AI extraction fails, it still ships without offers or FAQs and marks a TODO.

Validate a fix

After you ship a fix, click Validate fix on the check instead of waiting for the weekly audit:

  • Page checks re-inspect only the affected pages. AI-judged checks re-read those pages with AI.
  • Site-wide checks, such as robots.txt, llms.txt, schema on the home page or agent readiness, show Validate (re-run audit), because checking them means running the whole GEO audit again.

The result reads as how many findings were fixed, how many remain and how many pages couldn't be checked. Fixed findings drop out of the tabs, the CSV and the move. When everything is fixed, the move is marked done; otherwise it's updated to what's left.

Connect it to AI visibility

The In AI answers card shows the share of your tracked prompts that mention you over the last 30 days. When that share is below 40%, the audit adds a notice pointing you to the entity and content fixes above. Set up prompts in AI visibility to see whether your fixes get you mentioned.