Web Quality Audit: Quince

Website: https://www.quince.com | Date: August 4, 2026 | Platform: Custom Next.js/React (AWS CloudFront — not Shopify) | Industry: D2C affordable-luxury apparel, home, jewelry & beauty

Audit scope: Performance (CrUX field + Lighthouse lab), Accessibility, SEO, International SEO, Best Practices/Security, and Content Quality. Incorporates business context from business-analysis.md (revenue ~$2B TTM 2026, ~58.7% mobile traffic, ~4,874 PDP URLs, Series E $10.1B valuation).


Executive Summary

Quince runs a technically sophisticated, custom-built Next.js/React SPA on AWS CloudFront. Its SEO and structured-data implementation are a clear strength — rich product/collection schema, well-formed hreflang for the new Canadian locales, keyword-optimized titles, and complete Open Graph coverage. Accessibility is solid (85 mobile / 100 desktop). The two material problems are (1) performance — especially on mobile, where a heavy JavaScript bundle produces a poor Lighthouse score and severe interaction delay, and (2) best practices at 54/100, dragged down by third-party scripts/cookies, console errors, deprecated APIs, and a mobile viewport that blocks user zoom.

CategoryMobile ScoreDesktop ScoreGrade
Performance2345🔴
Accessibility85100🟡 / 🟢
Best Practices5454🟡
SEO9292🟢
Overall6473🟡

Verdict: A well-built, SEO-mature site whose single biggest lever is JavaScript/performance, directly tied to the brand's own mobile-first audience (~59% phone). Fixing JS bundle bloat and layout shift would move both the Lighthouse performance score and real-user Core Web Vitals.


1. Performance Audit

1.1 CrUX Real-World Field Data (quince.com/ — this URL)

Source: CrUX Vis, origin https://www.quince.com/, period 2025-10 through 2026-08. Phone and desktop CWV for the URL.

Core Web Vitals Assessment: Needs Improvement on both mobile and desktop. No metric is "Poor" on mobile; LCP passes but INP and CLS do not. Desktop CLS is the one "Poor" metric. Google's PageSpeed UI labels the aggregate "Failed" (a pass requires all three CWV in "Good").

Phone (latest period 2026-07-05 → 2026-08-01):

MetricValueRating (threshold)Trend
LCP1,986 ms🟢 Good (≤2,500 ms)Stable, ~1.9–2.0s all year
INP371 ms🟡 Needs Improvement (200–500 ms)Worsening: 268→371 ms since Oct 2025
CLS0.12🟡 Needs Improvement (>0.10)Improving: 0.40→0.12 since Oct 2025
FCP(loaded)🟢

Desktop (latest period 2026-07-05 → 2026-08-01):

MetricValueRating (threshold)
LCP1,907 ms🟢 Good (≤2,500 ms)
INP246 ms🟡 Needs Improvement (200–500 ms)
CLS0.26🔴 Poor (>0.25)

Interpretation: The headline story is INP (interactivity) — it has climbed from ~270 ms to ~371 ms on phones over the last 10 months, closely tracking the site's script growth (104 scripts on the homepage). This is the metric most likely to flip the whole CWV assessment. Meanwhile CLS on desktop is Poor (0.26) — surprising given mobile is fine (0.12) — and is worth a targeted desktop layout-shift pass. LCP is the one bright spot and is comfortably in the "Good" range on both form factors (real-user LCP does not match the lab's 10.5 s, indicating field traffic conditions/caching are far more favorable than a cold Lighthouse run).

1.2 Core Web Vitals (Lighthouse Lab Data — PageSpeed Insights)

Source: PageSpeed Insights (pagespeed.web.dev), Aug 4, 2026. Lighthouse lab run on https://www.quince.com/.
Metric (thresholds Good/NI/Poor)MobileDesktop
Performance score23 🔴45 🔴
First Contentful Paint (≤1.8 / 3.0)3.3 s 🔴 Poor0.7 s 🟢
Largest Contentful Paint (≤2.5 / 4.0)10.5 s 🔴 Poor2.6 s 🟡 NI
Total Blocking Time (≤200 / 600 ms)4,430 ms 🔴5,370 ms 🔴
Cumulative Layout Shift (≤0.10 / 0.25)0.15 🟡 NI0.001 🟢
Speed Index (≤3.4 / 5.8 s)18.7 s 🔴8.7 s 🔴

