Sweet Dreams (sweetdreams.in) — Consolidated CRO Audit

Brand: Sweet Dreams (S D Retail Ltd., NSE: SDREAMS) Website: https://www.sweetdreams.in Audit date: 2026-08-27 Prepared by: CRO audit pass (synthesis of pageaudit/*.md + business-analysis.md) Scope: Full funnel — Homepage → PLP → PDP → Cart → Checkout → Support/Utility pages, read against business context.

0. How to Read This Report

This is the master CRO document. It consolidates five page-level audits (homepage, PLP, PDP, cart-checkout, support-utility) into a single prioritized view. Each finding below cites the page audit it came from. Severity is normalized to one scale:

  • CRITICAL — the funnel breaks; this alone causes catastrophic abandonment.
  • MAJOR — material conversion loss; fix in the next sprint.
  • MODERATE — real friction or trust gap; schedule soon.
  • MINOR — quality/hygiene; fix opportunistically.

Device-coverage honesty note (carried from every page audit): The audit toolset renders a desktop 1280px browser only — there is no true mobile viewport or screenshot. Mobile-specific behavior (hamburger, sticky buy-bar, touch targets, mobile filter sheet) is inferred from the responsive DOM, not observed on a real phone. All such findings are tagged [inferred]. This is a known limitation, not a pass.


1. Business Context (why these findings matter)

From business-analysis.md:

  • Position: India's #1 sleepwear-focused brand (family-wide: women/men/kids 2–16). Listed NSE SME (SDREAMS), FY25 revenue ₹173 cr (+6.45%), net profit ₹8.56 cr.
  • Channel mix: Offline-led — majority revenue from 75 EBOs + MBO/distributors. D2C is a growing minority the RHP explicitly says must scale.
  • Price tier: Mass-to-mid (core pyjama sets ₹1,049–₹1,799; best-sellers median ~₹2,599).
  • Segment behavior: Low-to-mid AOV → impulse + repeat-purchase; the dominant conversion levers are fit certainty, social proof/reviews, and low-friction add-to-cart with COD/return reassurance.
  • Differentiators: proprietary fabric library (14+ trademarked fabrics), character licensing (Snoopy/Minions/Garfield), moods segmentation, omnichannel + listed credibility.
  • Known technical risk (from CrUX): phone LCP good (~1.7–2.1s) but INP regressing (140→247ms) and CLS spiked to 0.17 (above the 0.10 "good" threshold) — a mobile conversion risk flagged across the page audits.
  • Catalog gaps noted: no quick-commerce, no subscription, no app, under-scaled men's "SD Move", no plus-size, weak review/UGC depth.

Strategic read: The D2C storefront is the brand's lowest-friction acquisition surface and the one channel management wants to grow. The findings below show the storefront is well-built on discovery and trust-fundamentals but broken at the two moments that actually convert: add-to-cart and checkout. Fixing the functional breakages (Section 2) is worth far more than the cosmetic gaps.


2. Critical Findings (fix first — funnel-breaking)

#FindingSourceEvidenceRecommended fixSuccess metric
C1PDP "ADD TO BAG" does not add to cart in the rendered storefront (Gokwik intercept silently fails; badge/drawer stay empty)cart-checkout §2–3, pdp §5CClicked "ADD TO BAG" (genuine click, size selected) → no drawer, badge stayed "0", cart icon showed empty. Reproduced across reloads. Console: No Gokwik ----->. Standard cart/add.js works when called directly, so the variant mapping is fine — the button is broken.Fix the Gokwik/theme integration so the on-page add reliably writes to the cart and opens the drawer; add a fallback that POSTs to /cart/add.js if the accelerator handler doesn't confirm success. Verify on real devices/browsers.Add-to-cart success rate; cart item_count on add.
C2Cart quantity "+" stepper wipes the ENTIRE cart (reproduced on drawer + dedicated /cart)cart-checkout §3Clicked qty "+" → cart emptied ("Your cart is empty", badge "0"). Reproduced twice. Root cause is in the theme's cart JS (reproduces on native /cart, which Gokwik does not control) — independent of the PDP add bug.Patch the AJAX qty-increment handler (it is deleting the line/cart instead of updating quantity). Add a regression test for qty 1→2→1.Cart-edit success rate; abandoned-cart rate.
These two are hard functional defects, not "missing social proof" nuance. C1 + C2 together mean a shopper often can't add, and if they do, can't change quantity without losing everything. This is the single biggest leak on the site — higher priority than anything in Sections 3–5.

3. Major Findings (next sprint)

3.1 Funnel architecture / checkout

