Manifest position 541 · CrUX rank bucket 1000

https://www.pornhub.com

Coverage complete

Coverage-complete audit of six representative public paths/states. Regional redirects limited distinct listing/category templates, and no credentialed or purchase action was performed.

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
issueshighThe dark/reduced-motion evaluate probe reports document colorScheme "normal" with a black body under prefers-color-scheme: dark; the DOM/CSS contains no adaptive color-scheme declaration.
F01 low: The theme is fixed dark rather than driven by the user’s color-scheme preference.
respect-user-preferences
respects-reduced-motion
issueshighOn the video detail under prefers-reduced-motion: reduce, two 1,500 ms dash animations remain running.
F02 medium: Player loading animations continue when reduced motion is requested.
respect-user-preferences
respects-contrast
passhighForced-colors/high-contrast probe preserved black/white surfaces and Lighthouse passed text color contrast.
implement-natural-interactions
view-transitions
issueshighFive rendered-path probes found no authored transition rules or transition groups; route navigation is conventional abrupt MPA replacement.
F03 low: Route and major state changes do not use authored View Transitions.
implement-natural-interactions
scroll-driven-animations
not-applicablehighNo scroll-linked animation exists on the representative feed or detail page, so there is no implementation to classify.
implement-natural-interactions
physical-gestures
passmediumRepresentative pages rely on native scrolling and ordinary links/buttons; probes found no custom gesture surface fighting platform scrolling.
provide-guided-navigation
scroll-state-aware-chrome
issueshighThe homepage probe found no container/scroll timeline rules and the long feed exposes static global chrome without progress or scroll-state feedback.
F04 low: The long feed has no scroll-state-aware navigation or progress affordance.
provide-guided-navigation
anchored-positioning
not-applicablehighNo viewport-edge tooltip, anchored popover, or contextual menu was present on the exercised public surfaces.
provide-guided-navigation
directs-attention
passhighGlobal navigation labels, the age-gate action pair, and the video detail H1 provide direct destination/action cues.
maximize-content-reduce-noise
no-intrusive-interruptions
passhighThe blocking age gate is legally/purpose-required, clearly labelled, and offers explicit enter/exit actions; cookie consent offers all/essential/custom choices.
maximize-content-reduce-noise
semantic-dismissible-primitives
issueshighDOM evidence shows #js-ageDisclaimerModal is a div with role=alertdialog; probes found zero dialog, popover, or details elements across representative pages.
F05 medium: Global overlays are custom div-based dialogs instead of native dialog/popover primitives.
maximize-content-reduce-noise
reduced-chrome
issueshighHAR records 31 TrafficJunky image requests and 99 third-party requests; page text repeats “Remove Ads” throughout the feed.
F06 medium: Advertising and repeated upgrade chrome compete heavily with primary content.
adapt-to-the-form-factor
responsive-no-horizontal-scroll
issueshighThe 360x800 screenshot cuts off sentences, the law-enforcement link, and the right-hand “under 18” action. Layout metrics report no scroll because overflow is clipped rather than made reachable.
F07 high: The mandatory age gate is visibly clipped at 360 px.
adapt-to-the-form-factor
component-level-responsiveness
passmediumUnderlying feed cards render at 324 px in the mobile probe and all sampled layout primitives report zero document overflow.
adapt-to-the-form-factor
input-modality-aware
issueshighLighthouse reports user-scalable=no/maximum-scale=1 on its mobile render. DOM measurements show age-gate links only 16–22 px high, below a comfortable touch target.
F08 high: The mobile viewport disables zoom and several essential text links have undersized targets.
support-core-task-success
clear-purpose-and-primary-action
passhighThe first viewport states that this is an adult site and presents unambiguous enter and exit actions.
support-core-task-success
primary-flow-completion
passhighThe representative video detail URL rendered its H1, native controlled video, related content, and forms after the entry state.
support-core-task-success
clear-system-state-and-recovery
issueshighHTTP probe shows an invented path returns 200 after redirect to /; the rendered probe contains ordinary homepage content and no 404/retry message.
F09 medium: Unknown URLs silently redirect to the homepage with no error or recovery explanation.
be-fast-and-stable
good-core-web-vitals
issueshighLighthouse measured LCP and TTI at 13.0 s (performance 65); the first-party trace measured LCP at 3.82 s, still above the 2.5 s good threshold.
F10 high: Mobile LCP is poor and highly variable.
be-fast-and-stable
visual-stability
passhighLayout observers measured CLS 0.00004 mobile and 0.056 desktop, both inside the good threshold.
be-fast-and-stable
efficient-main-thread
passhighTrace reports zero long tasks and zero TBT; the detail layout observed only one marginal 55 ms task.
be-fast-and-stable
efficient-resource-delivery
issueshighHAR records 170 requests/4.36 MB and multiple VeryHigh parser-inserted stylesheets; Lighthouse estimates 620 ms render-blocking savings and flags an undiscoverable lazy LCP image.
F11 high: The load has a long render-blocking and dependency chain.
be-fast-and-stable
trim-unused-and-duplicate-code
issueshighLighthouse estimates 178 KiB unused JavaScript, roughly 74 KiB unused CSS, and 54 KiB legacy JavaScript.
F12 medium: Substantial unused and legacy code ships on initial load.
be-inclusive
names-roles-labels
issueshighLighthouse fails iframe title. The video detail probe finds an unlabeled caption textarea and submit button; the login modal also contains unnamed buttons.
F13 high: Several embedded and form controls lack robust accessible names.
be-inclusive
sufficient-contrast
passhighLighthouse passed foreground/background contrast; forced-colors retained readable white-on-black content.
be-inclusive
structure-and-focus
issueshighHomepage probes contain no H1 and begin with H3; Lighthouse flags the “Log in” control because its visible label does not match aria-label="User Icon".
F14 medium: Heading and accessible-name structure is inconsistent.
be-inclusive
legible-text
issueshighThe 360x800 screenshot cuts off sentences, the law-enforcement link, and the right-hand “under 18” action. Layout metrics report no scroll because overflow is clipped rather than made reachable.
F07 high: The mandatory age gate is visibly clipped at 360 px.
be-inclusive
zoom-reflow-targets-and-media
issueshighLighthouse reports user-scalable=no/maximum-scale=1 on its mobile render. DOM measurements show age-gate links only 16–22 px high, below a comfortable touch target.
F08 high: The mobile viewport disables zoom and several essential text links have undersized targets.
follow-best-practices
no-console-errors
issueshighLighthouse records TypeError: Cannot read properties of null (reading addEventListener) in setInstallButton at the homepage.
F15 medium: The homepage throws an uncaught JavaScript exception.
follow-best-practices
sound-document-and-assets
issueshighThe image primitive reports three images without dimensions; Lighthouse specifically identifies cookie/modal logo images without width and height.
F16 medium: Several images lack intrinsic dimensions.
follow-best-practices
browser-platform-hygiene
issueshighLighthouse reports deprecated unload handling, a deprecated Cast-control CSS technique, and four BFCache failure reasons including unload and no-store behavior.
F17 medium: Deprecated APIs and BFCache blockers remain.
be-discoverable
title-and-description
issueshighAcross homepage/listing probes the title is only “Pornhub” and description is null, providing little page-specific context.
F18 medium: The homepage title is generic and rendered probes expose no meta description.
be-discoverable
crawlable-and-mobile-friendly
issueshighProbes count 30 missing/javascript href links; Lighthouse fails crawlable anchors. /robots.txt redirects to HTML and Lighthouse reports 4,071 parse errors.
F19 high: Key links and crawler control files are not crawlable.
be-discoverable
canonical-and-indexing-signals
issueshighRepresentative pages emit noindex,nofollow; the video detail canonical is https://www.pornhub.com/; sitemap.xml returns 404; unknown routes redirect with 200.
F20 high: Indexing signals conflict and detail pages canonicalize to the homepage.
be-discoverable
structured-and-shareable-metadata
issueshighThe video detail has zero JSON-LD blocks and no Open Graph tags despite exposing a named video entity.
F21 medium: The video detail lacks rich-entity and share metadata.
be-private-and-secure
secure-transport-and-headers
issueshighHeaders evidence finds no CSP or X-Content-Type-Options; cookie evidence finds one non-Secure cookie and all seven cookies use SameSite=None.
F22 high: Baseline XSS and cookie defenses are incomplete.
be-private-and-secure
data-minimisation-and-third-parties
issueshighTracker evidence finds 12 third-party origins including GTM and DoubleClick. HAR attributes 99 requests and 2.01 MB to third parties before the primary content journey.
F23 high: The initial page has a large tracking and third-party footprint.
be-private-and-secure
in-context-permissions-and-modern-auth
passmediumLogin is user-initiated, exposes correct email/current-password autocomplete and social sign-in, source contains WebAuthn support, and no permission request is fired on load.
be-private-and-secure
defensive-browser-policies
issueshighHeaders evidence finds no CSP/frame-ancestors policy, nosniff, Referrer-Policy, or Permissions-Policy; only X-Frame-Options and strong HSTS are present.
F24 high: Several browser-enforced policies are absent.
be-resilient
progressive-enhancement
issueshighDiscoverability finds only 31% rendered-word coverage; its crawler screenshot is entirely black while the JS-rendered screenshot shows the age gate.
F25 high: The meaningful page becomes visually blank without JavaScript.
be-resilient
resilient-runtime-behaviour
issueshighThe 360x800 screenshot cuts off sentences, the law-enforcement link, and the right-hand “under 18” action. Layout metrics report no scroll because overflow is clipped rather than made reachable.
F07 high: The mandatory age gate is visibly clipped at 360 px.
be-resilient
offline-and-installable
not-applicablehighThis media-streaming service is intrinsically online; an installable/offline playback experience is not necessary for the audited public journey.
be-resilient
network-and-http-failure-states
issueshighHTTP probe shows an invented path returns 200 after redirect to /; the rendered probe contains ordinary homepage content and no 404/retry message.
F09 medium: Unknown URLs silently redirect to the homepage with no error or recovery explanation.
be-internationalised
lang-dir-and-logical-properties
passhighHTML lang=en is present and a labelled language combobox exposes many localized options; the sampled LTR layout preserves reading order.
be-internationalised
locale-aware-data
not-applicablehighThe sampled public surfaces contain no user-facing dates, currencies, or locale-sensitive numeric entry requiring formatting judgement.
be-internationalised
time-zone-correctness
not-applicablehighThe sampled public surfaces expose no scheduled event or time-zone-sensitive data.
be-trustworthy
no-dark-patterns
passhighAge entry/exit and cookie all/essential/custom choices are explicit and visually peer-level; no preselected paid commitment was encountered.
be-trustworthy
humane-error-handling
issueshighAfter opening login and submitting empty, email/password report required=false, aria-invalid is absent, and no visible role=alert/error text is returned.
F26 medium: The login form does not expose required semantics or actionable empty-submit feedback.
be-trustworthy
trustworthy-input-assistance
passhighLogin email and password use autocomplete=email and current-password and carry visible labels.
be-trustworthy
safe-commercial-and-account-flows
passhighThe sampled account modal clearly states regional registration availability, terms/privacy acknowledgement, and offers labelled sign-in methods without hidden purchase commitment.
be-sustainable
optimised-assets
issueshighImage evidence finds 33 images without srcset and 21 legacy formats; Lighthouse estimates 558 KiB image-delivery savings.
F27 high: Image delivery wastes substantial bytes.
be-sustainable
no-wasteful-work
issueshighBefore entry, HAR records 170 requests and 4.36 MB including 39 scripts and 37 XHR/fetches; Lighthouse identifies large unused code payloads.
F28 high: The age-gated initial load performs disproportionate network work.
be-sustainable
third-party-and-media-budget
issueshighHAR attributes 2.01 MB and 99 requests to third parties, including 940 KB from TrafficJunky images and 303 KB from Google Tag Manager.
F29 high: Third-party advertising dominates a large share of the initial transfer.
be-agent-ready
structured-agent-capabilities
issueshighRepresentative probes find no WebMCP/agentic surface; Lighthouse agentic browsing scores 67 and reports llms.txt missing its required H1.
F30 low: The content platform exposes no structured agent capability and has malformed llms.txt guidance.
be-agent-ready
on-device-inference
not-applicablehighNo summarisation or generative task is offered in the audited journey; on-device inference is an optional opportunity rather than required behavior.
be-memory-efficient
no-leak-under-repeated-interaction
passhighAfter ten full-page scroll cycles, heap grew only 326,675 bytes (0.89%) and 262 nodes, while closures and major constructors stayed flat.
be-memory-efficient
bounded-footprint
passhighBaseline heap is 36.7 MB with 1,424 rendered DOM nodes, proportionate to a media catalogue page.
be-memory-efficient
no-detached-dom-or-unbounded-listeners
passhighBefore/after summaries show closures decreasing by six and no Detached constructor among top populations; major Object/Array populations remain flat.

Provenance

Canonical report: results/atomic/reports/0541-www_pornhub_com.json
Report SHA-256: 613b078ffc4b1754980393136cf58da8ad6fe30a7b22b3ac885ea132dafbdb70
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_pornhub_com/2026-07-21T11-10-29-572Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_pornhub_com/2026-07-21T11-10-29-572Z
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.