{"ok":true,"kind":"crawlcheck-rulebook","v":1,"generated_at":"2026-10-07T17:45:57.765Z","score_version":28,"schema":"https://crawlcheck.io/schemas/rulebook.json","counts":{"rules":77,"by_kind":{"scan":52,"answer_correlation":5,"capability_mismatch":6,"self_audit":12,"mcp_server":2},"by_family":{"site":8,"headers":4,"mostly_code":3,"machine_files":11,"robots":13,"delivery":8,"jsonld":3,"nap":2,"answers":5,"capabilities":6,"self_audit":12,"mcp":1,"watch":1},"revised":7,"scored":48},"scans_counted":3137,"severity_scale":[{"level":"info"},{"level":"low"},{"level":"medium"},{"level":"high"},{"level":"critical"}],"method":{"revisions":"A rule that changes what it reports gets a new revision; a record keeps the revision that decided it, and a replay uses that revision, never today's.","share":"Share of counted scans that carried the code at least once, the same numbers /data publishes. Self-scans and opted-out sites are never counted.","grade":"Each finding has a level from info to critical. Open findings at medium and above lower the letter grade; fix them first."},"rules":[{"code":"ORIGIN_BLOCKED_BEHIND_CACHE","kind":"scan","family":{"id":"site","label":"Site, hosts and page"},"title":"A security layer refused this file — source unconfirmed","meaning":"The cached copy is fine; behind it the origin refused this request. IMPORTANT LIMIT: a scanner runs from one IP, and application firewalls block by IP reputation — so this may mean the site refuses crawlers, or it may only mean the site refuses THIS scanner. The two are indistinguishable from outside. Confirm in the server access logs, grouped by source IP, before acting on it.","severity":{"level":"medium"},"scored":true,"measured_on":"every scan","revision":{"current":1,"revised_at":null},"fix":{"advice":"The cached copy works but the origin refuses. Fix the origin block before the cache expires, or the next miss serves the block to everyone.","effort":"config","endpoint":null},"share_of_scans":{"pct":0.2,"scans":7,"of_scans":3137,"basis":"share of counted scans that carried it; the same numbers /data publishes"},"links":{"self":"https://crawlcheck.io/rules#ORIGIN_BLOCKED_BEHIND_CACHE","api":"https://crawlcheck.io/api/rules?code=ORIGIN_BLOCKED_BEHIND_CACHE","glossary":["https://crawlcheck.io/glossary/edge-cache","https://crawlcheck.io/glossary/cache-buster"],"workflow":null,"lineage":"https://crawlcheck.io/docs/lineage-coverage","explain_template":"https://crawlcheck.io/api/explain?id={report_id}&code=ORIGIN_BLOCKED_BEHIND_CACHE"}}],"filter":{"code":"ORIGIN_BLOCKED_BEHIND_CACHE"}}