Audit Overview
Your store's untapped revenue potential — and how to unlock it
Why We Created This Audit
We analyzed https://peppermint.in the same way we've audited 350+ e-commerce stores — looking for the specific gaps between your current experience and what top-performing Fashion & Apparel stores deliver. Every finding in this report is a revenue opportunity backed by industry data and competitive benchmarks.
What We Analyzed
- UX & Conversion Design15 findings
- Performance & Speedvs 4 competitors
- Technology & App StackPlatform + 5 apps
- Industry BenchmarksFashion & Apparel
Pages Analyzed
- Homepage4 findings
- Collection Pages3 findings
- Product Pages (PDP)4 findings
- Cart & Checkout4 findings
Performance & Technology
Speed benchmarks, Core Web Vitals, and technology assessment for Peppermint
Mobile PageSpeed Score
Solid mobile performance relative to the competitive set — Peppermint's 56 mobile / 74 desktop leads three of four benchmarked competitors, and real-user field data is largely healthy (FCP 1.2s and INP 137ms both pass, TTFB 474ms good). Two of five Core Web Vitals pass. The three that miss are all borderline rather than severe: field LCP at 2.5s sits a hair over the 2.5s line, field CLS at 0.11 just crosses 0.1, and lab Total Blocking Time is 368ms against a 200ms target.
Competitive Comparison
Benchmarked against 4 leading Fashion & Apparel stores in your market
| Store | Mobile Score | Desktop Score | Mobile LCP | Mobile CLS | Mobile INP |
|---|---|---|---|---|---|
| Peppermint (Client) | 56 | 74 | 2.5s | 0.11 | 137ms |
| Miniklub | 58 | 65 | 1.9s | 0.01 | 77ms |
| Cub McPaws | 49 | 61 | 3.7s | 0.25 | 161ms |
| Libas | 35 | 62 | 2.1s | 0.00 | 174ms |
| Nauti Nati | 30 | 44 | 2.6s | 0.22 | 292ms |
⚠ Note: Cub McPaws, Libas, Nauti Nati score lower than Peppermint on mobile PageSpeed. This reflects the Fashion & Apparel category average — even established brands in this space struggle with mobile performance. The opportunity is to leapfrog the category, not just match it.
Core Web Vitals — Google's UX Quality Signals
Sites failing Core Web Vitals may rank lower in Google mobile search results
LCP How fast content appears
FCP First visual response
TBT Main thread blocking
CLS Visual stability
INP Tap/click responsiveness
What This Means for Revenue
Peppermint scores 56/100 on mobile and 74/100 on desktop in Lighthouse lab testing — the strongest desktop score in the benchmarked set and ahead of Cub McPaws (49), Libas (35) and Nauti Nati (30) on mobile, with only Miniklub marginally higher at 58. Real-user CrUX field data backs this up: First Contentful Paint (1.2s), Interaction to Next Paint (137ms) and TTFB (474ms) all sit in the good band, so visitors experience a genuinely responsive site. Two of five Core Web Vitals pass. The misses are narrow — field LCP 2.5s and field CLS 0.11 are each just over threshold, and lab Total Blocking Time is 368ms — which typically points to hero-image sizing, unreserved space for late-loading elements, and third-party script weight rather than deep architectural problems. Worth noting the lab and field readings diverge on layout shift: Lighthouse measured CLS at 0.0007, while the 28-day field value is 0.11; the field figure is reported here because it reflects what real users actually get. The category as a whole struggles more on mobile — Nauti Nati's 17.6s lab LCP and 2,536ms blocking time show the headroom available. Peppermint is already competitive on speed; closing the small LCP and CLS gaps would make it the clear category leader rather than merely ahead of the pack.
Technology Stack
Platform
Shopify
Shopify handles auto-scaling, PCI compliance and enterprise-grade uptime, so the commerce foundation is sound. Store ID 58522304673 on peppermintkids.myshopify.com, serving a 2,652-product catalogue across 79 collections in INR.
Theme
Wokiee 2.1.0
- Type: Third-party ThemeForest theme (Online Store 2.0 compatible)
- OS 2.0 compatible — installed as 'Install-me-wokiee-v-2-1-0-shopify-2-0', no Shopify Theme Store ID
- The theme is the source of the audit's most consequential gaps: the footer newsletter form is present in the DOM but never renders, and the PDP reserves a review badge slot that displays nothing. It also loads jQuery and the Revolution Slider library — heavy legacy dependencies that contribute to the 9.2s mobile Speed Index.
Checkout & Payments
Shopify native checkout via Shopify-managed (specific gateway not publicly exposed)
- Guest checkout: Available — cart proceeds directly to Shopify checkout
- Express checkout: Not detected — no Shop Pay, Google Pay or UPI express buttons render in the cart, so every shopper takes the full multi-step path
- Payment methods are not displayed anywhere in the cart — no card, UPI, RuPay or net-banking icons render, so the accepted methods are invisible to shoppers before checkout
Technology Assessment
Peppermint runs on Shopify with the third-party Wokiee 2.1.0 theme, and the split between the two is the story of this audit. The platform layer is genuinely strong: native Shopify checkout with no risky third-party override, HSTS and a restrictive content-security policy in force, PCI compliance handled, and mobile PageSpeed at 56 with desktop at 74 — ahead of three of the four benchmarked competitors. The theme layer is where value is leaking. Wokiee renders a newsletter capture form invisibly while the store promotes a FIRSTBUY10 discount that form should be collecting; and it reserves a star-rating slot on every PDP that stays empty because no reviews app is connected. Each of these is a configuration or template fix rather than a rebuild — the infrastructure to support them is already paid for and in place. On delivery, the absence of WebP or AVIF across a catalogue averaging 6.6 images per product, combined with jQuery and Revolution Slider, is the most direct route to improving the borderline 2.5s field LCP and 0.11 CLS.
UX & Conversion Findings
Page-by-page analysis with visual comparisons against top Fashion & Apparel stores
- The announcement bar promotes a first-purchase discount code (FIRSTBUY10) on every page, and a rotating strip cycles Cash on Delivery / first-purchase discount / Free Shipping.
- A newsletter signup exists in the DOM — an input with placeholder 'Enter your email' inside a 'JOIN US' block, tagged contact[tags]=newsletter — but it computes as not visible, so no shopper can actually use it. The 'BE IN TOUCH WITH US' footer heading renders while its form does not.
- This is a broken control rather than a missing one: the capture mechanism is built and wired, it simply is not rendering. The fix is a theme/CSS repair, not a new feature.
- The net effect is that the discount is given away to anyone who reads the banner while producing no email address in return — the offer funds acquisition without funding retention.
- Repair the hidden newsletter form so the 'JOIN US' email field renders in the footer, then confirm submissions reach the contact list.
- Gate the FIRSTBUY10 code behind the email capture — deliver the code on signup instead of printing it in the announcement bar.
- Keep the banner promoting the offer, but change the call to action from 'Use code FIRSTBUY10' to a signup prompt so the incentive earns a contactable customer.
- The single product section, 'WE THINK YOU'LL LOVE THESE', renders 10 tiles but only four unique styles — Girls Trendy Top 20626, Girls Sequins Dress 20405, Girls Textured Shorts & Top 20529 and Girls Design Net Dress 20498 — cycled three times through the carousel.
- The catalogue behind it holds 2,652 products across 79 collections, so the homepage exposes four of them.
- Category entry points are also incomplete: the homepage tiles cover Toddlers, Kids and Youth, but Infants (3-12M) — a headline segment in the main navigation — has no tile, and all three tiles link to girl- collections.
- There is no 'Best Sellers' or occasion-led module, despite dedicated collections existing for festive and sale — merchandising surfaces that already have inventory behind them.
- Replace the repeated carousel with two or three distinct modules — New Arrivals, Best Sellers and the current sale event — each pulling from its existing collection.
- Add the missing Infants (3-12M) category tile so all four age segments in the navigation have a homepage entry point.
- Introduce occasion-led tiles (Party, Festive, Everyday) — a pattern that helps shoppers navigate large catalogues by intent, and one Peppermint already has collections to support.
- Auditing every variant of all 2,652 products, 1,334 of them have no available variant in any size or colour — they cannot be purchased at all.
- These products are not withheld from browse. On the first screen of /collections/all, 4 of the 13 rendered tiles carried a 'Sold Out' badge, mixed in with in-stock styles in the default sort order.
- An availability filter does exist (In stock / Out of stock) — but it defaults to off and sits inside a filter panel that opens only after tapping FILTER, so the default experience is the unfiltered one.
- The default sort makes no attempt to push them down: sold-out styles sit in the same positions as buyable ones, so a shopper working through a collection repeatedly lands on products that cannot be bought in any size.
- Default collection sorting to in-stock-first so sold-out styles fall to the end of the grid rather than competing for the first screen.
- For genuinely discontinued lines, unpublish rather than display — half the catalogue being dead weight also dilutes search and filter results.
- Where a style is returning, replace the passive 'Sold Out' badge with a back-in-stock email capture, converting a dead end into a recoverable lead.
- None of the 13 tiles rendered on the collection page offered a quick-view, quick-add or add-to-cart control — every card leads only to the full PDP.
- Each card already displays the complete size ladder as static text, so the variant information a quick-add needs is present on the card; it simply is not actionable.
- For a catalogue this size, browsing is the dominant behaviour, and each extra page load costs a shopper on a mobile connection real time on a store scoring 56/100 for mobile performance.
- Roughly half our benchmark set offers quick view or quick add, so this is a competitive gain rather than a baseline expectation.
- Make the existing size text on each card tappable, adding the chosen variant to the cart directly from the grid.
- Show a compact confirmation on add so shoppers can keep browsing without losing their place in the collection.
- Keep the interaction inline rather than in a modal — a full-screen overlay on mobile costs as much context as the page load it replaces.
- The container holding the Add to Cart button contains the button text and nothing else — zero images, zero icons, no supporting copy.
- A keyword scan of the rendered PDP found no mention of free shipping, returns, exchange or the 15-day window anywhere on the page. The only policy term present was 'COD'.
- The information exists but is one tap away: two small modal links sit above the buy form — 'Size Chart' (genuinely useful and well placed) and 'Shipping', which hides the delivery and returns detail behind an overlay.
- For a first-time visitor landing on a PDP from an ad or search, the buy area therefore presents no evidence that the store is safe to transact with — no payment reassurance, no returns promise, no COD mention.
- Half our benchmark set shows trust badges on the PDP, and among Indian stores it is 2/5. Notably, none of the four approved competitors surfaces this beside the ATC either — Miniklub's only reassurance is a top-of-page '10-Day Return Policy' banner — so this is a differentiator available to whoever does it first.
- Place a compact three-to-five icon row directly beneath the Add to Cart button covering free shipping, 15-day exchange, secure payment and cash on delivery.
- Use the specific promise rather than a generic label — '15-day easy exchange' outperforms 'Easy Returns' because it answers the question precisely.
- Reuse the existing homepage service icons so the visual language stays consistent and no new design work is needed; keep the Shipping modal for full detail rather than as the primary reassurance.
- Across the full catalogue, 2,421 of 2,652 products contain at least one 'N. A.' placeholder in the description spec table, averaging just over two per product and reaching seven on the worst offenders.
- On the sample PDP audited, Length, Sleeve Length, Sleeve Styling and Collar all read 'N. A.', while Fabric Type and Add On were blank entirely. Only Shape, Neck, Fabric Pattern, Occasion, Fit and Closure carried real values.
- Fabric composition and sleeve or length detail are exactly what a parent checks before buying — for skin comfort, for season, and to judge fit on a growing child. Presenting the field and then declining to fill it reads as lower quality than omitting it.
- The description is also collapsed behind a DESCRIPTION accordion, so a shopper must open it to discover the table is largely empty.
- Suppress any spec row whose value is 'N. A.' or blank at template level — a shorter complete table is more persuasive than a long one full of gaps.
- Prioritise populating fabric composition and care instructions across the catalogue, starting with the in-stock half that is actually buyable.
- Surface the three or four highest-value attributes (fabric, fit, occasion, closure) as visible bullets outside the accordion, leaving the full table inside it.
- The PDP contains no pincode or postcode input and no delivery-related copy — a keyword scan for pincode, delivery by, estimated delivery, check availability and deliver to returned no matches.
- Cash on delivery is offered, which makes serviceability genuinely variable by location, yet a shopper cannot confirm their area is covered before adding to cart.
- Kidswear purchases are frequently deadline-driven — a birthday, a festival, the start of a school term — so an arrival date materially affects whether the shopper buys now or leaves.
- Delivery estimation appears on roughly 6/10 stores in our benchmark and is close to standard among Indian D2C stores, where COD serviceability checks are routine.
- Add a pincode field near the Add to Cart button returning an estimated delivery window and confirming COD availability for that area.
- Show the estimate as a date range rather than a duration — 'Arrives 24–26 Aug' is more actionable than 'Ships in 2–4 days'.
- Do not gate Add to Cart behind the pincode check — keep it informational so it reassures without adding friction.
- With a product in the cart, the page renders the line item, a subtotal, a grand total and a checkout button. A scan for recommendation headings — also bought, you may also like, complete the look, frequently bought together — returned nothing, and no product tiles other than the cart line itself.
- Peppermint's catalogue is unusually well suited to this: the range is built around co-ordinate sets, tops, bottoms and dresses in matching styles, so 'complete the look' pairings are a natural fit.
- Kidswear also carries a strong multi-buy instinct — parents commonly buy several sizes or several styles in one visit — and the cart is the moment that instinct is easiest to act on.
- Cross-sell in the cart is present on 7/10 stores in our benchmark and 4/5 of the Indian stores, making this one of the clearer gaps against local peers.
- Add a 'Complete the look' row in the cart suggesting two or three matching pieces from the same collection as the item already added.
- Favour complementary pairings over similar alternatives — accessories and matching separates convert better in cart than substitutes for what is already chosen.
- Keep suggestions to a single row of three so the checkout button stays visible without scrolling on mobile.
- The cart contains no coupon, promo or discount input — a scan of every input on the page found none matching coupon, discount, promo or code.
- The same page carries the announcement bar promoting 'Use code: FIRSTBUY10', so the store advertises a code on the very screen that gives no way to redeem it.
- The price summary compounds the uncertainty: subtotal and grand total are identical, with no discount line, no shipping line and no savings total, so a shopper cannot confirm the offer has been applied before committing to checkout.
- Discount entry deferred entirely to checkout is a common abandonment trigger — shoppers leave to hunt for a working code, or abandon rather than proceed on faith.
- Add a collapsed 'Have a discount code?' field in the cart that expands on tap, so the code can be validated before checkout.
- Auto-apply FIRSTBUY10 for first-time visitors and show it as a discount line in the summary, removing the need to type it at all.
- Show a savings line in the price summary whenever a discount or sale price applies — with half the catalogue discounted, most carts have savings worth naming.
- Adding an item opens a full-viewport modal reading 'Added to cart successfully!' with three choices — Continue Shopping, View Cart and Proceed to Checkout. Confirmation feedback is therefore clear and unambiguous, which many stores get wrong.
- But it is a modal, not a cart drawer: it covers the page, shows no line items, no running subtotal and no cross-sell, and forces an explicit dismissal to resume browsing.
- A cart drawer is the benchmark standard, present on 8/10 stores, precisely because it confirms the add, shows the cart contents and subtotal, and returns the shopper to the grid without a page transition.
- The drawer is also the natural home for the cross-sell, coupon field and trust signals identified in the three findings above — one component change would create the surface for all of them.
- Nauti Nati opposite shows the pattern working in this market: the drawer lists each bag item with its own size and quantity selectors, carries a running order summary (total MRP, bag discount, coupon line, delivery fee and total payable), confirms the add with an inline 'Item added to Bag' toast, and keeps a persistent 'Proceed to Buy' bar in view — all without a page transition away from the grid.
- Replace the confirmation modal with a slide-in cart drawer showing line items, subtotal and a checkout button.
- Use the drawer to carry the cross-sell row, discount field and payment reassurance, consolidating three separate gaps into one build.
- Keep the current explicit success message inside the drawer — the clarity of the existing confirmation is worth preserving.
- Seed the cross-sell from the same collection as the item in the bag — the four styles above are all current, in-stock and priced between Rs.1,299 and Rs.2,399, so the pairing is realistic rather than aspirational.
App Ecosystem
What's installed vs what's missing from best-in-class Fashion & Apparel stores
Detected
Missing
Present (5)
Missing (6)
App Stack Assessment
Peppermint's app stack is unusually lean for a 2,652-product store: five apps, of which Google Tag Manager, CleverTap, XO Gallery, Shopify Forms and Blockify cover analytics, engagement, lookbook content, email capture and fraud prevention. There is no reviews app, no back-in-stock capture, no cart cross-sell, no loyalty programme and no advanced search — the five categories that most directly move conversion, AOV and repeat rate in fashion. Two of the installed apps are also not delivering what they were installed for. Shopify Forms is wired to CleverTap for newsletter capture, but the form never renders, so the FIRSTBUY10 offer promoted on every page collects no email addresses. And Blockify's bot-blocking is configured aggressively enough that any browser identifying itself as automated is redirected away from the store: its allowlist covers Googlebot, bingbot and Ahrefs so classic SEO crawling is unaffected, but AI assistants, partner integrations and monitoring tools that are not on that list see Google's homepage instead of Peppermint — a growing visibility risk as AI-mediated product discovery increases. The encouraging read is that most of the gap is inexpensive to close: the theme already has the slots for reviews and email capture, and the catalogue's scale means search, filtering and back-in-stock alerts would each pay for themselves quickly.
Confidential — Prepared for Peppermint by Growisto | August 2026