#FindingSourceEvidenceFixMetric
M1Checkout entry is a mandatory GoKwik phone-login gate (pdp.gokwik.co iframe) that hides native email guest checkoutcart-checkout §4, pdp §5CClicking the real CHECKOUT CTA injected a cross-origin Gokwik iframe with a mandatory mobile-number field + OTP. Native Shopify checkout (loaded directly) offers email-only guest with no phone. The two paths disagree; the on-site one is the higher-friction path a real shopper hits.Either (a) let the Gokwik gate offer a "Continue as guest / email" path, or (b) restore a visible standard Shopify checkout option. Don't force OTP phone login before shipping/payment.Checkout-start rate; guest-vs-login split.
M2Cart↔client sync lag — even a successful server-side add doesn't reflect in the UI (badge/drawer stay "0") until a full reloadcart-checkout §3Seeded cart showed badge "0"/empty drawer until browser_navigate to /cart re-synced.Ensure the add handler updates theme cart state client-side (open drawer, bump badge) on success, not just on reload.Cart-open rate after add.
M3Empty-cart dead-end — only "CONTINUE SHOPPING"; no recommendationscart-checkout §3After the qty+ wipe the empty state had only a bare link. Ironically, the "Customers also bought" rail exists for non-empty carts but vanishes when empty.When empty, reuse the existing "Customers also bought" rail as a "Trending / Best Sellers" carousel with quick-add.Empty-cart recovery rate.

3.2 Trust / social proof / discovery

