{
  "slug": "crawler-readiness",
  "name": "Crawler readiness",
  "aliases": [
    "AI crawler readiness",
    "Crawl-to-citation readiness"
  ],
  "definition": "Whether the pages you want cited are both fetchable in practice and fit to be indexed, log-observed crawling crossed with indexability and orphan status on the same URLs.",
  "category": "Crawl and logs",
  "type": "derived metric",
  "unit": "not defined, the composition does not exist",
  "direction": "neutral",
  "verification": "review",
  "grain": "Would be one judgment per URL if it existed.",
  "dimensions": [
    "url"
  ],
  "requiredFilters": [],
  "sources": [
    "server-logs",
    "site-crawl"
  ],
  "reports": [
    "ai-bot-activity-report"
  ],
  "skills": [
    "ai-crawler-readiness"
  ],
  "verbs": [],
  "rungs": [
    "R1"
  ],
  "levers": [
    "L1",
    "L4"
  ],
  "questions": [
    "Are AI crawlers reaching the content we want cited?",
    "Which citation targets are unreachable?"
  ],
  "caveats": [
    "There is no single readiness number: nothing crosses log hits with indexability and orphan status for you.",
    "Answering a readiness question means running the underlying reads separately and presenting them as separate sections, saying that the per-URL join is not available rather than implying a composed judgment.",
    "The two contributing sources are on different clocks: logs arrive hours to nightly, the crawl runs on its own per-site schedule. Even a manual cross-read compares observations taken at different times.",
    "Absence of a bot in the logs is evidence your logs do not have it, not proof it never came, a weaker claim, and it is made as the weaker one.",
    "No answer-engine crawler has address verification, so the log side of any manual cross-read rests on user-agent strings."
  ],
  "freshness": "per crawl schedule, cadence is set per site; the card names the crawl it read.",
  "failureModes": [
    "Presenting bot fetch counts as readiness or as AI visibility.",
    "Simulating the join by pairing rows from separate tool results and presenting the pairing as a product output.",
    "Reading a page as ready because it is indexable, without log evidence that anything fetched it."
  ],
  "notSameAs": [
    {
      "slug": "bot-hits",
      "why": "Observed bot visits are what was fetched, from server logs. Readiness is a composed judgment over fetching, indexability and orphan status, and that composition is not implemented, so the two must never be presented as the same claim."
    },
    {
      "slug": "incoming-internal-links",
      "why": "Orphan status is one input readiness would need, not readiness itself."
    }
  ],
  "related": [
    "bot-hits",
    "unique-pages-crawled-by-bots",
    "indexability-flags",
    "incoming-internal-links"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}