Manifest position 137 · CrUX rank bucket 1000

https://www.pornhub.org

Coverage complete

Coverage-complete report-mode audit. The .org start URL redirects to .com and presents a mandatory age gate; the gate, underlying homepage, listing/detail templates, login modal, and invalid-route recovery were inspected.

Attempts
1 / 3
Judged checks
58 / 58
Blocked
0
Not run
0
This report has no published overall score. Blocked and not-run checks are not passes. A coverage-complete report means every check has a judged outcome; it does not mean every check passed.

All 58 atomic check outcomes

Principle / checkStatusConfidenceEvidence or reason
respect-user-preferences
respects-color-scheme
issueshighLight and dark emulation produced byte-identical 99,208-byte screenshots; the DOM/CSS probe found no color-scheme, prefers-color-scheme, or light-dark() usage.
F-001 low: Theme is fixed rather than preference-driven
respect-user-preferences
respects-reduced-motion
passhighReduced-motion emulation matched true and getAnimations() returned zero active animations during the gate state.
respect-user-preferences
respects-contrast
issueshighCSS inspection found no prefers-contrast or forced-colors rules, so custom orange, grey, and black controls have no explicit high-contrast adaptation.
F-002 medium: High-contrast preferences are not handled
implement-natural-interactions
view-transitions
issueshighThe age-gate interaction video shows the modal disappearing into the content grid without a directional or continuity transition; CSS contains no authored view-transition rules.
F-003 low: State changes are abrupt
implement-natural-interactions
scroll-driven-animations
not-applicablemediumNo parallax, scrollytelling, or entry/exit reveal behavior was observed on the age gate or representative feed state, so there is no scroll-linked effect to implement.
implement-natural-interactions
physical-gestures
not-applicablemediumNo swipe, pull-to-reveal, carousel, or other gesture-driven primary interaction was present in the audited entry, listing, detail, or login surfaces.
provide-guided-navigation
scroll-state-aware-chrome
issueshighThe post-gate screenshot shows a long card feed with static navigation, while CSS inspection found no scroll-state container query or progress affordance.
F-004 low: Long-feed navigation is not scroll-state aware
provide-guided-navigation
anchored-positioning
issueshighThe main navigation exposes multiple dropdown menus, but CSS inspection found no anchor-name, position-anchor, or position-try usage.
F-005 low: Menus do not use resilient anchor positioning
provide-guided-navigation
directs-attention
issueshighThe age-gate flow swaps directly to a dense grid and CSS contains no view-transition, highlight, or scroll-marker styling to orient the user.
F-006 low: Navigation state changes provide little attention guidance
maximize-content-reduce-noise
no-intrusive-interruptions
passhighThe blocking surface is a legally necessary age gate with clear Enter and Exit actions; cookie controls include an essential-only option.
maximize-content-reduce-noise
semantic-dismissible-primitives
issueshighDOM inspection found zero dialog, popover, or details elements even though the page uses an age gate, cookie controls, login modal, and dropdowns.
F-007 medium: Overlays are custom div-based widgets
maximize-content-reduce-noise
reduced-chrome
issueshighThe post-gate first viewport contains two ad cards and repeated Remove Ads controls among content cards, plus a full-width cookie-choice nag at the bottom.
F-008 medium: Ads and repeated controls crowd the content grid
adapt-to-the-form-factor
responsive-no-horizontal-scroll
issueshighAt 360x800, the heading, explanatory copy, law-enforcement link, and under-18 button extend beyond the right edge even though the body reports zero horizontal overflow, making the clipped content unreachable.
F-009 high: The mobile age gate is visibly clipped
adapt-to-the-form-factor
component-level-responsiveness
issueshighCSS inspection across homepage, listing, and detail templates found no @container or container-type rules despite cards and overlays appearing in several widths.
F-010 medium: Reusable UI relies on viewport styling only
adapt-to-the-form-factor
input-modality-aware
issueshighThe focus probe found no outline or box shadow on cookie buttons and search; many visible links are only 15-22px high.
F-011 high: Keyboard focus and touch sizing are inconsistent
support-core-task-success
clear-purpose-and-primary-action
passhighThe first viewport states This is an adult website and presents explicit Enter and Exit actions.
support-core-task-success
primary-flow-completion
issueshighAt 360px, the under-18 exit action and portions of the legal text are clipped off-screen, so the required entry/exit choice is not fully available.
F-012 high: The required age-confirmation flow breaks on mobile
support-core-task-success
clear-system-state-and-recovery
passhighThe gate explains why progress is blocked and provides Exit, parental-controls, terms, and law-enforcement routes.
be-fast-and-stable
good-core-web-vitals
issueshighLighthouse measured LCP 8.8s, FCP 3.9s, TTI 9.7s, and CLS 0.095 (performance score 0.61); the trace independently measured LCP 3.17s.
F-013 high: Cold-load performance misses the Core Web Vitals bar
be-fast-and-stable
visual-stability
issueshighThe 360px layout observer recorded CLS 0.102 from a shift at about 4.83s; the desktop observer recorded 0.056.
F-014 medium: Late content shifts the mobile layout
be-fast-and-stable
efficient-main-thread
passhighTrace recorded zero long tasks and 0ms total blocking time over 6.36s; Lighthouse TBT was 46ms.
be-fast-and-stable
efficient-resource-delivery
issueshighHAR captured 173 requests and 5.27MB transferred, including 11 stylesheets, 40 scripts, ten parser/high-priority render-blocking candidates, and a 1.9MB document response.
F-015 high: The entry experience has a heavy critical network path
be-fast-and-stable
trim-unused-and-duplicate-code
issueshighLighthouse estimated 288KiB unused JavaScript and 74KiB unused CSS; three tag-manager bundles account for most unused JS.
F-016 high: Substantial unused code ships before the core task
be-inclusive
names-roles-labels
issueshighLighthouse found multiple visible ad iframes without titles and a User Icon button whose accessible name does not include its visible Log in label.
F-017 high: Embedded ads and controls expose incorrect accessible names
be-inclusive
sufficient-contrast
passhighLighthouse color-contrast audit passed; white/grey text and orange controls remain legible against black in captured views.
be-inclusive
structure-and-focus
issueshighThe gate has no h1 and the DOM probe found no main/nav landmarks; several cookie and search controls focus with no visible outline.
F-018 high: Landmarks and focus treatment do not provide a reliable keyboard path
be-inclusive
legible-text
issueshighThe 360px screenshot cuts multiple lines at the right edge, including the heading and legally important age text.
F-019 high: Mobile text is clipped and cannot reflow
be-inclusive
zoom-reflow-targets-and-media
issueshighLighthouse found a viewport declaration with maximum-scale=1 and user-scalable=no; the focus probe also found many sub-24px-high targets.
F-020 high: Mobile zoom is disabled on a served variant
follow-best-practices
no-console-errors
issueshighLighthouse captured TypeError: Cannot read properties of null (reading addEventListener) in setInstallButton at homepage line 4546.
F-021 medium: The homepage throws an uncaught exception
follow-best-practices
sound-document-and-assets
issueshighThe image audit found three images without width/height, 33 without srcset, and 17 legacy-format assets, although doctype and UTF-8 are valid.
F-022 medium: Image delivery is structurally incomplete
follow-best-practices
browser-platform-hygiene
issueshighLighthouse reported an unload listener, deprecated Cast-control CSS, two deprecation warnings, inspector cookie issues, and four BFCache failure reasons.
F-023 medium: Deprecated APIs and BFCache blockers remain
be-discoverable
title-and-description
issueshighHomepage, listing, detail, and login recon all rendered title Pornhub; no meta description was present.
F-024 high: Public templates expose generic metadata
be-discoverable
crawlable-and-mobile-friendly
issueshighThe homepage declares noindex,nofollow, 30 anchors have empty/javascript hrefs, Lighthouse found uncrawlable anchors, and /robots.txt returns the homepage HTML.
F-025 high: Crawler and mobile signals are broken
be-discoverable
canonical-and-indexing-signals
issueshighThe .org URL redirects to .com, the homepage canonical points to .com but also says noindex,nofollow, /robots.txt returns HTML, and /sitemap.xml returns 404.
F-026 high: Canonical, sitemap, and indexing policy are inconsistent
be-discoverable
structured-and-shareable-metadata
issueshighThe inspected video detail rendered no JSON-LD, Open Graph, Twitter, or hreflang metadata and retained the generic Pornhub title.
F-027 medium: Content/detail pages lack rich metadata
be-private-and-secure
secure-transport-and-headers
issueshighHeaders evidence found no CSP or X-Content-Type-Options; cookies evidence found the rp cookie not Secure and SameSite=None. HSTS is present.
F-028 high: Transport is HTTPS but baseline defenses are incomplete
be-private-and-secure
data-minimisation-and-third-parties
issueshighTracker capture found 13 third-party origins including Google Tag Manager and DoubleClick; HAR recorded 171 cross-origin requests and 5.27MB before age confirmation.
F-029 high: Tracking and ad-tech load before the user enters
be-private-and-secure
in-context-permissions-and-modern-auth
passhighNo permission prompt appeared on load; the sign-in modal exposes labelled identity-provider and email/password choices with correct email/current-password autocomplete.
be-private-and-secure
defensive-browser-policies
issueshighHeaders evidence found no CSP, nosniff, Referrer-Policy, or Permissions-Policy; X-Frame-Options and HSTS are present.
F-030 high: Several browser-enforced policies are absent
be-resilient
progressive-enhancement
issueshighDiscoverability measured only 30-35% rendered-word coverage in raw HTML; listing/login URLs collapse to the generic homepage/gate and core navigation depends on scripted controls.
F-031 high: Core content and route identity degrade without JavaScript
be-resilient
resilient-runtime-behaviour
issueshighThe required modal clips content on mobile, /login collapses to the homepage gate before entry, and the homepage throws an uncaught listener exception.
F-032 high: Runtime behavior is fragile at the entry boundary
be-resilient
offline-and-installable
not-applicablemediumThis is an intrinsically online streaming and account service; installability/offline playback was not treated as a required core capability.
be-resilient
network-and-http-failure-states
passhighA deliberately invalid route returns the user to the homepage/gate with a usable Home recovery path rather than a blank shell.
be-internationalised
lang-dir-and-logical-properties
issueshighThe page offers many languages and sets lang=en, but has no dir attribute, no logical CSS properties, and at least 16 physical left/right declarations in the inspected CSS.
F-033 medium: Language support is not backed by bidi-resilient layout
be-internationalised
locale-aware-data
not-applicablemediumThe audited gate, listing, detail shell, and login modal displayed no dates, currencies, or locale-sensitive numbers requiring formatting.
be-internationalised
time-zone-correctness
not-applicablemediumNo events, schedules, stored times, or recurring time concepts were present in the representative surfaces.
be-trustworthy
no-dark-patterns
issueshighAfter Accept Only Essential Cookies, a persistent banner says features may be unavailable and recommends Accept All Cookies, weakening the user’s choice.
F-034 medium: Rejecting optional cookies triggers a nag to accept all
be-trustworthy
humane-error-handling
issueshighThe login modal has email/password autocomplete tokens, but submitting empty fields produced no :invalid elements, no aria-invalid state, no live-region message, and no visible error text.
F-035 medium: Empty sign-in submission gives no actionable feedback
be-trustworthy
trustworthy-input-assistance
passhighLogin inspection found autocomplete=email and autocomplete=current-password, labelled fields, and a password visibility control.
be-trustworthy
safe-commercial-and-account-flows
passhighThe login modal clearly identifies available providers, states regional registration limits, and does not hide a commitment or continuity action.
be-sustainable
optimised-assets
issueshighThe image audit found 33 of 37 images without srcset and 17 legacy-format images; three images lack dimensions.
F-036 medium: Image formats and responsive delivery waste bytes
be-sustainable
no-wasteful-work
issueshighBefore entry, HAR recorded 173 requests, 38 XHR/fetches, 78 images, and 5.27MB; underlying feed assets and analytics are loaded behind the blocking gate.
F-037 high: The gate loads the full feed, ads, and analytics in the background
be-sustainable
third-party-and-media-budget
issueshighHAR attributes virtually all transfer from the .org start URL to cross-origin hosts after redirect, including about 1.0MB from TrafficJunky and 468KB from Google Tag Manager.
F-038 high: Third-party cost dominates the initial budget
be-agent-ready
structured-agent-capabilities
not-applicablemediumNo developer intent requests agent-facing commerce or task APIs; exposing adult-content actions to agents would require a separate explicit safety design.
be-agent-ready
on-device-inference
not-applicablemediumNo summarisation or language-model task is part of the core audited journey, so on-device inference is not presently applicable.
be-memory-efficient
no-leak-under-repeated-interaction
passhighAfter gate entry plus ten focus/scroll cycles, heap self size fell from 38,438,601 to 38,184,862 bytes; node count rose only 0.16%, with no unbounded growth signal.
be-memory-efficient
bounded-footprint
issueshighA single age-gated load retained about 38.4MB self size across 587,659 heap nodes and 52,371 closures before the underlying feed was usable.
F-039 medium: The blocked entry state has a disproportionate heap footprint
be-memory-efficient
no-detached-dom-or-unbounded-listeners
passhighBefore/after heap constructor summaries contained no Detached* population and closures changed from 52,371 to 52,372.

Provenance

Canonical report: results/atomic/reports/0137-www_pornhub_org.json
Report SHA-256: 1331393eb36622998840716c6896a1a84cce245c9a9b47072e7c19028225922c
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_pornhub_org/2026-07-18T16-29-32-298Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_pornhub_org/2026-07-18T16-29-32-298Z
Catalog SHA-256: sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7

Raw screenshots, HARs, traces, heaps, and other browser artifacts are retained at the local evidence root and intentionally are not committed. Artifact paths in the canonical report are relative to that root.