#FindingSourceEvidenceFixMetric
M4Reviews are absent site-wide — Judge.me is UNINSTALLED (not "PDP-only" as initially assumed)plp §1, pdp §4Template comment: snippets/judgeme_widgets.liquid was not rendered, the associated app was uninstalled. Zero stars/counts/photos on PLP cards AND PDPs, confirmed by wait+reload+static HTML.Reinstall Judge.me (or Loox/Yotpo) and seed 5–10 reviews w/ photos per top SKU. The widget then appears on PDP, PLP cards, and homepage uniformly.PDP→cart rate; review coverage %.
M5Homepage hero is image-only — no value-prop headline or CTA above the foldhomepage §10 (#1/#2)6 image slides, no text overlay, empty <h1> in live DOM. First CTA (SHOP NOW) is ~1 scroll down. VP exists only in the tab <title>.Add a hero overlay headline + primary CTA (Shop Women / Shop Men).Hero→PLP CTR.
M6Conflicting support hours — Contact page "Mon–Sat 9AM–6PM" vs site-wide footer "10 AM to 7 PM"support §1.2, C1Two different support windows published on the same site; directly undermines the trust the Contact page exists to provide.Single source of truth; sync footer + contact hours.Support-contact rate; fewer "are you open?" queries.
M7Store Locator is fully JS-rendered (79 rows) — feeds the regressing INP / CLS 0.17support §1.5, F14Static HTML has only template labels, no store data. Homepage audit already flagged CrUX INP/CLS regression.SSR or paginate the store list.CrUX INP/CLS.
M8Zero social links on homepage AND all support-page footershomepage §6/#9, support C7Verified: no IG/FB/LI/YT hrefs on homepage or any support footer (footer social links are JS-injected but not surfaced). Owned channels wasted; no community loop.Add Instagram/Facebook/LinkedIn (YouTube if real) icons to the footer template.Social click-through.
M9CLS 0.17 / INP regressing (mobile) — technical conversion riskhomepage §23, business-analysis §5aCrUX: LCP good, INP 140→247ms (regressing), CLS 0.17 (needs improvement). Late-loading hero/carousel imagery + injected banners ("Summer Arrivals / COD") are likely causes.Reserve hero/carousel dimensions; defer non-critical JS; lazy-paint hygiene.CrUX INP/CLS.

4. Moderate Findings (schedule soon)

#FindingSourceFixMetric
Mo1No wishlist anywhere (PDP, PLP cards, header) — repeat/gifting/"buy-the-family-set" shoppers can't shortlistplp §4, pdp P3Add a visible wishlist heart (header + PDP + cross-sell cards) + "Your wishlist" page.Wishlist saves; return-visit conversion.
Mo2No Quick View / Quick Add on PLP cards — PDP is the only add path; one extra navigation per intentplp §3, pdpAdd hover Quick Add (desktop) and/or Quick View modal.Add-to-cart rate; PLP→PDP→cart steps.
Mo3PDP: no delivery-date / PIN estimator in buy box (badges say "Free & Fast Shipping" but no ETA)pdp P5Add PIN/zip delivery estimator.Checkout conversion; RTO.
Mo4No cost transparency until address entry on native checkout (shipping/tax hidden behind address form)cart-checkout §4Surface estimated shipping / "Free shipping over Rs.X" earlier; show tax once address in.Checkout completion rate.
Mo5No trust badges at cart / checkout entry (COD/returns reassurance present on PDP, absent at cart+checkout)cart-checkout §3Re-show "COD · Free Shipping · 15-day Return · Secure Payment" in cart drawer + checkout sidebar.Checkout confidence/completion.
Mo6WhatsApp referenced as support channel but NOT clickable (no wa.me link; footer "Chat" button has no prefilled context)support §1.2, F2Add clickable WhatsApp with prefilled text ("Hi, I have a query about…").WhatsApp-initiated chats; pre-sale queries deflected.
Mo7No sizing/fit FAQ or size-chart in nav — high fit-anxiety objection unaddressed pre-PDPsupport §1.3, F3Add sizing FAQ + size-chart link from FAQ and PDP.Return rate (fit); PDP→cart.
Mo8Store Locator: no one-tap Call / Get Directions on store cards (mobile) [inferred]support §1.5, F5Add per-store "Call" + "Get Directions" buttons.Store-visit assists; directions clicks.
Mo9Store Locator: no appointment/booking CTA — offline-led brand misses visit bookingsupport §1.5, F6Add "Book a visit" / consultation CTA where relevant.Booked appointments.
Mo10Blog: no inline newsletter / lead capture — top-of-funnel sleep-science readers not capturedsupport §1.6, F8Add blog newsletter CTA / end-of-article module.Subscriber growth.
Mo11Empty alt text on hero + mega-menu images (product images are fine)homepage §13/#4Add descriptive alt to hero/menu/category images.Alt-coverage %, a11y score.
Mo12PDP: no bundles / "Frequently Bought Together" — only "You may also like" railpdp P6Add "Complete the look" bundle (top+bottom, or sleep mask) with slight discount.AOV, attach rate.

5. Minor Findings (opportunistic hygiene)

#FindingSourceFix
Mi1Text-smash "ShopYour Perfect Sleepwear" (missing space)support §1.1, C3Fix Liquid spacing.
Mi2FAQ domain rendered inline ("www.sweetdreams.in" instead of "our site")support §1.3, C4Replace token with "our site"/"Sweet Dreams".
Mi3"Whataapp" typo in contact consent labelsupport §1.2, C5Fix typo.
Mi4Store dropdown casing inconsistency (GUJARAT/Gujrat, DEHRADUN/Dehradun)support §1.5, C6Normalize state/city casing.
Mi5Header position:absolute (not sticky) — nav scrolls awayhomepage §23, plpMake header sticky/fixed.
Mi6Gender facet is a false affordance on pre-scoped collections (only the collection's own gender offered)plp §5Hide/repurpose degenerate facet.
Mi7Filter-param namespace trap (filter.v.option.fabric doesn't work; correct key is material)plp §5Document correct param for shared/ad links.
Mi8No image sale badge (sale only a strikethrough price)plp §3Add "Sale"/"%-off" badge on discounted cards.
Mi9PDP breadcrumb missing category level (Home › <title> only)pdp P4Add collection crumb (product.collections first).
Mi10Blog: no related-products card grid (only 3 inline text links)support §1.6, F9Add end-of-article product carousel.
Mi11No loyalty/membership program surfaced in navhomepage §9, support F13Add loyalty surface (repeat-purchase LTV).
Mi12No free-shipping progress bar in cartcart-checkout §3Add "Spend Rs.X more for FREE shipping".
Mi13PDP color not switchable (other colours are separate products)pdp P8Expose Color radio where multiple variants exist.
Mi14Meta Pixel currency warning + 6 empty JS exceptions (BugsNAG/Gokwik)pdp P9Fix Pixel currency param; suppress swallowed exceptions.
Mi15No product video / 360° / verified zoom on PDPpdp P7Add 15–30s try-on video; verify hover-zoom.

6. Funnel-Stage Scorecard

StagePageHealthHeadline issue
Awareness / first impressionHomepage🟡 ModerateNo hero headline/CTA (M5); no reviews/social proof (M4/M8); CLS/INP regression (M9)
DiscoveryPLP🟡 ModerateZero reviews on cards (M4); no wishlist/quick-add (Mo1/Mo2); false Gender facet (Mi6)
DecisionPDP🟠 MajorReviews uninstalled (M4); Gokwik add-intercept (C1/M1); no delivery ETA (Mo3); no bundles (Mo12)
Add to cartPDP→Cart🔴 CriticalAdd button broken (C1); qty+ wipes cart (C2); UI sync lag (M2)
CheckoutCart→Pay🔴 Critical/MajorGoKwik phone gate (M1); empty-cart dead-end (M3); no cost/trust transparency (Mo4/Mo5)
Support / reassuranceUtility pages🟢 Solid (consistency gaps)Conflicting hours (M6); WhatsApp not clickable (Mo6); no sizing FAQ (Mo7)

Overall funnel verdict: The top of the funnel (discovery, content, trust fundamentals) is well-built. The bottom of the funnel is where revenue leaks: two reproducible Critical defects (C1, C2) plus a Major architectural gate (M1) sit exactly at add-to-cart and checkout — the moments that convert. These outrank every cosmetic gap.


7. Prioritized Roadmap (what to ship, in order)

Tier 1 — Stop the bleeding (this week, Critical):

  1. C2 Fix cart qty+ wipe (theme JS bug, low–medium effort, highest urgency).
  2. C1 Fix PDP add-to-cart reliability + add /cart/add.js fallback (medium effort).
  3. M2 Fix client cart-state sync so the badge/drawer update on add.

Tier 2 — Unblock checkout (next sprint, Major):

  1. M1 Resolve the GoKwik gate — expose guest/email checkout or a clear express-confirm step.
  2. M3 Empty-cart recovery carousel (reuse existing "Customers also bought" rail).
  3. M4 Reinstall reviews + seed per-SKU reviews with photos (highest-leverage trust fix).
  4. M6 Reconcile support hours to one source of truth.
  5. M9 Reserve hero/carousel dimensions + defer non-critical JS (CLS/INP).

Tier 3 — Conversion lift (Major/Moderate):

  1. M5 Hero headline + primary CTA.
  2. Mo1 / Mo2 Wishlist + Quick Add/View on PLP.
  3. Mo3 / Mo4 / Mo5 Delivery ETA, early cost transparency, re-show trust badges at cart/checkout.
  4. Mo6 / Mo7 Clickable WhatsApp + sizing/fit FAQ.
  5. M7 / Mo8 / Mo9 Store Locator SSR/pagination + mobile Call/Directions + booking CTA.
  6. M8 Social icons in footer template.

Tier 4 — Hygiene (Minor, opportunistic):

  1. Text-smash/typo/casing fixes (Mi1–Mi5), false Gender facet (Mi6), sale badge (Mi8), breadcrumb (Mi9), loyalty surface (Mi11), free-shipping bar (Mi12).

8. What's Working (preserve these)

  • Strong category/fabric/character-licensing discovery — mega-menus, fabric library, collab nav (homepage/PLP).
  • Technically correct faceted filtering & sorting — verified mathematically across all 75 PLP cards; URL-stateful (PLP).
  • Rich SEO/buying-guide content below PLP grids (PLP).
  • PDP buy-box trust badges — COD + Free Shipping + Secure Payment + Easy Return (PDP).
  • Tax-inclusive pricing, full size chart, 4 well-written accordions (PDP).
  • "Customers also bought" cart upsell rail — genuinely well-implemented (cart-checkout).
  • Clear, plain-language 15-day return policy + shoppable blog + robust 79-store locator (support).
  • No broken links / 404s across the entire support-page graph (support).
  • Listed-company credibility surfaced via Investor Relations (homepage/support).
  • Native Shopify checkout is clean when reached — email guest, PayU + COD, no COD fee (cart-checkout). The Gokwik gate is an added friction layer, not a platform requirement.

9. Methodology & Confidence

  • Source material: pageaudit/homepage.md, pageaudit/plp.md, pageaudit/pdp.md, pageaudit/cart-checkout.md, pageaudit/support-and-utility.md, business-analysis.md — all produced 2026-08-27 via live HeadlessChrome (desktop 1280px) + DOM/console/static-HTML/Shopify-JSON cross-checks.
  • Reproducibility: C1 (add failure) and C2 (qty-wipe) were each reproduced across reloads with genuine UI clicks. M1 (GoKwik gate) was triggered by clicking the real CHECKOUT CTA.
  • Confidence: Critical/Major functional findings = High (reproduced live). Inferred-mobile findings = Medium (responsive DOM only, no true phone viewport).
  • Known limitation: No mobile viewport/screenshot on the toolset — all mobile-specific claims are inferred and flagged [inferred]. A real-device verification pass is recommended before shipping mobile-only fixes.
  • No fabrication: Social/device-spend/quick-commerce gaps are reported as measured-or-absent, not estimated. Traffic and ad-spend were not reliably extractable and are excluded rather than guessed.

Master CRO audit saved to cro-audit.md. Companion page-level reports: pageaudit/homepage.md, pageaudit/plp.md, pageaudit/pdp.md, pageaudit/cart-checkout.md, pageaudit/support-and-utility.md. Business context: business-analysis.md.