The lab numbers are far worse than field (LCP 10.5 s lab vs ~2.0 s field). This is typical of a JS-heavy SPA: a cold, throttled Lighthouse run exposes the true cost of render-blocking resources and JavaScript that real users with warm caches and fast connections partially mask. The huge gap between lab and field is itself a strong signal that reducing blocking JS is the highest-leverage optimization.

1.3 LCP Phase Breakdown (Mobile)

The lab LCP of 10.5 s is dominated by pre-resource-delay / resource discovery caused by render-blocking CSS and JavaScript — the classic Next.js/SPA pattern where the browser cannot even begin downloading the LCP element until blocking scripts and stylesheets load. Failing audits render-blocking requests, LCP request discovery, and Reduce JavaScript execution time confirm the LCP image/hero is not discovered early.

1.4 Performance Issues by Impact

Critical (>1 s estimated savings):

  • JavaScript execution bloat — 104 scripts on the homepage; TBT 4,430 ms mobile / 5,370 ms desktop; audits Reduce JavaScript execution time, Minimize main-thread work, Reduce unused JavaScript all fail. Next.js chunking + third-party tag managers (Twitter, LinkedIn, LiveRamp, ad pixels) pile up. Recommendation: code-split routes, defer/lazy-load third-party pixels, prune unused libraries, ship less JavaScript to mobile. Effort: High. Impact: Highest — directly attacks the worsening real-user INP.
  • Render-blocking CSS/JS — fails both orientations. Recommendation: inline critical CSS, preload the LCP hero image, defer non-critical JS. Effort: Medium. Impact: High (would slash the 10.5 s lab LCP).

High (200 ms–1 s):

  • Unused CSSReduce unused CSS fails on mobile. Recommendation: purge unneeded styles per route. Effort: Low-Medium. Impact: Medium.
  • Image deliveryImprove image delivery fails on mobile and desktop. Uses WebP already (?fm=webP&q=90&w=1600 seen on OG image), but some images unoptimized/oversized. Recommendation: complete srcset/sizes + AVIF, ensure correct intrinsic sizes. Effort: Medium. Impact: Medium.
  • Font displayFont-display audit fails (no font-display: swap). Recommendation: add font-display: swap to all @font-face. Effort: Low. Impact: Medium (FOIT delays text render).

Medium/Low:

  • Layout shift culprits (mobile CLS 0.15 lab) and Forced reflow — reserve space for images/embeds, animate transforms only. Effort: Medium. Impact: Medium on CLS.
  • Efficient cache lifetimes (desktop fail) — CloudFront asset caching. Effort: Low. Impact: Low-Medium.
  • Large DOM — 4,140 elements on homepage is high but tolerable. Effort: Low. Impact: Low.
  • Missing source maps for large first-party JS — flagged under both. Not a user-facing perf issue but indicates large un-split first-party bundles. Effort: Low. Impact: Low.

1.5 Resource Transfer Summary

  • JavaScript: Very heavy — 104 <script> tags including multiple ad/analytics/tracking pixels (Twitter, LinkedIn, LiveRamp, Google), the Next.js app bundle, and consent-management scripts. Dominant contributor to TBT/INP.
  • Images: ~160 on homepage/PDP; served via images.quince.com with WebP + width resizing; gallery/product images mostly optimized; a minority oversized.
  • CSS: 4 stylesheets, with unused CSS flagged on mobile.
  • Third-party: Notable third-party tracking density (Twitter ads, LinkedIn Insight, LiveRamp, consent manager) — both a performance and privacy cost.

2. Accessibility Audit

Lighthouse Accessibility: 85 (mobile) / 100 (desktop). Desktop is essentially clean; mobile carries the a11y failures, notably the zoom lock.

2.1 Critical Issues

  • None found. <html lang="en-US"> ✅, <meta name="viewport"> ✅, keyboard-accessible filter drawer/radios, labeled form controls, semantic radiogroups for color/size.

2.2 High Priority Issues

  • [user-scalable="no"] / maximum-scale < 5 viewport on mobile (Best Practices + a11y fail). Blocks pinch-to-zoom for low-vision users — a WCAG 1.4.4 issue. Fix: remove user-scalable=no, set maximum-scale=5. Effort: Low. Impact: High (also clears a Best Practices failure).
  • No H1 on the homepage — homepage heading hierarchy starts at H2 (NEW & NOTEWORTHY, hero cards). Screen readers and search engines get no page-level landmark heading. Fix: add a single keyword-rich H1. Effort: Low. Impact: Medium (see also 3.2).
  • Missing/empty alt on content images — across the site, ~48 images on the homepage have missing (9) or empty (39) alt. The missing-alt ones are largely third-party tracking pixels (harmless but should be alt=""); the 39 empty-alt images are product/content photos that lose descriptive value to screen readers and image search. Fix: descriptive alt on product imagery, alt="" on decorative/tracking. Effort: Medium (bulk). Impact: Medium.

