Manifest position 78 · CrUX rank bucket 1000
https://es.pornhub.com
Coverage complete
Coverage-complete audit across six representative paths. The required age gate was treated as applicable site content; media playback and explicit-content interaction were intentionally not needed to assess the templates.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | The page is dark in both default and emulated-dark conditions, while runtime HTML/CSS signals contain no prefers-color-scheme or color-scheme support; the fixed palette does not respond to the user preference. F01 medium: The fixed dark palette does not respond to color-scheme preference. |
respect-user-preferencesrespects-reduced-motion | pass | high | Under prefers-reduced-motion: reduce, getAnimations() returned zero active animations on the entry state. |
respect-user-preferencesrespects-contrast | pass | high | Lighthouse reported no color-contrast audit failures and the dark entry screen retained high-contrast white/orange controls. |
implement-natural-interactionsview-transitions | issues | high | The runtime/source signal probe found no view-transition usage, so route and state changes use abrupt swaps. F02 low: Route and state changes do not use View Transitions. |
implement-natural-interactionsscroll-driven-animations | pass | high | No scroll-linked animations or scroll-timeline signals were present, and layout/trace observers recorded no long tasks; the page does not implement scroll effects with blocking handlers in the observed state. |
implement-natural-interactionsphysical-gestures | pass | high | The representative pages use native document scrolling and ordinary links/buttons; no pointer-driven gesture surface or custom gesture requirement appeared in the DOM recon. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The long feed exposes static navigation and no scroll-state/container-query or progress-indicator signal. F03 low: The long feed has no scroll-state-aware navigation cue. |
provide-guided-navigationanchored-positioning | pass | high | No tooltip, contextual popover, or viewport-edge anchored menu was present on the inspected entry/listing/detail states, so no drifting manually positioned overlay was observed. |
provide-guided-navigationdirects-attention | pass | high | The age gate presents a single prominent heading and paired enter/exit actions, while navigation and media links use descriptive visible labels. |
maximize-content-reduce-noiseno-intrusive-interruptions | pass | high | The initial full-screen age gate is required for this adult site and provides immediate Enter, Exit, parental-control and terms choices; cookie consent also offers essential-only and customization controls. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | The age and consent overlays are custom DIV structures with ARIA roles; the DOM contains zero dialog, popover, and details elements. F04 medium: Critical overlays use custom DIVs instead of semantic dialog primitives. |
maximize-content-reduce-noisereduced-chrome | pass | high | The required age gate is visually restrained and content-focused, with no decorative imagery competing with its decision text. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | issues | high | At 360px the entry modal is visibly clipped on the right: its heading, legal text, and Exit action extend beyond the captured viewport even though overflow is suppressed. F05 critical: The age gate is clipped at 360px. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | The rendered source signal probe found no @container/container-type use across reused feed and overlay components. F06 low: Reusable components expose no container-query adaptation. |
adapt-to-the-form-factorinput-modality-aware | issues | high | Programmatic focus did not move to the Enter button and its computed outline was none; the mobile probe also counted 85 rendered targets below 24px in one dimension. F07 high: Keyboard focus and target sizing are unreliable. |
support-core-task-successclear-purpose-and-primary-action | pass | high | The entry page states that it is an adult site and makes Enter and Exit the dominant paired actions. |
support-core-task-successprimary-flow-completion | pass | high | Direct browse, categories, search-results and detail URLs returned populated server-rendered content, providing a continuous find-and-open-content path without requiring playback for verification. |
support-core-task-successclear-system-state-and-recovery | pass | high | The constrained entry state provides explicit Exit, parental-control guidance, terms and consent choices, preserving a safe recovery path. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 4541ms and CLS 0.824; both exceed the good Core Web Vitals thresholds. F08 high: Core Web Vitals are outside the good range. |
be-fast-and-stablevisual-stability | issues | high | Lighthouse measured CLS 0.824 and the mobile layout observer independently recorded a 0.102 shift around 1.86s. F09 high: Late content causes severe visual instability. |
be-fast-and-stableefficient-main-thread | pass | high | The trace measured zero long tasks and 0ms total blocking time; Lighthouse TBT was 32.5ms. |
be-fast-and-stableefficient-resource-delivery | issues | high | The HAR recorded 173 requests and 5.23MB transferred, including seven parser-inserted very-high-priority stylesheets and multiple parser-inserted scripts requiring blocking review. F10 high: The critical network path is large and render-blocking. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimated 294,838 bytes of unused JavaScript and 75,725 bytes of unused CSS; 40 scripts were requested. F11 medium: Substantial unused JavaScript and CSS ship on first load. |
be-inclusivenames-roles-labels | pass | high | Lighthouse reported zero image-alt and label failures; all 37 inspected images had alt text, and the search field has aria-label="Search". |
be-inclusivesufficient-contrast | pass | high | Lighthouse reported zero contrast failures on the tested page. |
be-inclusivestructure-and-focus | issues | high | The homepage has no H1, overlays use custom role-bearing DIVs, and focusing the primary Enter button did not produce active focus or a visible outline. F12 high: Heading semantics and keyboard focus are incomplete. |
be-inclusivelegible-text | issues | high | At 360px the age-gate heading, paragraphs, links and second action are clipped off-screen, preventing comfortable reading. F13 critical: Legal and action text does not reflow on mobile. |
be-inclusivezoom-reflow-targets-and-media | issues | high | The mobile probe counted 85 rendered controls/links below 24px in one dimension, and the representative detail page exposes two video elements but no caption tracks. F14 high: Small targets and missing video caption tracks reduce access. |
follow-best-practicesno-console-errors | issues | high | Lighthouse recorded one console-error item during load. F15 medium: The page logs a console error during load. |
follow-best-practicessound-document-and-assets | issues | high | Although doctype/charset are present, the image audit found 3 images without dimensions and 20 legacy-format images. F16 medium: Image delivery has avoidable structural and format issues. |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse reported two deprecated-API warnings and DevTools inspector issues. F17 medium: Deprecated APIs and inspector issues remain. |
be-discoverabletitle-and-description | issues | high | Homepage and detail both expose the generic title “Pornhub” and no meta description. F18 high: Page titles are generic and descriptions are absent. |
be-discoverablecrawlable-and-mobile-friendly | issues | high | 18 of 124 homepage anchors use javascript: URLs, and /robots.txt redirects to the homepage instead of serving robot directives. F19 high: Crawler navigation and robots delivery are broken. |
be-discoverablecanonical-and-indexing-signals | issues | high | The detail response declares noindex,nofollow and canonicalizes to the homepage; hreflang is absent and /sitemap.xml returns 404. F20 high: Indexing signals conflict on detail pages. |
be-discoverablestructured-and-shareable-metadata | issues | high | The representative detail page has no JSON-LD and no Open Graph tags despite representing a video entity. F21 medium: Video pages lack structured and social metadata. |
be-private-and-securesecure-transport-and-headers | issues | high | HTTPS and HSTS are present, but CSP and X-Content-Type-Options are missing; cookie audit also found an rp cookie without Secure and all seven cookies using SameSite=None. F22 high: Transport hardening and cookie attributes are incomplete. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | The load contacted 12 third-party origins, including Google Tag Manager and DoubleClick; 102 requests and 2.29MB were third-party. F23 high: The pre-consent third-party footprint is large. |
be-private-and-securein-context-permissions-and-modern-auth | issues | high | No permission prompt fired on load, but the site exposes sign-in while the inspected runtime contained no WebAuthn/passkey signal and the account route redirected to the homepage. F24 medium: No phishing-resistant authentication signal was found. |
be-private-and-securedefensive-browser-policies | issues | high | HSTS and SAMEORIGIN framing are configured, but CSP/frame-ancestors, Referrer-Policy and Permissions-Policy are absent from the main response. F25 medium: Several browser-enforced defensive policies are absent. |
be-resilientprogressive-enhancement | pass | high | Raw HTML is substantial rather than an empty JS shell; the detail H1 survives without JavaScript and crawler coverage was 37%. |
be-resilientresilient-runtime-behaviour | issues | high | The age-verification overlay is clipped at 360px, including its legal copy and Exit action, so this critical runtime layer does not remain robust at a common viewport. F26 high: The critical overlay is not resilient at narrow widths. |
be-resilientoffline-and-installable | not-applicable | high | This streaming/search service is intrinsically online; an offline media experience is not a reasonable requirement for the audited public paths. |
be-resilientnetwork-and-http-failure-states | issues | high | The sitemap/unknown-resource test returned a bare “404 Not Found openresty” page with no site navigation, explanation, or recovery action. F27 medium: HTTP failure state is a dead end. |
be-internationalisedlang-dir-and-logical-properties | issues | high | html lang="es" is correct, but visible Spanish pages contain substantial untranslated English UI/content and expose no hreflang alternate links. F28 medium: Localization signals and translation completeness are inconsistent. |
be-internationalisedlocale-aware-data | not-applicable | high | No dates, currencies, durations-as-locale-data, or other locale-formatted values were part of the representative task surfaces. |
be-internationalisedtime-zone-correctness | not-applicable | high | No scheduled event or time-zone-sensitive flow appeared on the representative paths. |
be-trustworthyno-dark-patterns | pass | high | The observed consent layer offers Accept All, Accept Only Essential and Customize choices, while the age gate provides equally visible Enter and Exit actions. |
be-trustworthyhumane-error-handling | not-applicable | high | The inspected primary search path has no required input or validation error state, and the account form was not served at its direct route. |
be-trustworthytrustworthy-input-assistance | pass | high | The only available user input was a clearly named search control; no address, payment, sign-in or sign-up field requiring autocomplete assistance was served. |
be-trustworthysafe-commercial-and-account-flows | issues | high | Direct navigation to the account-creation route silently redirected to the homepage, leaving no clear sign-up state, explanation, or recovery path. F29 high: The account creation journey silently redirects to home. |
be-sustainableoptimised-assets | issues | high | Of 37 images, 33 lacked srcset and 20 used legacy formats; three omitted dimensions. F30 medium: Most images are not responsive or modern-format. |
be-sustainableno-wasteful-work | issues | high | The initial load made 173 requests, including 38 XHR/fetches and duplicated analytics delivery, before a content choice was made. F31 medium: The entry load performs excessive background/network work. |
be-sustainablethird-party-and-media-budget | issues | high | Third parties accounted for 102 requests and 2.29MB, with ad-network imagery and three Google Tag Manager scripts among the largest costs. F32 high: Third-party scripts and ad media dominate the resource budget. |
be-agent-readystructured-agent-capabilities | not-applicable | high | Agent-facing capabilities are emerging and not declared as an intent for this public adult-media catalog; absence of WebMCP is treated as an opportunity, not a failure. |
be-agent-readyon-device-inference | not-applicable | high | No user task in the representative public paths requires on-device inference, and agent readiness is contextual/emerging. |
be-memory-efficientno-leak-under-repeated-interaction | pass | medium | After ten open/close attempts on the language combobox, heap self size increased by 752,176 bytes (2.0%) and closures by 98 (0.2%), with no unbounded retained-growth signal in this bounded sample. |
be-memory-efficientbounded-footprint | pass | medium | The loaded media feed used 37.99MB heap self size and 1,425 live DOM elements, a bounded footprint for the observed content-rich page. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | medium | No Detached* constructor appeared among either heap summary’s largest constructors; closures changed only from 52,191 to 52,289 and instrumentable inline listeners were bounded at eight. |
Provenance
Canonical report: results/atomic/reports/0078-es_pornhub_com.json
Report SHA-256: 11260140c658789c1b4ce2afd5fa4975334650f879671903734b5b7cff898ea9
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/es_pornhub_com/2026-07-18T06-10-02-638Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/es_pornhub_com/2026-07-18T06-10-02-638Z
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.