{"ok":true,"data":{"id":"answerready-evidence-rubric","version":"2026-07-11.1","scoreRange":{"minimum":0,"maximum":100},"statusFactors":{"pass":1,"warn":0.5,"fail":0},"evidenceRequired":true,"evidenceRule":"Every criterion must have at least one bounded observation with a source URL, method, observed value, and validation state before a score is emitted.","categories":[{"id":"ai-discovery","name":"AI Discovery","description":"Public files and policies that let answer engines discover the site.","weight":20,"criteria":[{"id":"llms-txt","label":"llms.txt is available","categoryId":"ai-discovery","weight":6,"rationale":"A concise, root-level content map gives answer engines an explicit discovery surface.","fix":"Publish /llms.txt with an accurate summary and links to the site’s most useful public pages."},{"id":"llms-full","label":"llms-full.txt is available","categoryId":"ai-discovery","weight":3,"rationale":"A bounded full-text companion gives agents richer context without scraping the entire site.","fix":"Publish /llms-full.txt with the complete, current text of the most important public content."},{"id":"ai-crawlers","label":"AI crawler policy is explicit","categoryId":"ai-discovery","weight":5,"rationale":"Explicit crawler rules are more trustworthy than assuming access from an absent policy.","fix":"Declare intentional rules for major AI crawlers in robots.txt and avoid accidental site-wide blocks."},{"id":"mcp-manifest","label":"MCP discovery manifest is valid","categoryId":"ai-discovery","weight":3,"rationale":"A valid MCP manifest advertises real, agent-operable capabilities.","fix":"Publish a valid /.well-known/mcp.json that points to a working JSON-RPC MCP endpoint."},{"id":"agents-policy","label":"Agent policy is published","categoryId":"ai-discovery","weight":3,"rationale":"A machine-readable agent policy defines safe public and protected behavior.","fix":"Publish /.well-known/agents.json with accurate public, protected, and prohibited operations."}]},{"id":"crawlability","name":"Crawlability","description":"Signals that let crawlers safely find, select, and index canonical pages.","weight":20,"criteria":[{"id":"robots","label":"robots.txt is available","categoryId":"crawlability","weight":4,"rationale":"robots.txt is the baseline crawl-policy surface.","fix":"Publish /robots.txt with intentional crawler rules."},{"id":"sitemap","label":"XML sitemap is available","categoryId":"crawlability","weight":6,"rationale":"A valid sitemap provides bounded, explicit URL discovery.","fix":"Publish /sitemap.xml or /sitemap-index.xml with canonical public URLs."},{"id":"sitemap-in-robots","label":"robots.txt references the sitemap","categoryId":"crawlability","weight":2,"rationale":"The reference joins crawl policy and URL discovery.","fix":"Add a Sitemap: line with the canonical absolute sitemap URL."},{"id":"canonical","label":"Canonical URL is declared","categoryId":"crawlability","weight":4,"rationale":"Canonical selection reduces duplicate and conflicting source identities.","fix":"Add a canonical link that resolves to the preferred public URL."},{"id":"indexable","label":"Page is indexable","categoryId":"crawlability","weight":4,"rationale":"A page cannot be cited consistently if page-level policy blocks indexing.","fix":"Remove unintended noindex directives from HTML and response headers."}]},{"id":"structured-meaning","name":"Structured Meaning","description":"Machine-readable semantics used for entities, previews, and API discovery.","weight":20,"criteria":[{"id":"json-ld","label":"JSON-LD is syntactically valid","categoryId":"structured-meaning","weight":7,"rationale":"Valid JSON-LD is the strongest page-level machine-readable entity signal.","fix":"Add valid schema.org JSON-LD and validate every emitted block."},{"id":"json-ld-types","label":"JSON-LD identifies useful entity types","categoryId":"structured-meaning","weight":3,"rationale":"Typed entities are more useful than syntactically valid but untyped graphs.","fix":"Use purpose-specific types such as Organization, Article, Product, FAQPage, or WebApplication."},{"id":"og-tags","label":"Open Graph metadata is complete","categoryId":"structured-meaning","weight":4,"rationale":"Stable title, description, image, and type metadata improve source previews.","fix":"Publish og:title, og:description, og:image, and og:type."},{"id":"twitter-card","label":"Social card metadata is available","categoryId":"structured-meaning","weight":2,"rationale":"A card declaration supports consistent previews across secondary discovery channels.","fix":"Add twitter:card and related title, description, and image metadata."},{"id":"api-schema","label":"Machine-readable API schema is available","categoryId":"structured-meaning","weight":4,"rationale":"OpenAPI or MCP discovery lets agents verify available operations instead of guessing.","fix":"Publish a valid OpenAPI document or MCP discovery manifest."}]},{"id":"answer-quality","name":"Answer Quality & Trust","description":"Content, attribution, and freshness signals that support defensible citations.","weight":25,"criteria":[{"id":"title","label":"Title is descriptive","categoryId":"answer-quality","weight":4,"rationale":"A concise title establishes the page’s primary answer context.","fix":"Use a unique, descriptive title of roughly 15–65 characters."},{"id":"description","label":"Description summarizes the page","categoryId":"answer-quality","weight":4,"rationale":"A useful description provides a compact statement of intent and scope.","fix":"Add a specific 50–165 character meta description."},{"id":"h1","label":"A single primary heading is present","categoryId":"answer-quality","weight":3,"rationale":"One clear H1 gives parsers a stable primary topic.","fix":"Use one H1 that states the page’s main subject."},{"id":"depth","label":"Content has useful depth","categoryId":"answer-quality","weight":4,"rationale":"Substantive visible text is more likely to contain answerable, citable detail.","fix":"Add original, answer-oriented content; use 300 words as a diagnostic floor, not filler."},{"id":"answer-structure","label":"Content exposes answer structure","categoryId":"answer-quality","weight":3,"rationale":"Question headings, lists, tables, and FAQ markup make answer units easier to extract.","fix":"Use descriptive subheadings and appropriate lists, tables, or FAQ markup where they serve readers."},{"id":"authorship","label":"Authorship or publisher is attributable","categoryId":"answer-quality","weight":3,"rationale":"Attribution supports provenance and confidence in a citation.","fix":"Identify the author or publisher in visible content and structured data."},{"id":"citations","label":"Claims link to supporting sources","categoryId":"answer-quality","weight":2,"rationale":"Outbound source links provide inspectable provenance for factual claims.","fix":"Link material claims to primary or authoritative sources where appropriate."},{"id":"freshness","label":"Freshness is machine-readable","categoryId":"answer-quality","weight":2,"rationale":"Published or modified dates help engines reason about time-sensitive claims.","fix":"Expose datePublished/dateModified or a semantic time element when freshness matters."}]},{"id":"reach-ux","name":"Reach & UX","description":"Syndication, locale, transport, mobile, and response-time readiness.","weight":15,"criteria":[{"id":"lang","label":"Document language is declared","categoryId":"reach-ux","weight":2,"rationale":"Language metadata improves parsing, accessibility, and locale selection.","fix":"Set the html lang attribute to the document’s actual language."},{"id":"feed","label":"RSS or Atom feed is available","categoryId":"reach-ux","weight":3,"rationale":"Feeds provide durable, incremental discovery for changing content.","fix":"Publish RSS or Atom and link it from the page with rel=alternate."},{"id":"viewport","label":"Mobile viewport is configured","categoryId":"reach-ux","weight":2,"rationale":"Mobile usability affects both readers and mobile-first indexing.","fix":"Add a responsive viewport meta tag."},{"id":"speed","label":"Primary HTML responds promptly","categoryId":"reach-ux","weight":5,"rationale":"Fast server response improves crawl efficiency and user access.","fix":"Reduce TTFB with caching, a CDN, and bounded server work."},{"id":"https","label":"Final page uses HTTPS","categoryId":"reach-ux","weight":3,"rationale":"Secure transport is a baseline trust and integrity requirement.","fix":"Redirect HTTP to HTTPS and serve a valid certificate."}]}]}}