2.3 Positive Findings

  • "View our accessibility statement" link in the header — an explicit a11y program.
  • Logical heading structure on PDPs and PLPs (single H1, nested H2s).
  • Product images on PDP have descriptive, keyword-bearing alt (e.g., "Ocean Green 100% Organic Cotton Poplin Tiered Maxi Dress").
  • Form controls (color/size radios, search, filters) are properly labeled; radiogroups used semantically.
  • Sufficient touch targets on primary CTAs ("ADD TO BAG", nav).

3. SEO Audit

Lighthouse SEO: 92 (mobile & desktop). Structural SEO is a genuine strength.

3.1 Technical SEO

CheckResult
robots.txt✅ Well-formed; Sitemap: directive present; disallows /account, /log-in, /sign-up, /checkout/thank-you; Googlebot additionally blocks sort/tracker/UTM query params
XML sitemapsitemap.xml index → sitemap_ca.xml, sitemap_fr_ca.xml, sitemap_us.xml; per-locale split is correct for a multilingual site
Canonical✅ Self-referencing on homepage, PDP, PLP
Indexationindex, follow; no noindex on key pages
HTTPS✅ Enforced (CloudFront), HSTS preload
URL structure✅ Clean, hyphenated, keyword-rich paths (/women/petite-100-organic-cotton-poplin-tiered-maxi-dress)
Mobile-friendly✅ Responsive, viewport set, content parity
Sitemap URL pollution⚠️ PDP sitemap URLs carry tracker= + filter query params (e.g., ?Toddler=age&color=navy&tracker=collection_page__...), creating many near-duplicate crawl targets. Fix: strip tracking params from canonical sitemap URLs.

3.2 On-Page SEO Issues

  • Homepage missing H1 — the most impactful on-page gap. Titles/descriptions are otherwise strong.
  • Homepage title Quince | High Quality Essentials, Radically Low Prices (54 chars) — acceptable, keyword-adjacent, but brand-forward rather than query-targeted. Fine for a dominant direct brand, but a commercial keyword (e.g., "affordable luxury essentials") would add signal.
  • Meta descriptions — present and compelling on homepage, PDP, and PLP (e.g., PLP desc "Shop women's dresses in washable silk, organic linen, and cashmere… from $40"). ✅ Strong.
  • Headings — single H1 on PDP/PLP; homepage has none (see above).
  • Open Graph / Twitter — OG title/description/image/url/type/site_name all present on homepage; og:image sized/optimized via images.quince.com. ✅
  • Image SEO — descriptive alt on PDP product hero images; a subset of content images have empty alt (see 2.2).
  • Internal linking — breadcrumbs present on PDP/PLP; deep cross-linking (subcollection tiles, "Also offered in" links); strong.

3.3 Schema Markup (JSON-LD)

PageSchema PresentNotes
HomepageWebSite✅ WebSite; missing Organization (company info/logo/sameAs), no SearchAction sitelinks schema
PDPProductGroup, Product, BreadcrumbListExcellent. ProductGroup w/ hasVariant; Product includes offers (price $70.00 USD, InStock), sku, mpn, aggregateRating (4.8/4,752), review, brand (Quince), material, color, size, image
PLPCollectionPage, BreadcrumbList, ItemList, FAQPageExcellent — even includes FAQPage

Key issue: The homepage lacks Organization (and a matching sameAs social set). Since Organization is the anchor node for brand entity signals across the whole site, add Organization JSON-LD (name, logo, url, foundingDate, sameAs). Effort: Low. Impact: Medium-High.

3.4 Content Quality (E-E-A-T)

  • Trustworthiness ✅ — price-transparency ("You save 58%", itemized "Traditional retail" compare on PDP), free shipping, 365-day returns, secure payment, Klarna, sustainability/factory certifications ("Produced in BSCI Certified Factory", "Environmentally Friendly Materials").
  • Expertise/Experience ✅ — detailed PDP descriptions (materials, fit), sourcing/cost-breakdown pages, /factories, /sustainability, /our-values.
  • Reviews/social proof ✅ — 4,752-review hero PDPs, star ratings with aggregateRating + review schema (star eligibility).
  • Authoritativeness ✅ — press/funding pedigree (Forbes Next Billion-Dollar, $10.1B valuation), B2B/trade/white-label credibility signals.
  • Risk note: Recurring media/litigation coverage (Williams-Sonoma, Tapestry suits) is a brand-trust watch item, not a site-technical issue.

