Manifest position 600 · CrUX rank bucket 1000
https://rt.pornhub.com
Coverage complete
Coverage-complete audit of the public gated entry, listing, category, search and video-detail archetypes.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | pass | medium | Dark-emulation screenshot remains a coherent dark surface with white text and orange controls, matching the site’s intentionally dark palette. |
respect-user-preferencesrespects-reduced-motion | issues | high | The reduced-motion probe found 0.5s transitions on the cookie/overlay UI while prefers-reduced-motion: reduce was active. F02 low: Reduced-motion mode leaves non-essential transitions enabled |
respect-user-preferencesrespects-contrast | pass | medium | prefers-contrast probe shows visible white/orange text and bordered controls against black surfaces. |
implement-natural-interactionsview-transitions | issues | high | The representative flow across listing, categories, search and detail pages shows immediate swaps; CSS inspection found no view-transition rules. F03 medium: Route changes are abrupt full-document swaps |
implement-natural-interactionsscroll-driven-animations | pass | medium | CSS inspection found no scroll-timeline, and the representative feed uses ordinary native scrolling without observed JS-driven parallax or scrollytelling. |
implement-natural-interactionsphysical-gestures | pass | medium | Representative listing and mobile flows use native scrolling and ordinary links/buttons; no custom gesture that fights platform behavior was observed. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | Representative listing screenshots show a fixed, visually unchanged navigation bar across a long feed, and CSS inspection found no scroll-state queries or progress affordance. F04 medium: Navigation chrome does not react to scroll position |
provide-guided-navigationanchored-positioning | not-applicable | high | No tooltip or edge-attached popover was present in the representative gate, listing, category, search or detail surfaces. |
provide-guided-navigationdirects-attention | pass | medium | Desktop screenshots show an orange active-section underline, consistent global navigation, and clear selected-page context. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | After choosing essential-only cookies and entering, every representative desktop page retains a fixed bottom banner saying some features may be unavailable and suggesting “Accept All Cookies,” obscuring the feed and player. F05 high: A post-consent banner continues to nag users to accept all cookies |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | DOM inspection found zero <dialog> elements and one custom role=dialog age gate; cookie and sign-in overlays are script-managed custom containers. F06 medium: Core overlays use custom modal chrome instead of native dialog primitives |
maximize-content-reduce-noisereduced-chrome | pass | medium | After the required gate, listing pages devote most of the viewport to a dense media grid with restrained black chrome. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | issues | high | The 360x800 screenshots show the age-gate panel wider than the viewport, clipped copy and an off-screen second decision button; after entry, the card grid remains desktop-width and is clipped horizontally. F01 high: The age gate and content grid do not reflow on a 360px viewport |
adapt-to-the-form-factorcomponent-level-responsiveness | pass | medium | The desktop grid changes its visible column treatment on mobile, although the broader narrow-layout failure is recorded separately; no reused narrow-container component beyond this grid was found. |
adapt-to-the-form-factorinput-modality-aware | issues | high | The focus probe reports outline none and no box shadow for cookie buttons, search, primary navigation links and many video links. F07 high: Keyboard focus is absent on many primary controls |
support-core-task-successclear-purpose-and-primary-action | pass | medium | The age gate clearly states the adult-content purpose and presents explicit enter/exit actions; after entry, media thumbnails and search are prominent. |
support-core-task-successprimary-flow-completion | pass | medium | The recorded flow completed essential-cookie choice, age confirmation, listing/category navigation, search and video detail loading with zero failed steps. |
support-core-task-successclear-system-state-and-recovery | issues | high | A deliberately nonexistent route returned the normal homepage feed with title “Pornhub” and no 404 message; a nonsense search likewise returned a generic feed with no clear empty-result explanation. F08 high: Invalid routes and empty-looking searches do not present clear recovery states |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 4.4s and CLS 0.739; the trace measured LCP 6.18s. F09 high: Loading performance and visual stability miss the Core Web Vitals bar |
be-fast-and-stablevisual-stability | issues | high | Lighthouse recorded CLS 0.739 and 15 layout shifts; the mobile layout primitive independently observed CLS 0.102. F10 high: Late content causes substantial layout shift |
be-fast-and-stableefficient-main-thread | pass | medium | Trace recorded zero long tasks and 0ms TBT; Lighthouse independently measured only 40ms TBT. |
be-fast-and-stableefficient-resource-delivery | issues | high | HAR captured 171 requests and 3.86MB transferred, including seven very-high-priority parser stylesheets and parser scripts; Lighthouse estimates 370ms render-blocking savings. F11 medium: The initial load has a large dependency and render-blocking footprint |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimates 74KiB unused CSS, 178KiB unused JavaScript and 54KiB legacy-JS savings; 39 scripts load on the gated entry page. F12 medium: The page ships substantial unused and legacy code |
be-inclusivenames-roles-labels | issues | high | Lighthouse failed frame-title and label-content-name-mismatch audits on the entry experience. F13 medium: Some controls and frames have mismatched or missing accessible names |
be-inclusivesufficient-contrast | pass | medium | Lighthouse accessibility scored 0.92 and the contrast-emulation probe shows high-contrast white/orange controls on black. |
be-inclusivestructure-and-focus | issues | high | The probe found no H1, main or nav landmark; the only visible heading was H3, and many navigation links had no visible focus indicator. F14 high: The document lacks semantic structure and consistent focus visibility |
be-inclusivelegible-text | pass | medium | Desktop gate and content screenshots show readable type sizing and line spacing; mobile clipping is captured under reflow rather than text styling. |
be-inclusivezoom-reflow-targets-and-media | issues | high | Lighthouse failed meta-viewport for restricting user scaling, while the 360px screenshots show clipped content and controls. F15 high: Viewport policy restricts zoom and narrow reflow is broken |
follow-best-practicesno-console-errors | issues | high | Lighthouse failed the errors-in-console audit during a clean navigation. F16 medium: The page logs browser errors during load |
follow-best-practicessound-document-and-assets | issues | high | The image audit found 3 images without width/height; Lighthouse also failed unsized-images and reported two deprecation warnings. F17 medium: Several assets lack explicit dimensions and deprecated APIs remain |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse reported four BFCache failure reasons, deprecated APIs and Inspector issues. F18 medium: The page is not BFCache-safe and raises DevTools issues |
be-discoverabletitle-and-description | issues | high | The homepage probe returned title “Pornhub” and no meta description; distinct listing/search/detail surfaces are not differentiated in the captured flow. F19 high: Public pages use a generic title and omit meta descriptions |
be-discoverablecrawlable-and-mobile-friendly | issues | high | The page emits noindex,nofollow; 30 of 124 anchors lack a real href or use javascript:, and Lighthouse failed crawlable-anchors and reported robots.txt invalid with 4,073 errors. F20 high: Indexing and link signals actively undermine crawlability |
be-discoverablecanonical-and-indexing-signals | issues | high | A canonical homepage URL is present, but the page also declares noindex,nofollow and the robots audit fails, making the public localized site’s indexing intent contradictory. F21 medium: Canonical and indexing signals conflict |
be-discoverablestructured-and-shareable-metadata | issues | high | The probe found zero JSON-LD and zero Open Graph tags on a media-rich public page. F22 medium: Entity and social-preview metadata are absent |
be-private-and-securesecure-transport-and-headers | issues | high | Headers include HSTS and SAMEORIGIN but omit CSP, nosniff, Referrer-Policy and Permissions-Policy; cookie rp is not Secure and all seven cookies use SameSite=None. F23 high: Important browser security controls and one cookie flag are missing |
be-private-and-securedata-minimisation-and-third-parties | issues | high | Trackers found 11 third-party origins including Google Tag Manager and DoubleClick; HAR attributes 100 requests and 1.92MB to third parties, including TrafficJunky, before core use. F24 high: The gated entry page has a large tracking and advertising footprint |
be-private-and-securein-context-permissions-and-modern-auth | pass | medium | Representative-path inspection and objective probes found the expected outcome with no contradictory signal. |
be-private-and-securedefensive-browser-policies | issues | high | The response lacks CSP, Referrer-Policy and Permissions-Policy; no frame-ancestors policy or Trusted Types enforcement was observed. F25 medium: Defensive policy coverage is incomplete |
be-resilientprogressive-enhancement | pass | medium | Discoverability fetched a 486KB raw HTML document with real content, title and no empty SPA mount; the site is not a JS shell. |
be-resilientresilient-runtime-behaviour | pass | medium | The recorded gate, cookie, category, search and player flow completed without cut-off desktop overlays or failed runtime steps. |
be-resilientoffline-and-installable | not-applicable | high | This streaming media site is intrinsically network-dependent; offline/installability is not necessary for the audited core task. |
be-resilientnetwork-and-http-failure-states | issues | high | The nonexistent test URL showed the homepage feed and no error, retry or recovery state rather than a meaningful 404 response. F26 high: Unknown URLs fail silently into normal content |
be-internationalisedlang-dir-and-logical-properties | issues | high | The Russian document correctly sets lang=ru, but the platform probe found physical left/right CSS and no logical-property usage, limiting bidi/writing-mode resilience. F27 medium: Localized layouts rely on physical CSS properties |
be-internationalisedlocale-aware-data | issues | high | Russian pages display view counts such as “66.9K” and “2.3M” with English abbreviations amid localized text. F28 medium: Visible numeric abbreviations are not localized consistently |
be-internationalisedtime-zone-correctness | not-applicable | high | No scheduled events, user-entered dates, or time-zone-sensitive values appeared on the representative public surfaces. |
be-trustworthyno-dark-patterns | issues | high | After “Accept Only Essential Cookies,” a persistent overlay warns that features may be unavailable and directs users toward “Accept All Cookies” across every tested core page. F29 high: The consent experience pressures users after they decline optional cookies |
be-trustworthyhumane-error-handling | not-applicable | high | The audited public core flow has search but no required/validated data-entry form; sign-in validation was not submitted because it would require credentials. |
be-trustworthytrustworthy-input-assistance | pass | medium | Auth probe found email autocomplete=email and password autocomplete=current-password, while search is clearly identified. |
be-trustworthysafe-commercial-and-account-flows | pass | medium | The sign-in dialog states account/region constraints and terms before authentication; no checkout or subscription commitment was part of the audited public flow. |
be-sustainableoptimised-assets | issues | high | The image audit found 33/37 without srcset and 22 legacy-format images, while Lighthouse estimates 323KiB image-delivery savings. F30 medium: Most images lack responsive sources and use legacy formats |
be-sustainableno-wasteful-work | issues | high | The gated page makes 171 requests, including 38 fetch/XHR calls and a duplicate ~900KB homepage fetch, before the user reaches core content. F31 medium: The entry experience performs disproportionate background and duplicate work |
be-sustainablethird-party-and-media-budget | issues | high | Third parties account for 100 requests and 1.92MB; representative content pages also autoplay a large video advertisement before the selected video. F32 high: Third-party advertising dominates a large initial transfer |
be-agent-readystructured-agent-capabilities | not-applicable | high | Emerging WebMCP capability is not part of the site’s declared public experience and its absence is not a failure. |
be-agent-readyon-device-inference | not-applicable | high | No summarisation or language-model task is necessary to complete the audited browse/search/watch journey. |
be-memory-efficientno-leak-under-repeated-interaction | pass | medium | After 10 repeated search input/clear and scroll cycles, heap nodes fell from 557,951 to 557,482; total size rose only 2.4%, with stable constructor counts. |
be-memory-efficientbounded-footprint | pass | medium | Heap summary reports ~36-37MB self size for the media listing entry state, proportionate to the page and stable across snapshots. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | medium | Before/after summaries show native nodes, closures, Objects and Arrays stable or slightly lower, with no Detached* constructor among top retained populations. |
Provenance
Canonical report: results/atomic/reports/0600-rt_pornhub_com.json
Report SHA-256: cad7aa8dad18457302f232c36a78438ec48cd597778d6514868cdd812f2e6583
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/rt_pornhub_com/2026-07-21T20-48-27-214Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/rt_pornhub_com/2026-07-21T20-48-27-214Z
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.