Vieroots.com — Master CRO Audit
Consolidated conversion-rate-optimization audit of https://vieroots.com, synthesized from the five live page-level audits (homepage, PLP, PDP, cart & checkout, support & utility), the web-quality audit, traffic estimation, and the business analysis. Prepared 2026-09-07.
0. How to Read This Report
This is the single source of truth for Vieroots' conversion health. It is a synthesis, not a re-audit: every finding below is traced to a verified observation in one of the underlying audits (cited as homepage.md, plp.md, pdp.md, cart-checkout.md, support-and-utility.md, web-quality-audit.md). Where the page audits flagged a verification gap, this report carries that gap forward rather than asserting a fix.
The one thing that matters most: the purchase funnel is broken at checkout entry. A shopper who fills the cart and clicks "Check out" is stuck on /cart with a permanent "Loading…" spinner. Until that ships fixed, no other optimization moves revenue.
1. Executive Summary
Vieroots is a premium, founder-led epigenetic-wellness D2C brand (Shopify, ₹695–₹45,400, 30 SKUs) whose strategy is acquisition + high-ticket DNA/program upsell and whose audience is 96% phone (CrUX, Jul–Aug 2026; corroborated by ~38.5K monthly visits, 41.65% bounce, SimilarWeb). On that audience profile, the store has three classes of problem:
- A hard funnel break (Critical). The "Check out" button never reaches Shopify checkout for a normal click — the Shiprocket Smart Cart plugin swallows the click and stalls. Reproduced 3×. This is a 100%-checkout-abandonment defect for every shopper who uses the button (the only path).
- A high-severity trust/price-integrity problem on the exact high-ticket items the brand's margin depends on. The ₹19.9K–45.4K EPLIMO PDPs claim "895 Reviews!" with no reviews widget, render a clickable greyed-out "Out of stock" decoy on an in-stock ₹35,400 item, and show no payment/delivery trust badges — while the ₹1,500 staple PDP does. Trust closure is inverted vs. best practice.
- A mobile-performance deficit that hits the brand's entire audience. Mobile Lighthouse Performance is 37/100 (LCP 9.8s in-lab), CrUX phone CWV "Needs Improvement" (LCP 3,277ms), driven by render-blocking CSS/JS and a 6,254-element DOM. For a 96%-phone store, first impression = load speed = trust = conversion.
Underneath those, there is a long tail of fixable merchandising, discovery, and objection-handling gaps (no breadcrumbs anywhere, no FAQ, orphaned shipping/contact pages, an invisible 25% auto-discount that reads as a billing error, a dead-end empty cart).
None of the structural breakages are exotic. They are addressable with low-to-medium effort, mostly by fixing or removing the Shiprocket Smart Cart layer and surfacing information that already exists (certifications, shipping terms, reviews) where purchase decisions happen.
Funnel health at a glance
| Stage | Verdict | Headline issue |
|---|---|---|
| Homepage | 🟡 Workable, risky | Image-only hero (no typed value prop/CTA); mobile unverified; no footer payment badges |
| PLP | 🟡 Workable | No breadcrumbs; no quick-add; high-ticket "No Reviews" |
| PDP | 🔴 Weak on high-ticket | EPLIMO: fake review claim, decoy sold-out, no trust badges, no cross-sell |
| Add to cart | 🟡 Silent | Adds succeed but with no confirmation (no drawer/toast) |
| Cart page | 🟡 Partial | Works, but empty-cart dead-end + invisible 25% discount |
| Checkout entry | 🔴 Broken | "Check out" stalls forever — 100% abandonment |
| Checkout/Payment | 🟢 Reachable once past entry | Guest OK; Card/UPI/COD/EMI via Razorpay; free prepaid shipping |
2. Methodology & Honesty Caveats
- Live, click-driven where it counts. The cart/checkout audit used genuine clicks for add-to-cart, quantity, cart open, and the checkout CTA;
/cart.jsand/products/<h>.jsonwere used only to confirm state after a real interaction, never as a substitute for clicking. - Desktop-only render environment. Every audit ran at 1280×577 (desktop). There is no mobile-viewport emulation in the environment. All mobile judgments are inferred from the responsive DOM, not observed. This is a material gap for a 96%-phone brand and is flagged as such on every page — not asserted as "mobile is fine."
- Findings are verified vs. inferred. "Silent add" was confirmed (Curcumin add → count badge only, no drawer/toast). "Shiprocket drawer empty" was confirmed (
innerHTML.length = 0). "Mobile PDP friction" is unverified. Each finding below carries a confidence note where it matters. - No fabricated numbers. Traffic uses authoritative SimilarWeb; competitor figures are sourced; no revenue/spend was invented.
3. CRO Health Scorecard
| Dimension | Score / State | Grade | Source |
|---|---|---|---|
| Funnel integrity (checkout reachable) | Broken — checkout button stalls | 🔴 Critical | cart-checkout.md F1 |
| Mobile performance | Lighthouse 37/100; CrUX "Needs Improvement" | 🔴 | web-quality-audit.md §1 |
| Desktop experience | CrUX "Passing"; healthy structure | 🟢 | web-quality-audit.md §1 |
| Homepage value-prop clarity | Image-only hero, no typed CTA | 🟡 Major | homepage.md F1 |
| PLP discovery | No breadcrumbs/quick-add; thin filters | 🟡 Moderate | plp.md F1–F4 |
| PDP trust (high-ticket) | Missing reviews/badges/decoy | 🔴 Major | pdp.md F2/F5/F7 |
| Add-to-cart feedback | Silent, no confirmation | 🟡 Moderate | pdp.md F6, cart-checkout.md F3 |
| Cart UX | Works; empty dead-end; hidden discount | 🟡 Major | cart-checkout.md F4/F5 |
| Trust & social proof | Reviews present on staples; certs/shipping hidden; no FAQ | 🟡 Moderate | support-and-utility.md F-1/F-3/F-5 |
| SEO / schema | Strong (92); missing BreadcrumbList/LocalBusiness | 🟢 | web-quality-audit.md §3 |
| Accessibility | 86/100; multiple H1s, missing alt | 🟡 | web-quality-audit.md §2 |
| Payment coverage | Card/UPI/COD/EMI via Razorpay; guest checkout | 🟢 | cart-checkout.md §4 |
Overall CRO verdict: 🔴 Constrained by a critical funnel break and a mobile-performance deficit. Fix the checkout button and mobile speed first; everything else is incremental.
4. Funnel-by-Funnel Findings (consolidated)
4.1 Homepage → first click
- Image-only hero, no typed value proposition or single primary CTA (
homepage.mdF1, Major). The hero is 5 image banners with noaltand no overlay text; the first typed CTA is the health-needs filter, not a brand headline. On a 96%-phone audience that reads hero-first, this weakens the 5-second value prop. - Redundant nav — Shop / Biohack / Programs expose near-identical program lists (
homepage.mdF3, Minor). - No payment/security badges in footer (
homepage.mdF4, Moderate) — lower trust at the exact moment a visitor decides "is this legit?" - High-ticket cards show "No Reviews" on 11/25 homepage cards (
homepage.mdF5, Moderate) — conversion drag on ₹10K–45K items. - No newsletter capture in footer (only a mid-page tribe section) (
homepage.mdF6, Minor). - No on-site personalization / returning-visitor recognition (
homepage.mdF9, Moderate).
4.2 PLP → product consideration
- No breadcrumb / category hierarchy on any collection (
plp.mdF1, Major) — lost orientation, weaker SEO internal-linking. Consistent across both sampled PLPs. - No hover image-swap (single static image) (
plp.mdF2, Minor). - No Quick View / Quick Add / wishlist / compare (
plp.mdF3, Moderate) — extra tap to PDP; missed shortlist on phone. - Thin filter set — only Availability + free-text Price; no category/goal/rating facets or quick price bands (
plp.mdF4, Minor). - High-ticket SKUs "No Reviews" (14/30 All-Products) (
plp.mdF5, Moderate) — continuity with homepage. - Collection/hero banner images missing alt text (
plp.mdF6, Minor). - Passes: both price sorts monotonic; availability filter correct & URL-persisted; back-button restores state; sold-out handled gracefully; sale compare-at prices correct.
4.3 PDP → purchase intent (the brand's margin engine)
- 🔴 EPLIMO shows "895 Reviews!" but renders NO reviews widget (
pdp.mdF2, Critical trust). Judge.me config is injected but 0 review cards render; the claim is an unlinked<p>. On a ₹35,400 item this reads as false/stale and is credibility-breaking. - 🔴 Clickable decoy "Out of stock" button on in-stock ₹35,400 EPLIMO (
pdp.mdF5, Major; worsened in cart audit — DOMdisabled=false, so it is actually clickable). Greyed "Out of stock" next to the flagship deters purchase. - 🔴 Trust badges absent on high-ticket EPLIMO PDP (
pdp.mdF7, Major) — no Free Delivery/COD/Secure Payment, while Curcumin (₹1,500) has them. Trust layer is weakest exactly where risk is highest. - Curcumin review count mismatch — header "35 reviews" vs widget "43 Reviews" (
pdp.mdF4, Moderate) — erodes trust on the element shoppers trust most. - No cross-sell on EPLIMO PDP (
pdp.mdF8, Moderate) — Curcumin has a 6-item "You may also like"; EPLIMO goes straight to newsletter. - No breadcrumbs on either PDP (
pdp.mdF1, Major). - No post-add confirmation (
pdp.mdF6, Moderate) — add → silent count badge, no drawer/toast. - No BUY NOW routing verified + no EMI/tax clarity on EPLIMO (
pdp.mdF10, Moderate). - No wishlist/compare/share in buy box (
pdp.mdF11, Minor). - Passes: add-to-cart AJAX works & increments count without navigation; EPLIMO "Talk to an expert" opens new tab (buy-box link PASS); Curcumin has real reviews + cross-sell; gallery alt present.
4.4 Cart & Checkout → revenue (where it actually breaks)
- 🔴 "Check out" button stalls on "Loading…" forever — checkout unreachable via normal click (
cart-checkout.mdF1, Critical). Clicked real CTA 3× → stuck on/cart; only a Clarity analytics beacon fired, no Shopify POST. A forced nativeform.requestSubmit()did reach/checkouts/cn/…, proving Shopify checkout works and a client-side click interceptor (Shiprocket Smart Cart) swallows the click. 100% checkout-entry block. - 🔴 Cart drawer never opens / renders empty (
#shiprocket-smart-cart-rootinnerHTML=0) (cart-checkout.mdF2, Major). Cart icon click neither opens drawer nor navigates; the only usable cart surface is the/cartpage. - 🟡 No post-add confirmation (
cart-checkout.mdF3, Moderate) — silent add; with the drawer broken there is no surface at all. - 🔴 25% automatic cart discount invisible on PDP/PLP — price inconsistency (
cart-checkout.mdF4, Major). PLP/PDP Curcumin shows flat ₹1,500;/cartshows ₹1,125 (Sale) + "Discount"; checkout −₹9,225. Shopper committed at ₹1,500, cart drops to ₹1,125 unexplained → reads as a billing error / mistrust trigger. - 🔴 Empty cart = dead-end (
cart-checkout.mdF5, Major) — only "Continue shopping"; no recovery merch. - 🟡 Decoy sold-out button actually clickable (
cart-checkout.mdF6, Major) — continuity with pdp.md F5, confirmed worse. - 🟡 COD handling fee unverified (
cart-checkout.mdF7, Moderate) — free shipping is prepaid-only; if COD adds a hidden fee at the final step it's a conversion killer (needs confirmation). - 🟡 No cart-level upsell / cross-sell / gift / note (
cart-checkout.mdF8, Moderate). - 🟡 No cart trust/reassurance row (
cart-checkout.mdF9, Minor). - Passes (once past entry): qty +/− updates subtotal instantly via AJAX; item removal works; guest checkout available, no forced login; Shopify checkout functions when interceptor bypassed; strong payment coverage (Card/UPI/COD/EMI via Razorpay); free prepaid shipping; promo-code field exists.
4.5 Support & Utility → objection handling
- 🔴 No FAQ page (
support-and-utility.mdF-1, Major) — high-ticket items have no objection-defusal FAQ; no FAQ link anywhere. - 🟡 Shipping Policy orphaned from footer/cart/homepage (
support-and-utility.mdF-2, Moderate) — strong "free pan-India / 2–5 day" content is unreachable pre-purchase. - 🟡 Contact form orphaned / no Contact page link (
support-and-utility.mdF-3, Moderate) — the parent homepage audit's claimed "Contact Us page link" is inaccurate in the live DOM; footer shows phone/email as text only. - 🟡 Return policy is 3-day / damage-wrong-item only, not summarized (
support-and-utility.mdF-4, Moderate) — unusually short window, un-summarized; pre-purchase anxiety on ₹10K–45K items. - 🟡 Certifications (FSSAI/Ayush/Halal/Kosher/ISO) not surfaced on homepage/PDPs (
support-and-utility.mdF-5, Moderate) — a genuine trust asset buried in the footer "About" column. - 🟡 No Help Center / Store Locator / Loyalty page (
support-and-utility.mdF-6, Moderate) — Loyalty is the real gap (consistent with business-analysis: no subscription/loyalty surface). - Passes: strong free-consultation booking bridge aligned to the DNA upsell; genuinely shoppable 28-article blog; solid policy docs; About page founder credibility.
5. Cross-Cutting Themes
A. The funnel break is a plugin problem, not a storefront problem. The cart drawer, the checkout stall, and (likely) the silent add all trace to the Shiprocket Smart Cart layer sitting on top of otherwise-functional Shopify. Fixing or removing that one integration resolves F1, F2, F3 simultaneously. This is the highest-leverage engineering task in the whole audit.
B. Trust is inverted on the high-ticket path. The brand's margin engine (EPLIMO ₹19.9K–45.4K) is the weakest on review proof, payment/delivery badges, and decoy-button confusion, while the ₹1,500 staple is the strongest. Re-pointing the trust layer (badges, real reviews widget, remove decoy, surface certs) at the premium PDPs is the highest-leverage content task.
C. Mobile is the whole business and the weakest link. 96% phone, yet mobile Lighthouse is 37/100 and the checkout break + silent add + empty drawer were only observable on desktop. The phone experience is unverified and likely worse. Every recommendation below should be validated on a real device.
D. Information that exists isn't where decisions happen. Certifications, shipping terms, the 25% discount, FAQ answers, and contact — all exist somewhere — but none are surfaced at the PDP/cart/checkout moment. This is a placement problem, not a content-creation problem, and is mostly low-effort.
E. Competitive & audience context sharpens priority. Vieroots is the only India-domiciled epigenetic brand (moat) but the smallest on catalog/funding and the only peer with no subscription/loyalty loop and Amazon-only marketplace (competitive-analysis.md, digital-brand-intelligence.md). The 23.5% UAE traffic share (traffic-estimation.md) is an under-served high-intent market worth validating. Subscription/loyalty and marketplace expansion are strategic CRO levers beyond the on-site fixes.
6. Prioritized Findings Register (deduplicated)
Severity: 🔴 Critical · 🟠 Major · 🟡 Moderate · ⚪ Minor. Effort: L/M/H.
| ID | Finding | Severity | Effort | Source | Success metric |
|---|---|---|---|---|---|
| C1 | "Check out" stalls forever (Shiprocket interceptor) — 100% checkout block | 🔴 | M | cart-checkout F1 | Checkout-initiation rate; stall tickets → 0 |
| C2 | EPLIMO "895 Reviews!" claim, no widget renders | 🔴 | M | pdp F2 | Eplimo PDP→cart CVR |
| C3 | Mobile Lighthouse 37/100 (LCP 9.8s); render-blocking CSS/JS | 🔴 | M | web-quality §1 | Mobile LCP → <2.5s; mobile CVR |
| M1 | Cart drawer empty / never opens | 🟠 | M | cart-checkout F2 | Drawer-open rate |
| M2 | 25% auto-discount invisible upstream (price inconsistency) | 🟠 | L | cart-checkout F4 | Price-consistency; refund-dispute rate |
| M3 | Empty cart dead-end | 🟠 | M | cart-checkout F5 | Empty-cart→re-add rate |
| M4 | Clickable decoy "Out of stock" on in-stock ₹35,400 EPLIMO | 🟠 | L | pdp F5 / cart F6 | Eplimo add-to-cart rate |
| M5 | Trust badges absent on high-ticket EPLIMO PDP | 🟠 | L | pdp F7 | Eplimo CVR |
| M6 | No breadcrumbs anywhere (home/PLP/PDP/cart) | 🟠 | L | plp F1 / pdp F1 | Bounce; internal-link depth |
| M7 | No FAQ page | 🟠 | M | support F-1 | Pre-purchase support contacts; PDP→cart CVR |
| M8 | Homepage image-only hero, no typed value prop/CTA | 🟠 | L | homepage F1 | Hero CTA click rate; bounce |
| D1 | No post-add confirmation (silent add) | 🟡 | M | pdp F6 / cart F3 | Add-to-cart→cart-view rate |
| D2 | Curcumin review count mismatch (35 vs 43) | 🟡 | L | pdp F4 | Review-click rate |
| D3 | No EPLIMO cross-sell | 🟡 | M | pdp F8 | PDP→PDP CTR; AOV |
| D4 | High-ticket SKUs "No Reviews" on home/PLP/PDP | 🟡 | M | homepage F5 / plp F5 | Program CTR→PDP |
| D5 | Shipping Policy orphaned from nav | 🟡 | L | support F-2 | Shipping-page views; cart→checkout CVR |
| D6 | Contact form orphaned / no Contact link | 🟡 | L | support F-3 | Contact-form submissions |
| D7 | Return window short (3-day/damage) & un-summarized | 🟡 | L | support F-4 | Refund requests; anxiety |
| D8 | Certifications not surfaced on PDP/home | 🟡 | L | support F-5 | On-page trust interactions |
| D9 | No Help Center / Loyalty page | 🟡 | M | support F-6 | Repeat-purchase rate |
| D10 | COD handling fee unverified (prepaid-only free ship) | 🟡 | L | cart F7 | COD-completion rate |
| D11 | No cart upsell / gift / note field | 🟡 | M | cart F8 | AOV; cart attach rate |
| D12 | No cart trust row | ⚪ | L | cart F9 | Checkout-confidence (qual) |
| D13 | Redundant Shop/Biohack/Programs nav | ⚪ | L | homepage F3 | Menu CTR distribution |
| D14 | No footer newsletter / payment badges | ⚪ | L | homepage F4/F6 | Email opt-in; checkout-start |
| D15 | No hover image-swap / Quick View-Add / wishlist | ⚪/🟡 | M | plp F2/F3 / pdp F11 | Add-to-cart rate; wishlist adds |
| D16 | Thin PLP filters (no goal/rating facets) | ⚪ | M | plp F4 | Filter usage % |
| D17 | BUY NOW routing unverified + no EMI/tax clarity | 🟡 | L | pdp F10 | Checkout-initiation rate |
| D18 | Hero/banner images missing alt text | ⚪ | L | homepage F8 / plp F6 | a11y/SEO |
| D19 | No on-site personalization / returning-visitor | 🟡 | H | homepage F9 | Repeat-session CVR |
| D20 | Mobile experience unverified across all pages | 🔴 (gap) | M | all audits | Mobile CVR after device re-audit |
7. Recommended Roadmap
🔴 Now — unblock revenue (this week)
- C1 — Fix the checkout click path. Disable/repair the Shiprocket Smart Cart interceptor on the "Check out" button; verify in staging that a normal click lands on
/checkouts/cn/…. Add a plain<form action="/checkout">fallback. Until this ships, nothing else matters. - M1 + D1 — Repair or remove the cart drawer; add a post-add toast. Either mount Shiprocket correctly (line items + CTA) or drop it and rely on the working
/cartpage; add an "Added! View Cart / Checkout" toast so adds are confirmed. - C3 — Start mobile performance remediation. Inline critical above-the-fold CSS,
defer/asyncnon-critical JS, drop one of Swiper/Slick (both loaded = redundancy), serve WebP/AVIF withsrcset. Target mobile LCP <2.5s. - M4 — Disable the clickable decoy "Out of stock" button on the EPLIMO GemPages PDP (set real
disabledor remove).
🟠 Next — close the trust gap on high-ticket (this month)
- C2 — Fix or remove the EPLIMO "895 Reviews!" claim; make the Judge.me widget actually mount (or hide the claim until it does).
- M5 — Add Free Delivery / COD / Secure Payment / EMI badges to the EPLIMO PDP buy box.
- M2 — Surface the 25% discount upstream ("Save 25% at checkout" or show the ₹1,125 price on PDP/PLP) so the cart total isn't a surprise.
- M3 — Build an empty-cart recovery module (best-sellers + quick-adds).
- M6 — Add breadcrumbs + BreadcrumbList schema to PDP/collection (SEO + orientation).
- M7 + D7 + D8 — Ship an FAQ page, summarize the return window, surface certifications as a PDP/home trust strip.
- M8 — Add a typed hero headline + single primary CTA on the homepage.
🟡 Later — incremental conversion lift (this quarter)
- D5/D6 — Link Shipping Policy + Contact form into footer "Help" and cart.
- D3/D11 — Add EPLIMO cross-sell + cart upsell/gift/note to lift AOV.
- D2 — Sync the Curcumin review count (single source of truth).
- D9/D19 — Evaluate a loyalty/rewards loop and basic on-site personalization (repeat-purchase is the strategic gap vs. every competitor).
- D10 — Confirm COD handling fee and display it pre-payment if present.
- D15/D16 — Add Quick Add / wishlist / richer PLP filters (goal & rating facets, price bands).
- D20 — Re-audit cart + checkout + PDP on a real device/emulation to close the 96%-phone verification gap.
8. Strategic CRO Levers (beyond on-site fixes)
From competitive-analysis.md and digital-brand-intelligence.md: Vieroots is the uncontested India epigenetic brand but trails peers on subscription/autoship, loyalty, marketplace breadth (Nykaa/Flipkart + quick-commerce), and off-site review proof (no Trustpilot/Google profile). These are the highest-ceiling LTV/CRO moves once the funnel is unblocked:
- Launch a subscription/autoship for repeatable supplements (competitors all have it; Vieroots has none).
- Build a loyalty/rewards program to defend the 96%-phone repeat audience.
- Expand to Nykaa/Flipkart + Blinkit/Zepto quick-commerce for impulse wellness.
- Stand up Trustpilot + Google Business profiles and seed verified reviews to close the trust-proof gap on ₹10K–45K items.
- Validate the 23.5% UAE traffic share with first-party GA geo and consider localized shipping/payment.
9. Appendix — Source Audits & Deliverables
| Audit | File | Scope |
|---|---|---|
| Homepage | pageaudit/homepage.md | Hero, nav, sections, 25-card carousel, footer, 29-pt checklist |
| PLP | pageaudit/plp.md | All-Products + Health-Stack collections, filters/sort, 26-pt checklist |
| PDP | pageaudit/pdp.md | Eplimo Advance (GemPages) + Curcumin Latte (Shopify), 32-pt checklist |
| Cart & Checkout | pageaudit/cart-checkout.md | Click-driven funnel traversal to payment gateway |
| Support & Utility | pageaudit/support-and-utility.md | 11 reachable pages + absent-feature findings |
| Web Quality | web-quality-audit.md | Performance (CrUX + Lighthouse), a11y, SEO, security, schema |
| Traffic | traffic-estimation.md | ~38.5K visits/mo, 96% phone corroborated, UAE signal |
| Business | business-analysis.md | Company, catalog, model, SWOT, device split |
| Competitive | competitive-analysis.md | 7-direct-competitor benchmark |
| Brand Intelligence | digital-brand-intelligence.md | Social/review channel health (5.4/10) |
Verification status carried forward: Mobile experience unverified on all pages (desktop-only env). Revenue/traffic magnitudes are not externally estimable for this Shopify domain and are flagged as such in the source reports. No figures were fabricated in this synthesis.
End of master CRO audit. Downstream packaging: report-packager consumes the top-level .md set (this file + the audit/analysis reports) and the existing HTML artifacts.*