{"ok":true,"kind":"crawlcheck-rulebook","v":1,"generated_at":"2026-10-13T10:03:33.339Z","score_version":31,"schema":"https://crawlcheck.io/schemas/rulebook.json","counts":{"rules":86,"by_kind":{"scan":61,"answer_correlation":5,"capability_mismatch":6,"self_audit":12,"mcp_server":2},"by_family":{"site":16,"headers":4,"mostly_code":3,"machine_files":11,"nap":3,"robots":13,"delivery":8,"jsonld":3,"answers":5,"capabilities":6,"self_audit":12,"mcp":1,"watch":1},"revised":7,"scored":57},"scans_counted":3532,"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. Every graded finding lowers the score of its section; an open finding at medium or above also caps the letter grade, so fix those first."},"rules":[{"code":"MOBILE_INTERSTITIAL","kind":"scan","family":{"id":"site","label":"Site, hosts and page"},"title":"A pop-up covers the page on a phone when it loads","meaning":"The homepage was rendered at phone width and, on load, a fixed overlay covered at least half of the first screen. Google treats a pop-up that covers the main content as soon as a visitor arrives from search as an intrusive interstitial, and visitors who wanted the answer leave. Cookie consent and age-verification notices are exempt and are never counted here.","severity":{"level":"medium"},"scored":true,"measured_on":"every scan","revision":{"current":1,"revised_at":null},"fix":{"advice":"Show the pop-up later (after a scroll or on exit), make it a banner that leaves most of the screen free, or remove it on mobile. Consent and age notices may stay.","effort":"build","endpoint":null},"share_of_scans":{"pct":0,"scans":0,"of_scans":3532,"basis":"no counted scan has carried it yet"},"links":{"self":"https://crawlcheck.io/rules#MOBILE_INTERSTITIAL","api":"https://crawlcheck.io/api/rules?code=MOBILE_INTERSTITIAL","glossary":[],"workflow":null,"lineage":"https://crawlcheck.io/docs/lineage-coverage","explain_template":"https://crawlcheck.io/api/explain?id={report_id}&code=MOBILE_INTERSTITIAL"}}],"filter":{"code":"MOBILE_INTERSTITIAL"}}