LLMO Score checker — measures AI-retrieval readiness of a URL. Part of the Open LLMO Research Initiative.
llmo-checker is a Lighthouse-style CLI that scores how "AI-retrievable" a given URL is. It fetches the page, runs a small set of static checks, and returns a JSON report with a single LLMO Score (0-100) plus per-check scores and notes.
It is intentionally not a full AI-citation simulator. It measures the substrate — the structured signals an AI crawler can extract without running an LLM — so that page authors get a fast, reproducible signal before paying for citation simulations.
v0.1 — Draft. Score weights, check list, and JSON schema may change in v0.2. Pin a specific version if you depend on the JSON shape.
Note: The npm publish is pending account verification. Until the npm release lands, install directly from GitHub.
Run from GitHub with npx (no clone needed):
npx github:open-llmo/llmo-checker https://example.com
npx github:open-llmo/llmo-checker https://example.com --jsonOnce published, the same commands work without the github: prefix:
npx llmo-checker https://example.com # after npm publish
npx llmo-checker https://example.com --jsonOr clone and run locally:
git clone https://github.com/open-llmo/llmo-checker.git
cd llmo-checker
npm install
npm run dev https://example.comRequires Node.js 20+.
| Check | Weight | What it measures |
|---|---|---|
llms-txt |
20 | Presence and structure of /llms.txt per llmstxt.org |
robots-ai |
15 | Explicit posture toward known AI crawlers in /robots.txt (GPTBot, ClaudeBot, CCBot, Google-Extended, PerplexityBot, etc.) |
canonical |
15 | <link rel="canonical"> correctness and hreflang alternates |
jsonld |
20 | JSON-LD structured data presence, parseability, and recognized schema.org @types |
meta |
15 | <title> / <meta name="description"> / OpenGraph / <h1> / <html lang> |
Total weight in v0.1 is 85 (scores normalize to 0-100). Citation Visibility and Chunk Readability are planned for v0.2.
| Band | Score | Meaning |
|---|---|---|
| Green | 85-100 | Well-grounded for AI retrieval |
| Yellow | 65-84 | Needs work — several signals missing or weak |
| Yellow | 40-64 | Poor — significant grounding gaps |
| Red | 0-39 | Critical — page is largely invisible to AI crawlers |
npx llmo-checker https://example.com --json{
"url": "https://example.com/",
"origin": "https://example.com",
"timestamp": "2026-05-24T10:00:00.000Z",
"checkerVersion": "0.1.0",
"scoreVersion": "0.1",
"score": 72,
"checks": [
{
"id": "llms-txt",
"name": "llms.txt presence and structure",
"status": "pass",
"score": 100,
"weight": 20,
"details": { "...": "..." },
"notes": []
}
]
}Each check exits with one of pass / warn / fail / skip. The CLI exits with status 0 if the overall score is ≥ 50, 1 otherwise, and 2 on fetch errors.
These are the indicator categories the v0.1 score covers. Inclusion does not imply causation with downstream AI citation — they are necessary substrate signals that have a clear definition.
- Citation Visibility — whether AI assistants cite the URL (planned v0.2, requires probing)
- Chunk Readability — heuristic readability of extracted chunks (planned v0.2)
- Semantic Structure — JSON-LD, OpenGraph, heading hierarchy (covered by
jsonldandmeta) - AI Crawlability — robots.txt posture toward known AI bots (covered by
robots-ai) - llms.txt — covered by
llms-txt - Markdown Quality — applies only when the page has a Markdown source (planned v0.2)
- Entity Clarity — JSON-LD
@typeOrganization / Person / Book recognition (partially covered byjsonld)
The full draft spec lives at https://llmoframework.com/en/experimental-projects/.
git clone https://github.com/open-llmo/llmo-checker.git
cd llmo-checker
npm install
npm run dev https://example.com
npm test
npm run buildThis is an early Draft. Issues and PRs welcome at https://github.com/open-llmo/llmo-checker/issues.
If you want to propose a new check, open an issue with:
- the signal name and what it measures
- why it predicts AI-retrieval readiness (a paper, a public experiment, or a Lighthouse-style argument)
- proposed weight and scoring rule
MIT — see LICENSE.
Founded and maintained by Ken Imoto as part of the Open LLMO Research Initiative.