/** * Page-skip detection helpers used by the auditor pipeline (v0.4.1+). * * Five policy filters live here, each gated by an AuditOption: * - `detectNoindex(page)` honours `` * and `X-Robots-Tag: noindex` HTTP headers. The site owner already told * Google not to index these pages — auditing them produces noise the * reader can't act on. * - `detectAuthPage(page)` heuristically classifies pages as * login / signup / password-reset based on three signals (password input * in a thin body, title matches the auth regex, H1 matches the auth * regex). Two signals are required for a positive verdict, which keeps * the false-positive rate low: a marketing landing page with a single * password input or a single auth-shaped heading won't trip it. * - `detectBoilerplatePage(page)` (v0.4.2) flags cookie / legal / consent / * imprint pages. A single signal is enough because the patterns are * anchored + specific (the title or H1 matches the whole-string compliance * regex, or the URL path is one of the well-known compliance slugs). * - `detectSearchResultPage(page)` (v0.4.2) flags pages that look like * internal search-result URLs (query parameter `q` / `query` / `search` / * `s` / `keyword`, or path under `/search`). Per Google's own guidance * these should be noindex'd — auditing them generates noise. * - `detectEmptyBodyPage(page)` (v0.4.2) flags un-hydrated SPA shells: * body text < 100 chars, script tags present, and no substantive * `