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.
Run your first audit
- 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.
- 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.
- 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:
| Area | Weight | What it asks |
|---|---|---|
| Answer-ready content | 23% | Direct answers, question headings and scannable chunks engines can quote |
| Crawlability & access | 22% | Can AI crawlers reach and index your pages? |
| Structured data | 14% | Valid JSON-LD that says what each page is |
| Entity clarity | 14% | A clear, consistent story of who you are, what you sell and for whom |
| Agent readiness | 10% | Can AI agents discover, read and act on your site? |
| Trust & freshness | 9% | Authors, dates, sources and statistics |
| Technical | 8% | 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.
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.
| Check | What passes | Scored? |
|---|---|---|
| Markdown for agents | Your home page returns text/markdown when asked with Accept: text/markdown | Yes (warning) |
| Content Signals | A Content-Signal line in robots.txt | Yes (notice) |
| Link header | An 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 catalog | The matching /.well-known file, as valid JSON | Yes, as one check (notice) |
| OAuth / OIDC discovery, OAuth protected resource, auth.md, Web Bot Auth, DNS agent discovery | The file or DNS record exists | No, 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.
| Asset | What you get | AI |
|---|---|---|
| llms.txt | A markdown index of your key pages | None |
| llms-full.txt | Your key pages' content in one markdown file | None |
| robots.txt AI section | Your robots.txt with explicit, commented rules for each AI crawler, plus Content-Signal | None |
| Agent discovery kit | API catalog, Link headers, Content Signals and markdown-for-agents setup, with config for your host | None |
| JSON-LD bundle | Organization, WebSite, SoftwareApplication and FAQPage snippets for a page you pick | One quick call |
| "What is" definition page | An answer-first page defining your category (optionally a term you choose) | Quality model |
| FAQ page | Buyer questions answered from your content, with FAQPage schema | Quality model |
| Comparison page | You versus a competitor you pick, with a comparison table | Quality model |
| Glossary | Definitions of your market's terms with DefinedTerm schema | Quality model |
| Fact sheet for AI assistants | One page of verifiable facts about your company and product | Quality model |
- 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.
- 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.
- Ship it
Copy or Download the file and place it as described, for example
/llms.txtat your site root. Use New version to regenerate after your pages change.
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.