Web Quality Audit: Neeman's (neemans.com)
Website: https://neemans.com | Date: 27 August 2026 | Platform: Shopify (custom "nms" theme, id 184059658283) | Industry: D2C Sustainable Footwear (India) Business context: see business-analysis.md — ₹108 Cr FY25 revenue (+38% YoY, loss ₹23 Cr), 592 SKUs, 30+ EBO stores, 250+ collection handles, phone-default mobile audience, MRP-anchoring discount model.
Executive Summary
Neeman's is a content-rich, conversion-focused Shopify store, but it carries three structural quality problems that directly threaten revenue (its audience is phone-first mobile shoppers on mid-range Android devices):
- Mobile performance is failing real users. CrUX field data (Jun–Aug 2026) shows LCP ~2,680–2,834 ms and INP ~270–280 ms — both Needs Improvement on the 75th percentile — and a clear regression from a March 2026 low (LCP 2,269 ms / INP ~210 ms). Lighthouse mobile lab data is even worse (LCP 23.8 s in the lab, FCP 6.6 s, TBT 1,580 ms), driven by render-blocking CSS (~3.9 s), a 1,130 KB+ Google Tag Manager/GA container stack, and third-party checkout/loyalty scripts (gokwik, unloq, fealtyx).
- Image alt-text is broken at scale. 58 of 370 homepage images carry literal
"Translation missing: en.Men","Translation missing: en.Category_sneaker", etc. — a localization-key bug that produces meaningless, duplicate alt text across the entire primary navigation. This is an accessibility and SEO regression (screen readers read the raw key; image search gets junk). - On-site trust/organization signals are mis-wired. The
Organizationschema logo points to a Shopifyno-imageplaceholder, has nosameAssocial profiles, and the footer Twitter link is a dead barehttps://twitter.com(real handle is@Neemans190038). The homepageog:imageis the 32×32 favicon — broken social-share previews on the most-shared page.
The site does many things right: clean HTML (html lang="en", viewport present), single logical H1, valid Organization/WebSite/BreadcrumbList/FAQPage schema on the homepage, self-referencing canonicals, HTTPS/HSTS/CSP, and product pages with good keyword titles, meta descriptions, and real og:images. But the issues above are P0/P1 for a mobile-first D2C brand whose growth depends on organic + social + paid-search traffic.
| Category | Mobile | Desktop | Grade |
|---|---|---|---|
| Performance | Failing field (LCP 2.8s NI, INP 279ms NI); Lab LCP 23.8s | Lab LCP 1.4s, TBT 490ms (Good-ish) | 🔴 Mobile / 🟢 Desktop |
| Accessibility | Alt-text bug (58 imgs); otherwise solid | Same | 🟡 |
| Best Practices | Logo placeholder, no CSP script-src, HSTS low | Same | 🟡 |
| SEO | og:image favicon, 228 collection handle sprawl, no hreflang | Same | 🟡 |
| Overall | Mobile experience degraded | Desktop acceptable | 🔴 (mobile-led risk) |
Note the mobile-vs-desktop gap ratio is >15× on LCP (lab 23.8 s mobile vs 1.4 s desktop) — the single biggest risk for a phone-default brand.
1. Performance Audit
1.1 CrUX Real-World Field Data
Source: CrUX Vis (chromeuxdash) for origin https://neemans.com. CrUX Vis exposes the phone form factor only for this origin (no desktop/tablet split is published in the tool).
Core Web Vitals Assessment: Needs Improvement on phones. LCP and INP are both in "Needs Improvement"; CLS is Good.
| Metric | Latest (2026-07-26 → 2026-08-22) | Threshold (Good / Poor) | Rating |
|---|---|---|---|
| LCP | 2,680 ms | ≤2,500 / >4,000 ms | 🟡 Needs Improvement |
| INP | 274 ms | ≤200 / >500 ms | 🟡 Needs Improvement |
| CLS | 0.01 | ≤0.10 / >0.25 | 🟢 Good |
Trend (phone, 75th pct) — clear post-March 2026 regression:
| Period | LCP (ms) | INP (ms) | CLS |
|---|---|---|---|
| 2026-03-22 | 2,269 | ~210 | 0.01 |
| 2026-04-18 | 2,275 | ~220 | 0.01 |
| 2026-05-30 | 2,336 | 230 | 0.02 |
| 2026-06-20 | 2,424 | 257 | 0.07 |
| 2026-07-04 | 2,498 | 253 | 0.02 |
| 2026-07-25 | 2,763 | 265 | 0.02 |
| 2026-08-08 | 2,824 | 279 | 0.01 |
| 2026-08-22 | 2,680 | 274 | 0.01 |
- LCP deteriorated ~18% from its March low (2,269 → 2,824 ms); INP rose ~33% (210 → 279 ms). The recent dip to 2,680 ms (Aug 22) is a slight recovery but still ~18% above the March optimum.
- CLS spiked to 0.07 in May–June 2026 then settled back to 0.01 — indicates an intermittent layout-shift bug (likely late-loading banner/slideshow images without reserved dimensions; the lab CLS culprit was the
COMFORT_CLUBslideshow image with no width/height reservation).
Interpretation: A phone-default, mobile-shopping audience is exactly the segment that feels slower loads most acutely. The 2026 regression is a revenue red flag — every 100 ms of LCP on mobile correlates with measurable conversion drop for D2C fashion. Monitor until LCP < 2.5 s and INP < 200 ms are restored.
1.2 Core Web Vitals (Lighthouse Lab Data)
Source: PageSpeed Insights, 27 Aug 2026.
| Metric | Mobile | Rating | Desktop | Rating | Threshold |
|---|---|---|---|---|---|
| FCP | 6.6 s | 🔴 Poor | 0.7 s | 🟢 Good | ≤1.8 s |
| LCP | 23.8 s | 🔴 Poor | 1.4 s | 🟢 Good | ≤2.5 s |
| TBT | 1,580 ms | 🔴 Poor | 490 ms | 🟡 NI | ≤200 ms |
| CLS | 0.00 | 🟢 Good | 0.022 | 🟢 Good | ≤0.10 |
| Speed Index | 14.3 s | 🔴 Poor | 3.7 s | 🟡 NI | ≤3.4 s |
Lighthouse mobile lab (throttled mid-tier device) is dramatically worse than field — typical of heavy render-blocking + third-party script on a slow CPU. The 23.8 s LCP lab vs 2.8 s field gap means the real-world median is saved by fast devices/caching, but a meaningful long-tail of mid-range Android users hits multi-second LCP.
1.3 LCP Phase Breakdown (Mobile, lab)
LCP element: a.slideshow__slide > div.content-over-media > picture > img (COMFORT_CLUB banner, 2500×825).
| Phase | Duration | Note |
|---|---|---|
| Time to First Byte (TTFB) | 80 ms | Healthy |
| Resource Load Delay | 220 ms | OK |
| Resource Load Duration | 60 ms | OK |
| Element Render Delay | 2,080 ms | 🔴 Dominant — main-thread blocked by scripts/CSS before paint |
The 2.08 s render delay (vs only 80 ms TTFB) confirms the bottleneck is client-side: render-blocking CSS and JS (theme.css + nms-critical + nms-global + nms-theme-override = ~3,920 ms of blocking on the main thread) plus the 1,130 KB GTM/GA stack prevent the browser from painting the hero image. Pre-resource delay is not the issue; main-thread congestion is.
1.4 Performance Issues by Impact
Critical (>1 s savings):
- Render-blocking CSS (3,920 ms main-thread). Five separate theme stylesheets (
theme.css24 KB,nms-global.css6.6 KB,nms-critical.css4.4 KB,nms-theme-override.css2.8 KB,compiled_assets/styles.css4.4 KB) load synchronously. Fix: inline critical CSS, defer/async the rest, or merge. Est. 2–4 s LCP savings on mobile. - Multiple Google Tag Manager / GA containers (1,130 KB, 1,362 ms main-thread). At least 5 GTM/GA IDs detected (GTM-578LLRZ, G-3042L5GP9T, AW-766…, G-VDE0ZFZ4LP, GT-5D9RG3BJ). GTM alone: 1,132 KB transferred, 409 ms main-thread. Fix: consolidate to one GTM container + server-side tagging; defer non-essential tags. Est. 500 ms–1 s TBT savings.
- Third-party checkout/loyalty scripts. gokwik (454 KB), unloq/fealtyx (67 KB + 58 KB unattributable), capi-automation S3 bundle, judge.me, shopify-perf-kit — all render/execute on the homepage. Fix: lazy-load below-fold widgets; load gokwik only on cart/checkout. Est. 300–600 ms TBT.
High (200 ms–1 s):
- LCP image not preloaded / oversized. COMFORT_CLUB banner is 2500×825 served full-size to mobile. Fix:
width/heightattributes +fetchpriority="high"+ preload + mobilesrcset. (Note: desktop gets a differentCOMFORT_CLUB_-_MOB_BANNER— confirm mobile actually receives the mobile variant.) - Excessive
<link rel="preconnect">/ preload. Headers list 2×cdn.shopify.compreconnect + 5 stylesheet preloads. Some preloads (styles) duplicate render-blocking. Fix: keep preconnect to 2–3 hosts; drop redundant preloads. - Large DOM size (6,783 elements; PSI flagged 6,520). Over the 1,500 "good" threshold by 4×. Fix: trim mega-menu/navigation duplication, virtualize carousels.
Medium/Low:
- Unused CSS (theme ships CSS for unused sections — confirmed
nms-search.js,theme.jsparsed but partial use). - Multiple GTM
setTimeout/long-task reflows (gtm.js:844 140 ms; wpm pixel-registration loop 2,800 ms total).
1.5 Resource Transfer Summary (Mobile)
| Category | Transfer | Main-thread | Notes |
|---|---|---|---|
| Google Tag Manager/GA | 1,130 KB | 1,362 ms | 5 containers; top CPU consumer |
| neemans.com 1st party (JS+CSS) | ~870 KB | ~5,000 ms (CPU) | theme.js, wpm, search, perf-kit |
| gokwik (checkout) | 454 KB | — | loads on homepage unnecessarily |
| unloq / fealtyx | ~125 KB | — | loyalty widget |
| Images (370 on page) | ~870 KB (lab estimate) | — | many lack proper sizing |
2. Accessibility Audit
2.1 Critical Issues
- Broken image alt text — "Translation missing" keys (58 images). Every primary-navigation category tile and hero/edition tile uses alt text like
"Translation missing: en.Men","Translation missing: en.Category_sneaker","Translation missing: en.Navigation_new_launches". This is a Shopify theme localization bug: the theme references translation keys that don't exist inen.default.json, so it outputs the raw key. Impact: screen readers announce meaningless keys; visually the images render fine but image SEO gets duplicate junk alt. WCAG A failure (images must have meaningful alt). Fix: add the missingenlocale keys in the theme'slocales/en.default.json(or hard-code the category labels), so nav tiles read "Men", "Sneakers", "New Launches", etc.
2.2 High Priority Issues
- 24 images with empty
alt=""on the homepage (decorative banners, grid.svg, testimonial portraits). Most are legitimately decorative (empty alt is correct for icons) — but testimonial customer photos (review.png,4_0a75fb22…png, etc.) usealt="", hiding real customer content from image search and violating the "descriptive alt for content images" rule. Fix: give testimonial/product photos descriptive alt (e.g., "Verified buyer review — The Loaker Tan"). - No ARIA attributes detected (
ariaAttrs: 0). The interactive elements (carousel "Go to item N", mega-menu, variant switches) rely on default semantics withoutaria-label/aria-current. The carousel dots do have accessible names ("Go to item 1") so this is borderline; addaria-currentto active states. aria-hidden/focusable icons: the category nav uses SVG icons withoutrole="img"or labels — acceptable if decorative.
2.3 Positive Findings
Skip to contentlink present (ref e1). ✅- Single
<h1>(logo/brand) + logical<h2>/<h3>hierarchy (15 h2s). ✅ <html lang="en">set. ✅<meta name="viewport">present (mobile-friendly). ✅- Visible focus styling on links/buttons (observed). ✅
- 438 links, 211 buttons — all native interactive elements. ✅
3. SEO Audit
3.1 Technical SEO
| Check | Status | Evidence |
|---|---|---|
| HTTPS enforced | ✅ | HSTS max-age=7889238 (≈91 days — see 5.1) |
| robots.txt | ⚠️ | Blocks /search, /cart, /checkout, /account (correct) but repeats Sitemap: 21× (Shopify bug — harmless but ugly). |
| XML Sitemap | ✅ | sitemap.xml index present (200); includes sitemap_products_1/2.xml, sitemap_collections_1.xml, and a new sitemap_agentic_discovery.xml (agentic-commerce discovery). |
| Canonical | ✅ | Homepage self-canonical https://neemans.com/. PDPs self-canonical. No cross-locale canonical issue (no hreflang deployed). |
| Indexation | ✅ | No noindex on important pages. |
| Mobile-friendly | ✅ | Viewport present; responsive theme. But mobile CWV failing (see §1). |
| URL structure | ✅ | Clean, hyphenated, keyword-rich (/products/rapid-breeze-serene-lace-ups-for-men-ivory). |
| Redirect chains | ⚠️ | Not exhaustively tested; canonical + Cloudflare healthy. |
3.2 On-Page SEO Issues
- Homepage title lacks keywords:
"Buy Shoes for Men & Women Online - Neemans"— brand at end, but no category keywords ("sustainable sneakers", "Merino wool shoes"). For a brand whose differentiator is sustainable materials, the title misses "comfortable sustainable footwear." Fix:"Sustainable Comfortable Footwear for Men & Women | Neeman's". - Meta description present & good on homepage (keyword-rich). ✅ PDPs also have unique, well-written descriptions. ✅
- og:image is the 32×32 favicon on the homepage.
og:image=…/favicon-32x32…png?width=2048(a 32×32 px file scaled to 2048 — pixelated garbage when shared). Twitter card image same. This breaks every Facebook/WhatsApp/Instagram-link share preview of the homepage — a major social-CTR loss for a brand that leans on social (595K IG). Fix: set a 1200×630 hero social image intheme.liquidvia the social meta object. - PDP og:image is correct (real product shot). ✅ So the bug is homepage/collection templates only — verify all non-PDP templates.
- No hreflang. Site is
en-INonly (no multilingual), so hreflang is not required — but the newsitemap_agentic_discovery.xmlsuggests agentic-commerce prep. No action needed unless they launchen-US/regional stores. - Keyword cannibalization risk from 228 collections (see 3.6).
3.3 Schema Markup
Present on homepage: BreadcrumbList, ImageObject, Organization, WebSite, FAQPage. Good coverage — but:
| Schema | Status | Issue |
|---|---|---|
| Organization | ⚠️ | logo = …/no-image-100-2a702f30_small.gif (broken Shopify placeholder). No sameAs social profiles (IG/FB/LinkedIn/YouTube omitted). Missing foundingDate, telephone is present (+91 9059938941). Fix: set a real logo asset + add sameAs array. |
| WebSite + SearchAction | ✅ | Present (sitelinks search box eligible). |
| BreadcrumbList | ✅ | Present. |
| FAQPage | ✅ | Present (rich-result eligible). |
| Product / AggregateRating | ⚠️ | On PDP, Product schema not in static HTML (JS-injected by Judge.me). aggregateRating not found in raw HTML — must verify it renders client-side. Risk: if Judge.me fails to inject, star ratings won't appear in SERPs. Recommend server-side/Shopify-native Product+AggregateRating via the product template. |
| LocalBusiness | ❌ | Not present despite 30+ physical stores. Fix: add LocalBusiness/ShoeStore with address + geo for the Hyderabad HQ / store locator. |
3.4 Image SEO
- Filenames are mostly descriptive Shopify handles (
RapidBreezeSereneLaceUpsMenIvory-Ether_12.jpg). ✅ - Alt text quality is the main gap (see §2.1 — 58 broken, 24 empty-on-content). Product PDP images need verification (browser-render timed out; flagged for follow-up).
- Lazy-load: confirmed below-fold images use
loading— but the LCP hero is correctly NOT lazy (good). The issue is hero is oversized, not lazy-loading.
3.5 Internal Linking
- 438 homepage links, 211 buttons — rich internal graph. ✅
- Category nav links to collections (200). ✅
- Broken footer Twitter link (
https://twitter.com— bare, no handle). Social proof leak + lost follower acquisition. Real handle@Neemans190038. Fix:https://x.com/Neemans190038.
3.6 Keyword Targeting & Catalog Hygiene
- 228 collection handles in sitemap, many auto-generated
spo-filter-*(e.g.,spo-filter-3f960fec865dab23adfdf47ad0079f8a) — filter/SEO bloat that dilutes crawl budget and creates near-duplicate indexable URLs. Combined with the 250+ handle count from business analysis, this is the top SEO-hygiene issue. - Recommendation (carried from business-analysis.md): consolidate to ~15–20 logical categories;
noindex/Disallowthespo-filter-*and color/occasion vanity collections.
4. International SEO
Not applicable — single locale (en-IN), no hreflang deployed, no multilingual templates. No shell-translation risk present. The sitemap_agentic_discovery.xml is a forward-looking agentic-commerce feed, not i18n. No action required unless regional stores launch.
5. Best Practices & Security
5.1 Security Headers (from curl -sSI)
| Header | Value | Assessment |
|---|---|---|
| Strict-Transport-Security | max-age=7889238 (~91 days) | 🟡 Low — should be max-age=31536000; includeSubDomains; preload (≥1 year). |
| Content-Security-Policy | block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests; | 🟡 Missing script-src / object-src 'none' — no script allowlist; weak against XSS. Add a real CSP with nonces. |
| X-Frame-Options | DENY | ✅ |
| X-Content-Type-Options | nosniff | ✅ |
| X-XSS-Protection | 1; mode=block | ✅ (legacy, harmless) |
| Referrer-Policy | (not set) | 🟡 Add strict-origin-when-cross-origin. |
Cloudflare fronts the origin; COOP missing (low impact). Overall: good baseline, but CSP needs a script-src policy and HSTS max-age should be ≥1 year for a payments-handling store.
5.2 Modern Standards
- Valid HTML5, UTF-8 charset. ✅
- No
document.write/ sync XHR observed. ✅ - No mixed content (CSP
upgrade-insecure-requests+block-all-mixed-content). ✅ - 9 iframes on homepage (gokwik/unloq/loyalty widgets) — acceptable but each is a third-party risk surface.
6. Content Quality Assessment
6.1 Image Quality & Authenticity
- No AI-generated-image fingerprint patterns detected in filenames (
Gemini_Generated_,ChatGPT_Image_,ai0_,unnamed_1). Product/campaign imagery uses real Shopify CDN assets (e.g.,COMFORT_CLUB_-_WEB_BANNER.jpg,RapidBreezeSereneLaceUps…jpg). For a "Made-in-India / natural materials" brand, authentic photography is intact — no brand-authenticity mismatch (unlike the critical AI-image risk flagged for artisan brands). ✅ - Testimonial images (
4_0a75fb22…png,review.png) are small customer photos with empty alt — fine visually, fix alt (see §2.2).
6.2 Trust Signals
- Phone +91 9059938941 (TollFree contactPoint in schema). ✅
- Email info@neemans.com, privacyofficer@neemans.com. ✅
- Policies: shipping-return (200), privacy (200), contact (200) all live. ⚠️
/pages/terms-of-service,/pages/about-us,/pages/track-your-orderreturn 404 — broken/incomplete policy pages (about-us 404 is a notable trust + E-E-A-T gap for a brand with a strong founding story). Fix: publish About/Terms/Track-Order. - Reviews: Judge.me integrated (homepage surfaces Flipkart/Amazon rating badges). ⚠️ AggregateRating schema not in static HTML (JS-injected) — verify rich-result eligibility.
- Business registration / GST: not surfaced on-site (common for D2C; low priority).
6.3 E-E-A-T
- Experience/Expertise: founding story ("Change the Norm", Merino wool first-mover) present on
/pages/neemans-storyand/pages/why-neemans. ✅ But/pages/about-us404 means the story isn't in the standard About slot. - Authoritativeness: press (ET, Inc42), founder 40Under40 — external, not on-site.
- Trustworthiness: HTTPS, policies, phone/email present. Org schema logo broken undermines entity trust in structured data.
7. Priority Recommendations
🔴 Immediate (This Week)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 1 | Fix "Translation missing" alt-text bug (add en locale keys for nav categories) | A11y compliance + image SEO on 58 critical nav images | Low (theme locale file) |
| 2 | Replace homepage og:image favicon with 1200×630 hero social image (all non-PDP templates) | Fixes broken social-share previews (595K IG audience) | Low (theme.liquid) |
| 3 | Fix footer Twitter link → https://x.com/Neemans190038 | Restores social proof / follower acquisition | Trivial |
| 4 | Consolidate GTM/GA to 1 container + server-side tagging; defer non-essential tags | −500 ms–1 s mobile TBT, faster INP | Medium |
🟡 Short-Term (This Month)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 5 | Inline critical CSS + defer/merge 5 theme stylesheets | −2–4 s mobile LCP (lab 23.8 s → target <4 s, field <2.5 s) | Medium |
| 6 | Lazy-load gokwik/unloq/fealtyx widgets; load checkout SDK only on cart/checkout | −300–600 ms TBT | Medium |
| 7 | Add width/height + fetchpriority=high + preload to LCP hero; serve mobile srcset | Reduces LCP render delay (2.08 s) | Low |
| 8 | Fix Organization schema: real logo + sameAs social array + foundingDate | Entity/brand trust in SERPs | Low |
| 9 | noindex/Disallow spo-filter-* + vanity collections; consolidate to ~15–20 categories | Crawl-budget + keyword cannibalization fix | Medium |
| 10 | Add LocalBusiness/ShoeStore schema (30+ stores) | Local pack + store-locator rich results | Medium |
🟢 Long-Term (This Quarter)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 11 | Strengthen CSP (script-src nonce) + raise HSTS to max-age=31536000; includeSubDomains; preload + add Referrer-Policy | Security hardening for payments | Low |
| 12 | Server-side/inject Product + AggregateRating schema on PDPs (don't rely on Judge.me JS) | Star ratings in SERPs | Medium |
| 13 | Publish /pages/about-us, /pages/terms-of-service, /pages/track-your-order (currently 404) | E-E-A-T + trust completeness | Low |
| 14 | Reduce DOM size (6,783 → <2,000) via mega-menu/virtualization | Performance + maintainability | High |
| 15 | Monitor CrUX until LCP <2.5 s & INP <200 ms restored (reverse 2026 regression) | Protect mobile conversion | Ongoing |
Summary Score Card
| Category | Score | Grade |
|---|---|---|
| Performance (Mobile) | Failing field (LCP 2.8s NI, INP 279ms NI) / Lab LCP 23.8s | 🔴 |
| Performance (Desktop) | Lab LCP 1.4s, TBT 490ms | 🟢 |
| Accessibility | Alt-text bug (58 imgs) + empty content-alt | 🟡 |
| Best Practices | Logo placeholder, weak CSP, low HSTS | 🟡 |
| SEO | og:image favicon, 228-collection sprawl, no hreflang (N/A) | 🟡 |
| Content Quality | Authentic photos, but About/Terms 404, Org logo broken | 🟡 |
| UX | Rich nav, but mobile perf + broken social share | 🟡 |
| Overall | Mobile-led risk; desktop acceptable | 🔴 (mobile) |
Sources Cited
https://cruxvis.withgoogle.com/#/(originhttps://neemans.com) — CrUX phone field CWV: LCP/INP/CLS time series 2025-10 → 2026-08-22 [field performance]https://pagespeed.web.dev/— Lighthouse lab metrics (Mobile + Desktop), 27 Aug 2026 [lab performance, opportunities, diagnostics]https://neemans.com/— live DOM audit via browser_console (scripts 202, stylesheets 29, iframes 9, images 370, 58 "Translation missing" alt, 24 empty-alt, h1=1, schema types, og:image, Organization schema, footer Twitter link) [accessibility, SEO, schema]https://neemans.com/products/rapid-breeze-serene-lace-ups-for-men-ivory— PDP title/meta/og:image (via curl; browser-render timed out due to 23.8 s LCP) [on-page SEO]curl -sSI https://neemans.com/— security headers (HSTS, CSP, X-Frame-Options, X-Content-Type-Options) [best practices]https://neemans.com/robots.txt— crawl rules + 21× repeatedSitemap:directive [technical SEO]https://neemans.com/sitemap.xml— sitemap index (products_1/2, collections_1, agentic_discovery) [technical SEO]https://neemans.com/sitemap_collections_1.xml— 228 collection handles incl.spo-filter-*auto-generated [catalog hygiene/SEO]business-analysis.md(workspace) — company context, 250+ collection sprawl, broken Twitter handle @Neemans190038, phone-default audience, CrUX regression [business context]
Note: The PDP (product detail page) could not be fully rendered in the audit browser session (Lighthouse-lab LCP of 23.8 s caused navigation timeouts). Product-page-specific checks (full image-alt audit, Judge.me AggregateRating injection, PDP schema) are flagged for follow-up verification via a faster environment or server-side fetch.