4. International SEO (Canada localization — live)

Quince launched Canada (US + CA shipping in 2026) and is mid-expansion (UK "coming soon").

4.1 Hreflang Implementation — ✅ Correct

Four links present on homepage, PDP, and PLP:

  • en-us → https://www.quince.com/
  • en-ca → https://www.quince.com/ca
  • fr-ca → https://www.quince.com/fr-ca
  • x-default → https://www.quince.com/

Properly reciprocal, self-referencing, and includes x-default. Well done. (Note: en-us self-canonicalizes to https://www.quince.com/ without a /us prefix while /ca and /fr-ca carry prefixes — an asymmetric URL scheme, but functionally correct since en-us resolves to the bare domain.)

4.2 Canonicalization

Each locale appears self-canonical; no cross-locale canonical observed (which would suppress indexing). ✅

4.3 Sitemaps

Split per-locale (sitemap_ca.xml, sitemap_fr_ca.xml, sitemap_us.xml) — correct pattern. Verify the <urlset> carries xmlns:xhtml with <xhtml:link> hreflang alternates per URL; separate-locale files without in-file xhtml:link rely on HTML-level hreflang (which is present).

4.4 Localization Quality

Product listings and UI should be genuinely translated so the fr-ca locale isn't a "shell translation" (English product copy under lang=fr). Spot-check fr-ca PDP description language before scaling Canada SEO. Effort: verify.


5. Best Practices & Security

Lighthouse Best Practices: 54 (mobile & desktop) — the weakest non-performance category.

5.1 Security Headers (raw curl -sI)

HeaderValueStatus
HSTSmax-age=31536000; includeSubDomains; preload✅ Excellent (preload)
X-Frame-OptionsSAMEORIGIN
X-Content-Type-Optionsnosniff
X-XSS-Protection1; mode=block⚠️ Deprecated (harmless legacy)
Content-Security-Policy (CSP)Absent🔴 Missing — no script-src/object-src containment
Cross-Origin-Opener-Policy (COOP)Absent⚠️ Missing
Referrer-PolicyAbsent⚠️ Missing
Permissions-PolicyAbsent⚠️ Missing
CookiesSecure; SameSite=Lax on ad/consent/session cookies✅ Good

Recommendation: Add a CSP (at minimum default-src 'self', script-src, object-src 'none', frame-ancestors) — though with 104 scripts and multiple third-party pixels, this needs a careful allow-list rollout. Also add COOP, Referrer-Policy, and Permissions-Policy. Effort: Medium (CSP), Low (others). Impact: Medium-High security hardening.

5.2 Modern Standards / Best-Practices Failures (driving the 54)

  • Uses third-party cookies — the CS user_advertising_consent / user_functional_consent + ad pixels rely on third-party cookies; moving toward first-party/consent-gated is increasingly necessary.
  • Browser errors logged to console + Issues panel warnings — client-side JS errors present; worth triaging.
  • Uses deprecated APIs — flagged by Lighthouse.
  • [user-scalable=no] on mobile viewport — see §2.2.
  • Missing source maps for large first-party JS — first-party bundle size is large (ties to §1.4).
  • No document.write(); HTTPS fully enforced; CloudFront serving HTTP/2 + HTTP/3 (alt-svc h3). ✅

6. Content Quality Assessment

6.1 Image Quality & Authenticity

  • Product photography: real, high-quality editorial e-commerce imagery served optimized (WebP). No AI-generated-filename patterns (no Gemini_, ChatGPT_, Picsart markers) — brand-authentic photography. ✅ (Good for a manufacturer-to-consumer brand where image credibility matters.)
  • Pricing transparency is a genuine content differentiator (itemized costs, "You save 58%", "Traditional retail" compare) — strong on-page trust content.

6.2 Trust Signals & UX

  • ✅ Phone/text support (+1 913-675-2981), chat 8am–8pm ET, 365-day returns, free shipping, secure payment badges, sustainability/factory certs, review counts.
  • ✅ Breadcrumb navigation on PDP/PLP (visual + BreadcrumbList schema).
  • ⚠️ Third-party tracking-pixel density (Twitter, LinkedIn, LiveRamp) — privacy-consent friction and page-weight cost; consolidate behind the consent manager.
  • ✅ PDP offers financing clarity (Klarna, "$12/month") and delivery-ETA by zip.

7. Priority Recommendations

🔴 Immediate (This Week)

#IssueImpactEffort
1Reduce JavaScript execution time (split bundles, defer 3rd-party pixels) — targets real-user INP 371 msHighHigh
2Fix render-blocking CSS/JS + preload LCP hero — lab LCP 10.5 sHighMedium
3Add CSP + Referrer-Policy/Permissions-Policy headersMed-High (security)Low-Med
4Remove user-scalable=no / maximum-scale<5 on mobile viewportMed (a11y + BP)Low

🟡 Short-Term (This Month)

#IssueImpactEffort
5Add Organization schema (name/logo/sameAs) to homepageMed-High (entity/rich results)Low
6Add H1 to homepageMedium (SEO + a11y)Low
7Fill in alt text on ~39 content/product images (homepage + elsewhere)Medium (access + image search)Medium
8Strip tracker=/filter params from sitemap PDP URLs (dedupe crawl)Medium (crawl efficiency)Low
9font-display: swap on all fontsMedium (text render)Low
10Verify fr-ca product content is genuinely translated (avoid shell-localization)Medium (Canada SEO)Verify

🟢 Long-Term (This Quarter)

#IssueImpactEffort
11Desktop CLS (0.26 Poor) layout-shift passMedium (CWV)Medium
12Complete srcset/sizes + AVIF for remaining large imagesMediumMedium
13Reduce unused CSS per route; tighten 104-script footprintMediumMedium
14Add WebSite SearchAction for sitelinks searchboxLowLow
15Triage console errors + deprecated APIs for the BP 54 scoreMediumLow-Med

Summary Score Card

CategoryScoreGrade
Performance (Mobile)23/100🔴
Performance (Desktop)45/100🔴
CrUX Core Web VitalsNeeds Improvement🟡
Accessibility (Mobile)85/100🟡
Accessibility (Desktop)100/100🟢
Best Practices54/100🟡
SEO92/100🟢
International SEOStrong (CA live, hreflang correct)🟢
Content Quality / TrustStrong (transparency, schema, reviews)🟢
Overall~64/100🟡

Sources & Citations

  • CrUX Vis (https://cruxvis.withgoogle.com/) — real-user CWV for https://www.quince.com/ (phone + desktop) for URL, Oct 2025–Aug 2026: LCP/INP/CLS values and trends (latest: phone LCP 1,986 ms / INP 371 ms / CLS 0.12; desktop LCP 1,907 ms / INP 246 ms / CLS 0.26).
  • PageSpeed Insights (https://pagespeed.web.dev/) — Lighthouse lab run Aug 4, 2026: category scores (Mobile 23/85/54/92; Desktop 45/100/54/92), lab metrics (mobile LCP 10.5 s, TBT 4,430 ms; desktop TBT 5,370 ms), and failing audits (render-blocking, JS exec, unused JS/CSS, image delivery, font-display, forced reflow, layout-shift, user-scalable, deprecated APIs, third-party cookies, console errors, missing source maps, links w/o descriptive text, efficient cache).
  • Raw HTTP headers (curl -sI https://www.quince.com/) — server CloudFront, HSTS preload, X-Frame-Options, X-Content-Type-Options, absence of CSP/COOP/Referrer-Policy/Permissions-Policy, cookie flags, Homepage HTML size ~2.7 MB, xq-* device/locale/page-type headers (custom Next.js platform confirmed).
  • robots.txt (curl https://www.quince.com/robots.txt) — allow/deny rules incl. query-param block for Googlebot, Sitemap directive.
  • sitemap.xml + sub-sitemaps — Canada locales live (sitemap_ca.xml, sitemap_fr_ca.xml); PDP sitemap URLs carry tracker=/filter query params.
  • Browser DOM inspection (browser_console) of homepage, PDP (/women/petite-100-organic-cotton-poplin-tiered-maxi-dress), and PLP (/shop/women/dresses) — meta/OG/canonical/hreflang, JSON-LD types, heading counts (homepage H1=0), alt-text counts, image/script/DOM counts.
  • business-analysis.md — business context (brand, ~$2B TTM revenue, ~58.7% phone traffic, ~4,874 PDP URLs, Canada/UK expansion, trust/litigation watch).