Web Quality Audit: Being Human Clothing
Website: https://www.beinghumanclothing.com/ Date: 2 September 2026 Platform: Shopify (custom theme; assets: base.css, theme.css, product-card.css, cstm-product.css, gh-style.css; Ubuntu font; shopify-complexity-score 203) Industry: Celebrity-backed affordable fashion / apparel D2C (India) Audience: 95.6% phone traffic, 4.4% desktop, 0% tablet (CrUX, latest 2026-08-29)
Business context (from business-analysis.md): Salman Khan / Being Human Foundation brand, operated by Four Aces Fashion House Pvt. Ltd. ~11,581 SKUs, 35 stores + 99 shop-in-shops + Myntra/Amazon/Flipkart. Near-permanent 50–65% discounting. India-only D2C shipping. No on-site reviews, no loyalty program, no quick-commerce. The mobile-first, discount-driven, trust-sensitive audience makes performance and on-site trust signals directly tied to conversion.
Executive Summary
The site is technically competent on security and crawlability, but it has two conversion-critical weaknesses that sit squarely on its dominant mobile surface: mobile rendering performance and on-site trust/social-proof gaps.
- Mobile performance is the headline risk. Real-user (CrUX) phone LCP is Good at 2.25s, but Lighthouse lab LCP on mobile is a catastrophic 12.2s (4.9× the 2.5s "Good" threshold, 6.4× the desktop lab LCP of 1.9s). This gap means the experience degrades sharply on the mid-range Android devices that make up the bulk of the 95.6% mobile audience when network/CPU conditions are worse than the CrUX median.
- Core Web Vitals (phone) assessment: Needs Improvement / "Failed" — driven entirely by INP 227ms (Needs Improvement; threshold 200ms). LCP (Good) and CLS (Good, 0.00) are fine. On desktop (4.4% of traffic) the picture is far healthier.
- No on-site reviews on 11,581 products — the single biggest CRO/trust gap for a discount-led, mobile audience, and it is also an SEO miss (no
AggregateRating/Review rich results).
- Social-sharing markup is half-built: Open Graph is present on the homepage (and PDPs) but Twitter Card tags are entirely absent, and the primary
og:image is served over http:// (relies on a secure_url fallback).
- Accessibility has concrete defects: 21 images with missing/empty alt text (including hero/category banners), a search icon link mislabeled
aria-label="My account", and product-card links labeled only aria-label="link".
- Hreflang / international SEO is correctly absent — the store is India-only by policy, so no multilingual targeting is warranted. (Verified, not a gap.)
Score Card (mobile is the operative surface)
| Category | Mobile | Desktop | Grade (mobile) |
| Performance | LCP 12.2s lab / LCP 2.25s field | LCP 1.9s lab | 🔴 (mobile lab Poor) |
| Accessibility | — (defects found; see §2) | — | 🟡 |
| Best Practices | — (headers mostly good; CSP gap) | — | 🟡 |
| SEO | — (meta/schema mostly present; Twitter/OG gap) | — | 🟡 |
| Core Web Vitals (field) | Needs Improvement (INP) | n/a (4.4% share) | 🟡 |
Honest limitation on the 0–100 category scores: PageSpeed Insights' Lighthouse lab UI repeatedly stalled on this heavy Shopify homepage in the headless test environment — the CrUX field panel rendered every time, but the lab category scores (Performance/Accessibility/Best Practices/SEO) never completed across three runs. The raw lab metric values below are real (captured from the one run that did complete), and Accessibility/Best-Practices/SEO findings are derived from direct DOM and header inspection. The four category score tiles should be re-run in a standard Lighthouse (CLI or Chrome DevTools) for exact 0–100 numbers.
1. Performance Audit
1.1 CrUX Real-World Field Data
Source: CrUX (Chrome UX Report), origin https://www.beinghumanclothing.com, captured 2 Sep 2026 (latest 28-day period 2026-08-02 → 2026-08-29), via CrUX Vis.
Core Web Vitals Assessment (phone): Needs Improvement. The PSI CrUX panel labels this "Failed"; per the skill's unambiguous-label convention, the accurate statement is Needs Improvement on mobile — LCP and CLS are Good, only INP is not.
| Metric | Phone value | Rating | Threshold | Desktop (note) |
| LCP | 2253 ms (2.25 s) | 🟢 Good | ≤ 2500 ms | n/a (4.4% of traffic) |
| INP | 227 ms | 🟡 Needs Improvement | ≤ 200 ms | n/a |
| CLS | 0.00 | 🟢 Good | ≤ 0.10 | n/a |
Trend (phone, recent weeks from CrUX Vis aria-labels):
- INP has sat in the 220–230 ms band all of 2026 (223 → 227 ms) — persistently just over the 200 ms line. It is the one metric blocking a clean CWV pass.
- LCP has improved through 2026 (was ~2.5s in Jan, now 2.25s) and is comfortably Good.
- CLS has been 0.00 for the entire visible series — excellent visual stability.
Desktop is negligible (4.4% of the audience) but CrUX field LCP/INP/CLS on desktop are typically stronger than phone for this kind of site; optimization effort should stay on mobile, consistent with the 21.7:1 phone:desktop ratio.
1.2 Core Web Vitals (Lighthouse Lab Data)
Source: PageSpeed Insights, lab run on homepage, captured 2 Sep 2026.
| Metric | Mobile (lab) | Rating | Desktop (lab) | Rating |
| FCP | 4.2 s | 🔴 Poor (>3 s) | 0.9 s | 🟢 Good |
| LCP | 12.2 s | 🔴 Poor (>4 s) | 1.9 s | 🟢 Good |
| TBT | 10 ms | 🟢 Good | 0 ms | 🟢 Good |
| CLS | 0 | 🟢 Good | 0 | 🟢 Good |
| SI | 4.2 s | 🟡 Needs Improvement | 0.9 s | 🟢 Good |
Mobile vs Desktop gap is severe (6.4× on LCP). A 12.2s mobile LCP is a conversion emergency on a 95.6%-mobile store. The desktop lab LCP of 1.9s shows the content is light; the problem is mobile render-blocking/resource delivery, not payload size per se.
1.3 LCP Phase Breakdown (Mobile)
Lighthouse did not emit the per-phase breakdown in the captured run (the lab UI stalled before the diagnostics panel rendered). The 12.2s mobile lab LCP against a 2.25s field LCP and 0.7s field TTFB points to a pre-resource-delay / render-blocking pattern: the LCP image is discovered and painted late on throttled mobile, almost certainly due to (a) the hero/category images not being preload-ed, and (b) a render-blocking CSS/JS chain. The site sends 14 preload as=style and several preconnect hints but only 1 preload as=image — the LCP image is not preloaded. This is the canonical Shopify mobile-LCP killer.
1.4 Performance Issues by Impact
| Impact | Issue | Evidence | Est. savings | Recommendation |
| 🔴 Critical | No LCP image preload | DOM: only 1 preload as=image; hero banners not preloaded | ~3–6 s LCP | Add <link rel="preload" as="image" fetchpriority="high"> for the above-fold hero on every template |
| 🔴 Critical | Mobile render-blocking CSS/JS chain | 14 preload-style hints + 70 scripts / 29 stylesheets / 2432 DOM nodes on homepage | large | Inline critical CSS, defer non-critical JS, ship fewer theme CSS files; audit the 70 scripts (many Shopify apps) |
| 🔴 Critical | Shopify app/script bloat | 70 <script> tags on homepage | high | Audit installed apps; remove or lazy-load unused app JS (wishlist, carousel, etc.) |
| 🟡 High | Third-party / GTM overhead | fonts.googleapis.com, cdnjs.cloudflare.com (slick-carousel), cdn.jsdelivr.net preconnected | medium | Self-host slick CSS/JS on Shopify CDN; reduce preconnect count |
| 🟡 High | OG image + assets over http:// | og:image content = http://www.beinghumanclothing.com/... | n/a (security) | Use https:// for all OG/image URLs |
| 🟢 Low | Large DOM (2432 nodes) | counted via DOM | minor | Trim unnecessary wrapper nodes in theme |
| 🟢 Low | Cache lifetime on static assets | cdn-cache-control: no-cache, no-store header observed | minor | Allow longer cache on versioned CDN assets |
1.5 Resource Transfer Summary
- Images: 56
<img> on homepage; 46 use loading="lazy" (good for below-fold). Format not WebP/AVIF-verified but Shopify CDN typically serves optimized. The LCP image is not lazy (correct) but also not preloaded (the bug).
- JS: 70 scripts, 4
type=module. High app-injection count is the dominant mobile cost.
- CSS: 29 stylesheets; 14 are preloaded. Shopify themes often ship CSS for unused sections.
- 3rd-party: Google Fonts (Ubuntu), Cloudflare cdnjs (slick-carousel), jsDelivr — all preconnected (3
preconnect), which is within reason.
2. Accessibility Audit
2.1 Critical Issues
- 21 images with missing or empty
alt text (1 missing entirely + 20 alt="" that are NOT decorative). Affected assets include hero/category banners (MIn_50_off_august_landscape.png, Arhan_Nirvan_Desktop_Banner, Alizeh_Desktop_Banner, Denim_Desktop_Banner) and feature tiles (Denim_1.webp, Crew-Neck_1.webp, BHC-banner-25-...). These are content/marquee images that should carry descriptive alt. WCAG A fail.
- Evidence: live DOM
img:not([alt]) (1) and img[alt=""] (20).
- Mislabeled interactive control: the search icon link uses
aria-label="My account" while the actual account link is separate. Screen-reader users get a wrong label. WCAG 4.1.2 fail.
- Non-descriptive link labels: product-card "full-width" links use
aria-label="link". Screen-reader users hear "link" with no destination. WCAG 2.4.4 / 4.1.2.
2.2 High Priority Issues
- H1 = keyword-stuffed title tag, not brand voice. Homepage H1 renders as "Buy Trendy Men's & Women's Clothing Online - Being Human Clothing" — identical to the
<title>. There is no distinct, human brand-led H1. For a purpose-driven brand ("Fashion with a Heart"), this is both an SEO and a brand-authenticity miss.
2.3 Positive Findings
<html lang="en"> present (and content-language: en-IN header) — correct for the India-English audience.
<meta name="viewport"> present and correct (width=device-width,initial-scale=1).
- Skip-to-content link present (
Skip to content).
- Single H1 (no duplicate-h1 conflict).
- CLS 0.00 in field → no layout-shift a11y annoyance.
- Images that do have alt (product names) are descriptive.
aria-label used on account/search anchors (intent is right; the values are just wrong on two of them).
3. SEO Audit
3.1 Technical SEO
| Check | Status | Evidence |
| robots.txt | ✅ Allows crawling; Sitemap: directive present; sensibly allows /products/account etc. (Shopify agentic-discovery additions) | curl robots.txt |
| XML Sitemap | ✅ Well-structured: 12 product + 1 collection + 1 page + 1 blog sitemaps, plus sitemap_agentic_discovery.xml | curl sitemap.xml |
| Canonical (homepage) | ✅ Self-referencing https://www.beinghumanclothing.com/ | live DOM + curl |
| Indexation | ✅ No noindex observed on sampled pages | curl headers/meta |
| URL structure | ✅ Clean, hyphenated, keyword-rich (/products/being-human-clothing-men-slim-straight-fit-denim-...) | sitemap |
| HTTPS | ✅ Enforced: http:// → 301 → https:// | curl -I http://... |
| Mobile-friendly | ✅ viewport + responsive theme | live DOM |
| Hreflang | ➖ Not applicable (India-only store; verified correct to omit) | see §4 |
3.2 On-Page SEO
- Title (homepage): "Buy Trendy Men's & Women's Clothing Online - Being Human Clothing" — keyword-targeted, within 60-char range, brand at end. Acceptable, though it reads generic vs. the differentiated "Fashion with a Heart" positioning.
- Meta description (homepage): Present, ~155 chars, keyword-rich. But it's generic ("Explore premium men's and women's fashion… Shop Now!") and contains a grammar error ("every seasons wardrobe"). Minor but worth a brand-voice pass.
- H1: Duplicates the title (see §2.2) — should be a distinct brand-led heading.
- Open Graph: ✅ Present on homepage and PDPs (
og:title, og:description, og:image, og:url, og:type=website, og:site_name). But og:image is http:// (see §5.2).
- Twitter Card: ❌ Completely absent (no
twitter:card / twitter:title / twitter:description / twitter:image anywhere). Every tweet/shared-link from the brand renders without a preview card. High-impact, low-effort fix.
- Product-page meta: PDPs carry proper canonical + JSON-LD (see §3.3); description quality not spot-checked per-PDP but template-driven.
3.3 Schema Markup
| Type | Homepage | Product page | Notes |
| Organization | ✅ | ✅ | Present (name, url) |
| WebSite + SearchAction | ✅ | — | Sitelinks search box eligibility — good |
| BreadcrumbList | ✅ | ✅ | Present on both |
| Product | — | ✅ | @type:Product with Offer (7 variants), Brand, sku (35 skus referenced), availability, priceCurrency |
| AggregateRating / Review | ❌ | ❌ | Absent — no review rich results, consistent with "no on-site reviews" finding |
| LocalBusiness | ❌ | ❌ | Not present (could add for the 35 stores / Mumbai HQ) |
| FAQPage / Article | ❌ | ❌ | Blog posts would benefit from Article schema |
Note on detection method: Shopify injects JSON-LD server-side for this theme, so it is visible in curl HTML (confirmed: 2 ld+json blocks on homepage = Organization + WebSite/BreadcrumbList; PDPs = Product/Offer/Brand + Organization + BreadcrumbList). The live-browser DOM count initially read 0 due to a timing/extraction quirk, but server HTML confirms the schema is present. The real gap is the absence of review/rating and local-business schema, not missing base schema.
3.4 Image SEO
- Filenames are mostly auto-generated/non-descriptive (
webjfdkwej_1.webp, 8-48b49282-...webp, image_4_1.webp) — weak for image search. Product images inherit descriptive slugs via Shopify, but hero/marketing assets are not keyword-named.
- 21 images missing/empty alt (see §2.1) — also an image-SEO loss.
- Lazy-loading correctly applied to 46 below-fold images; LCP image not lazy (correct).
3.5 Internal Linking
- 419 links on homepage; navigation uses descriptive labels ("New Arrivals", "Last Of The Best", "Denim", "Crew Neck", "Cargos", "Hoodies"). Good anchor text.
- BreadcrumbList schema present; visible breadcrumbs not observed on the sampled homepage sections (schema-only). Worth verifying on PDP/collection templates.
3.6 Keyword Targeting / E-E-A-T
- Homepage targets generic "men's & women's clothing" — fine for the broad term, but the brand's defensible differentiators (Salman Khan, Being Human Foundation philanthropy, sustainability, Disney/Marvel collab) are under-leveraged in the homepage title/H1/meta. For a purpose-led brand, leading with "Fashion with a Heart" in H1 would sharpen both E-E-A-T and CTR.
- Experience/Expertise: The "Our Story" page (founding narrative, sustainability, YODA animal-welfare) supplies genuine E-E-A-T — but it is not surfaced in homepage schema or prominently linked in the rendered hero.
4. International SEO
Verdict: Not applicable — correctly omitted. The store ships India-only (shipping policy: delivery within India only) and serves a single en locale. There is no hreflang and no locale subdirectories, which is the correct configuration for a single-market store. Adding hreflang would be wrong here. No action needed; flagged only to confirm it was checked and is intentionally absent.
(Search-engine note: the site exposes an agentic-discovery sitemap and /agents.md + UCP/MCP endpoints in robots.txt — these are Shopify's newer agent/LLM-crawler hooks, not a localization signal. They don't affect standard SEO.)
5. Best Practices & Security
5.1 Security Headers
| Header | Value observed | Assessment |
| HSTS | max-age=7889238 (~91 days) | 🟡 Below best practice (recommend ≥ 31536000 = 1yr, + includeSubDomains + preload) |
| X-Frame-Options | DENY | ✅ |
| X-Content-Type-Options | nosniff | ✅ |
| CSP | block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests; | 🟡 Missing script-src directive → no script allow-list; weak against XSS. Add a script-src with nonces/hashes. |
| X-Permitted-Cross-Domain-Policies | none | ✅ |
| X-XSS-Protection | 1; mode=block | ✅ (legacy, harmless) |
| Referrer-Policy | not set | 🟢 Low — consider strict-origin-when-cross-origin |
| COOP / COEP | not set | 🟢 Low |
| HTTPS | enforced (301) | ✅ |
5.2 Modern Standards
- Valid HTML5 doctype, UTF-8 charset ✅
- No
document.write / synchronous XHR observed ✅
- Mixed-content risk:
og:image served as http://www.beinghumanclothing.com/... (a secure_url https variant is also provided, so it usually resolves, but the bare http value is a latent bug and a CSP upgrade-insecure-requests dependency). Fix the source URL to https.
- Source maps: not exposed in production headers observed.
6. Content Quality Assessment
6.1 Image Quality & Authenticity
- No AI-generated image signatures detected in the sampled homepage/banner assets (no
Gemini_Generated_Image_, ChatGPT_Image_, ai0_.png, unnamed_1.png patterns). Marketing banners use named creative (Arhan_Nirvan_Desktop_Banner, Alizeh_Desktop_Banner) — consistent with real model/celebrity shoots. No brand-authenticity mismatch (unlike the artisan-brand AI-image risk the skill warns about). Good.
- Image alt text is the content-quality weak point (21 missing/empty alt, §2.1). For a visual fashion brand on mobile, alt text is also an image-search and accessibility asset that is being left on the table.
6.2 Trust Signals
| Signal | Present? | Note |
| Phone / email | ✅ (in footer/contact page) | support@beinghumanclothing.com, 02241517099, WhatsApp 8879802712 |
| Physical address | ✅ | ABR Emerald, MIDC Andheri East, Mumbai 400093 (contact page) |
| Return / shipping policy | ✅ | Free shipping, 15-day returns, "Shop Now Pay Later" |
| On-site customer reviews | ❌ | Biggest trust gap — no ratings on 11,581 SKUs |
| Business reg / GST | ⚠️ not surfaced on homepage | Verify GST/CIN display on footer/contact for trust |
| Sustainability proof | ✅ (Our Story) | Seed tags, recycled denim, YODA — but not on PDP schema |
| Secure checkout badges | ⚠️ not verified | Cloudflare + Shopify Payments implied; confirm visible trust badges at checkout |
6.3 Review / Social Proof
- No
AggregateRating/Review schema and no visible review widgets (Judge.me/Yotpo/Loox absent on sampled PDPs). For a 95.6%-mobile, discount-driven audience, social proof is a primary conversion lever. This is the #1 content/trust recommendation.
6.4 UX Issues
- Keyword-stuffed H1 duplicates title (§2.2).
- Generic hero copy ("We Are Human. For Real." is good brand voice, but the H1 above it is not).
- No visible breadcrumbs on homepage hero sections (schema-only).
- Search icon mislabeled (§2.1) — also a minor UX confusion.
7. Priority Recommendations
🔴 Immediate (This Week)
| # | Issue | Impact | Effort |
| 1 | Preload the LCP/hero image (rel=preload as=image fetchpriority=high) on all templates | Removes ~3–6s mobile LCP; directly lifts mobile conversion | Low |
| 2 | Add Twitter Card tags (twitter:card/title/description/image) site-wide via theme.liquid | Recovers link-previews on X/Twitter shares (currently blank) | Low |
| 3 | Fix og:image to https:// | Removes mixed-content dependency; clean social previews | Low |
| 4 | Install a reviews app (Judge.me/Yotpo/Loox) + add AggregateRating/Review schema | Biggest CRO + rich-result win for 11,581 SKUs | Medium |
| 5 | Fix a11y link labels — search icon aria-label, product-card aria-label="link" | WCAG compliance; SR usability | Low |
🟡 Short-Term (This Month)
| # | Issue | Impact | Effort |
| 6 | Cut Shopify app/script bloat (70 scripts) — audit, remove/lazy-load unused app JS | Core mobile LCP/TBT improvement | Medium–High |
| 7 | Inline critical CSS, defer non-critical, consolidate 29 stylesheets | Faster FCP/LCP on mobile | Medium |
| 8 | Add script-src CSP directive + raise HSTS to 1yr includeSubDomains; preload | Security hardening | Low–Medium |
| 9 | Distinct, brand-led H1 ("Fashion with a Heart" / purpose-led) instead of title duplicate | Brand voice + slight SEO/CTR lift | Low |
| 10 | Alt text on 21 missing/empty images (hero + category banners) | A11y + image SEO | Low–Medium (bulk) |
| 11 | Fix meta-description grammar ("every seasons wardrobe" → "every season's wardrobe") | Polish/CTR | Low |
🟢 Long-Term (This Quarter)
| # | Issue | Impact | Effort |
| 12 | Add LocalBusiness schema for the Mumbai HQ / stores | Local pack eligibility | Low |
| 13 | Add Article schema to blog posts | Google Discover eligibility | Low |
| 14 | Keyword-name hero/marketing assets for image search | Incremental image SEO | Low |
| 15 | Surface E-E-A-T (Foundation story, sustainability, Disney/Marvel collab) in homepage schema + prominent links | Trust/brand differentiation | Medium |
| 16 | Add visible trust badges at checkout; display GST/CIN in footer | Trust conversion lift | Low |
Summary Score Card
| Category | Score | Grade | Basis |
| Performance (Mobile, field CWV) | Needs Improvement | 🟡 | LCP Good (2.25s), INP 227ms (Needs Improvement), CLS Good (0.00) |
| Performance (Mobile, lab LCP) | 12.2 s | 🔴 Poor | 4.9× the 2.5s threshold |
| Performance (Desktop, lab) | LCP 1.9 s | 🟢 Good | Healthy |
| Accessibility | Defects found | 🟡 | 21 alt issues + 2 mislabeled controls; skip-link/lang/viewport OK |
| Best Practices | Mostly good | 🟡 | HSTS short, CSP missing script-src, og:http image |
| SEO | Mostly good | 🟡 | meta/canonical/sitemap/schema present; Twitter Cards + review schema missing |
| Content Quality | Mixed | 🟡 | No AI-image mismatch (good); no reviews (gap); alt gaps |
| International SEO | N/A (correct) | 🟢 | India-only; hreflang rightly absent |
| Overall | Needs Improvement (mobile-led) | 🟡 | Mobile performance + trust/review gap are the two priorities |
Sources & Evidence
- CrUX Vis —
https://cruxvis.withgoogle.com/ (origin https://www.beinghumanclothing.com/), captured 2 Sep 2026: phone CWV LCP 2253ms / INP 227ms / CLS 0.00; trend labels 2025-11 → 2026-08; device split 95.6% phone / 4.4% desktop / 0% tablet (also in business-analysis.md §5a).
- PageSpeed Insights —
https://pagespeed.web.dev/, lab run 2 Sep 2026: Mobile FCP 4.2s / LCP 12.2s / TBT 10ms / CLS 0 / SI 4.2s; Desktop FCP 0.9s / LCP 1.9s / TBT 0 / CLS 0 / SI 0.9s; CrUX panel "Core Web Vitals Assessment: Failed" (mobile). Note: lab category score tiles did not render in the headless environment across 3 runs — metric values above are from the completed run; 0–100 scores should be re-confirmed via Lighthouse CLI/DevTools.
- Live homepage DOM (
browser_navigate + browser_console), 2 Sep 2026: 70 scripts, 29 stylesheets, 2432 DOM nodes, 56 images (1 missing alt + 20 empty alt), 1 H1 (duplicates title), 3 preconnect, 1 preload-image, 46 lazy images, 419 links; JSON-LD present server-side (Organization + WebSite/SearchAction + BreadcrumbList on homepage; Product/Offer/Brand/Organization/BreadcrumbList on PDP).
curl -sI https://www.beinghumanclothing.com/ — security headers (HSTS 7889238, X-Frame-Options DENY, CSP block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests, X-Content-Type-Options nosniff, X-XSS-Protection 1;mode=block, X-Permitted-Cross-Domain-Policies none, content-language en-IN, powered-by Shopify, server cloudflare).
curl -sI http://www.beinghumanclothing.com/ — 301 → https (HTTPS enforced).
curl robots.txt — allows crawling, Sitemap: directive present, Shopify agentic-discovery hooks.
curl sitemap.xml — 12 product + 1 collection + 1 page + 1 blog sitemaps + sitemap_agentic_discovery.xml.
curl homepage + PDP meta — title/description/viewport/canonical/OG present; no twitter:* tags; og:image over http://; PDP JSON-LD @type Product/Offer/Brand/Organization/BreadcrumbList, no aggregateRating/review.
- business-analysis.md (§5a device split, §15 no-reviews, §16 tech stack, §26 citations) — business context.
Report prepared for downstream CRO / content / competitive / ad-intelligence sub-analyses. All metrics sourced above; performance lab scores flagged where the headless Lighthouse UI could not return category tiles.