Skip to content

Site Audit: add AEO/agent-readiness checks (llms.txt, AI crawlers in robots.txt, markdown alternates, linked JSON-LD) #99

Description

@Santofer

Context

OpenSEO tracks whether AI engines mention a brand (Prompt Explorer / AI visibility). The complementary question the site audit doesn't answer yet: is the site itself readable and citable by AI agents? Two sites with identical rankings can have wildly different agent-readiness, and today none of that surfaces in the audit.

We run audits for several client sites (Morocco + UAE markets) and ended up building these checks outside OpenSEO — proposing them upstream because they feel squarely in scope for "site audits" in 2026. Joost de Valk's recent Astro SEO guide (https://joost.blog/astro-seo-complete-guide/) is a good reference for how mainstream this layer is becoming.

Proposed audit checks (roughly by value/effort)

  1. AI crawlers in robots.txt — parse robots.txt against the known AI user-agents (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended, Applebot-Extended, CCBot, Meta-ExternalAgent, Amazonbot, Bytespider…), and report which are blocked, distinguishing purpose: training vs search-grounding vs user-browse. Blocking Google-Extended while wanting AI Overview visibility is a very common self-inflicted wound — we found a chatbot company blocking 8 AI bots via a default Cloudflare managed robots.txt without knowing.
  2. llms.txt — presence + basic structural validation (H1 title, blockquote summary, ## sections with markdown links) per https://llmstxt.org/.
  3. Markdown alternates<link rel="alternate" type="text/markdown">, per-page .md URLs, and/or content negotiation on Accept: text/markdown.
  4. JSON-LD graph quality — flag flat isolated schema blocks vs a linked @graph with resolvable @id references; check trust-signal properties (publishingPrinciples, copyrightHolder, knowsAbout, SearchAction).
  5. schemamap.xml / schema endpoints (NLWeb-adjacent, early-stage — lowest priority).

Each check is a cheap HTTP fetch + parse; no DataForSEO credits involved.

Why in OpenSEO rather than a separate tool

The audit already fetches robots.txt and pages; these checks reuse that plumbing and give the site audit a differentiator none of the incumbent tools (Semrush/Ahrefs site audits) ship today. It also closes the loop with Prompt Explorer: "you're not cited" → "here's why your site isn't citable".

Offer

We have working heuristics for all five checks (currently Python, used in production against real client sites) and are happy to port them to TypeScript inside the audit feature — ideally starting with a focused first PR covering checks 1+2, if a maintainer confirms the direction (status:spec-first?).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions