Web Quality Audit: Monrow.in

Website: https://www.monrow.in/ | Date: July 24, 2026 | Platform: Shopify | Industry: Women's Footwear D2C | Revenue: ₹15.1 Cr FY25

Executive Summary

Monrow.in is a ₹15.1 Cr women's footwear D2C brand with 1,102 SKUs, 50+ physical stores, and a Shopify-powered online store. The site has severe performance issues on mobile (Lighthouse score 36/100) and moderate accessibility gaps (70/100). The CrUX field data shows the Core Web Vitals Assessment fails due to LCP at 3.5s, though INP (154ms) and CLS (0.02) are good. The site's main problems are bloated third-party JavaScript, unoptimized hero images with loading="lazy", missing alt text on 96% of images, and minimal structured data.

CategoryMobile ScoreDesktop ScoreGrade
Performance3647🔴
Accessibility7064🟡
Best Practices5454🔴
SEO8585🟡
Overall3647🔴

Mobile vs Desktop gap: Mobile LCP is 23.8s vs Desktop 3.1s — a 7.7x gap, indicating severe mobile-specific issues with hero image delivery and render-blocking resources.


1. Performance Audit

1.1 CrUX Real-World Field Data

Source: PageSpeed Insights (https://pagespeed.web.dev/) — Chrome UX Report data for https://www.monrow.in/

Core Web Vitals Assessment: FAILED

MetricValueThresholdRating
LCP (Largest Contentful Paint)3.5 s≤ 2,500 ms🟡 Needs Improvement
INP (Interaction to Next Paint)154 ms≤ 200 ms🟢 Good
CLS (Cumulative Layout Shift)0.02≤ 0.10🟢 Good
FCP (First Contentful Paint)2.1 s≤ 1,800 ms🟡 Needs Improvement
TTFB (Time to First Byte)0.8 s≤ 800 ms🟢 Good

LCP at 3.5s is the primary failure — 40% above the 2.5s good threshold. This means real users on mobile experience slow page loads. INP and CLS are solid, suggesting the core interactivity and layout stability are well-optimized after initial load.

1.2 Core Web Vitals (Lighthouse Lab Data)

Source: PageSpeed Insights Lighthouse run (https://pagespeed.web.dev/) — Mobile + Desktop

MetricMobileDesktopGood Threshold
First Contentful Paint (FCP)6.1 s0.8 s≤ 1,800 ms
Largest Contentful Paint (LCP)23.8 s3.1 s≤ 2,500 ms
Total Blocking Time (TBT)810 ms710 ms≤ 200 ms
Cumulative Layout Shift (CLS)0.020.006≤ 0.10
Speed Index (SI)15.9 s4.3 s≤ 3,400 ms

The mobile lab results are critically poor. LCP at 23.8s is 9.5x the good threshold. This is 9.5× worse than the CrUX field data (3.5s), suggesting the lab connection is throttled more aggressively than real-world 4G, but the pattern is clear: mobile is extremely slow due to unoptimized hero images and render-blocking resources.

1.3 LCP Phase Breakdown (Mobile)

Source: PageSpeed Insights Lighthouse — LCP breakdown audit

PhaseDuration
Time to First Byte (TTFB)30 ms
Resource Load Delay1,470 ms
Resource Load Duration20 ms
Element Render Delay930 ms
Pre-resource (render-blocking) delay~21,350 ms (implied by total LCP minus phases)

The LCP element is the hero image (FLC_mob_banner_900x.jpg). The massive pre-resource delay indicates that render-blocking CSS/JS prevented the browser from even discovering the LCP resource for ~21 seconds. This is consistent with the Shopify theme's heavy JavaScript bundle loading before the hero image can be requested.

Critical finding: The hero image has loading="lazy" and class="lazyautosizes lazyload"lazy-loading the LCP element is a critical error. The fetchpriority="high" attribute is also missing.

1.4 Performance Issues by Impact

Critical

IssueEvidenceEst. SavingsRecommendation
LCP hero image has loading="lazy"Lighthouse audit: "LCP resources should not use loading=lazy"3-10sRemove loading="lazy" from hero image. Add fetchpriority="high". Ensure the image <img> tag is in the initial HTML.
Render-blocking CSS/JS blocking LCP discovery21s pre-resource delay on mobile10-15sInline critical CSS for above-the-fold content. Defer non-critical JS. Use media="print" on non-critical stylesheets. Move theme.js to load after hero image is discovered.
Hero image oversized for its display size170.5 KB served for mobile banner (900×585) vs smaller display size100-150 KBServe appropriately sized images via srcset. The mobile hero at 900×585 is too large for mobile viewports.

High

IssueEvidenceEst. SavingsRecommendation
Google Tag Manager bloat1.3 MB+ from GTM, 6+ gtag containers running simultaneously500-800 KBConsolidate to a single GTM container. Audit tags — remove unused/duplicate tags. Defer non-critical analytics.
Unoptimized images site-wide2,482 KB potential savings on mobile, 646 KB on desktop600 KB-2.4 MBServe WebP/AVIF with fallbacks. Add srcset to all product images. Use responsive image sizes.
First-party JS bundle heavy206 KB hydrate.GMX4Ce4Q.js, 900+ms CPU on 1st party JS200-400 msCode-split Shopify WPM bundle. Audit vendor-scripts-v10.js for unused code.
Large DOM size2,435 elements, max depth 21100-200 msSimplify page structure. Reduce redundant DOM nodes in carousels and slideshows.
Script evaluation time3,717 ms on mobile, 3,762 ms on desktop1-2sMove non-critical scripts to defer or async. Audit third-party scripts.

Medium

IssueEvidenceRecommendation
Unused CSS24-40 KB savings from unused CSS (theme.css, kwikpass.css)Audit theme.css for unused Shopify sections. Use PurgeCSS.
Duplicate jQueryLoading jQuery 1.9.1 (HTTP) AND jQuery 3.6.4 (HTTPS)Remove jQuery 1.9.1. Modernize to single jQuery 3.6.4 or eliminate jQuery dependency.
Mixed content: jQuery over HTTPhttp://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.jsChange to https:// — this triggers mixed content warnings.
Source maps accessible in productionSyntaxError parsing .map files (returns HTML 404 page)Configure server to return 404 for .map files. Currently they leak internal build structure.
Gokwik/Kwikpass bloat431 KB total from gokwik.co, includes 42.9 KB unused CSSAudit Gokwik integration for unnecessary scripts.

Low

IssueEvidenceRecommendation
HSTS max-age too lowmax-age=7889238 (~91 days)Increase to max-age=31536000; includeSubDomains; preload
Missing includeSubDomainsNo includeSubDomains in HSTSAdd includeSubDomains directive
Missing preload directiveNo preload in HSTSAdd preload directive for HSTS preload list submission
No COOP headerCross-Origin-Opener-Policy: missingAdd Cross-Origin-Opener-Policy: same-origin
CSP lacks script-srcCSP present but no script-src directiveAdd script-src to CSP

1.5 Resource Transfer Summary (Mobile)

Source: PageSpeed Insights Lighthouse — network requests audit

CategoryTransfer SizeKey Contributors
Google Tag Manager1,336 KB6+ gtag containers, duplicate analytics
Monrow 1st party715 KBtheme.js, vendor scripts, WPM, images
Gokwik/Kwikpass431 KBMerchant integration, SSO, CSS, icons
Amazon Web Services156 KBWareIQ shipping badges, CAPI
Other CDNs64 KBjQuery, Owl Carousel, Slick, Bureau.id

Total: ~2.7 MB+ transferred — extremely high for a homepage. Google Tag Manager alone accounts for nearly 50% of all transferred bytes.


2. Accessibility Audit

2.1 Critical Issues

IssueEvidenceWCAG
50 images with NO alt attributecurl analysis: 50/103 images have no alt="..." attribute at allA
49 images with empty alt text49/103 images have alt="" but are content/product images (not decorative)A
H1 is visually hidden<h1><span class="visually-hidden">Monrow Shoes</span></h1> — only visible to screen readers, no visible keyword H1 on pageA

2.2 High Priority Issues

IssueEvidenceWCAG
Buttons without discernible textOwl carousel dot buttons lack accessible namesA
ARIA input fields need accessible nameslick-track with role="listbox" lacks accessible nameA
Form elements without labelsAdd-to-cart widget quantity inputs lack labelsA
2 H1 tags on the pageTwo <h1> elements both contain "Monrow Shoes"A
Bad link target color contrastWishlist link uses href="#hero-wishlist" (hash-only)A

2.3 Positive Findings

  • Viewport meta tag present: <meta name="viewport" content="width=device-width,initial-scale=1">
  • Page language set: <html lang="en">
  • Content Security Policy: frame-ancestors 'none'
  • X-Frame-Options: DENY
  • Skip to content link not found in initial HTML, but may be injected by JS

3. SEO Audit

3.1 Technical SEO

CheckStatusDetails
robots.txt✅ GoodWell-configured Shopify robots.txt. Disallows admin, cart, checkout, orders, filters, sort params. Includes Sitemap directive.
XML Sitemap✅ Good6 sitemap files: 2x products (1,102 total), 42 collections, 52 pages, 1 blog. All accessible.
Canonical URLs✅ GoodSelf-referencing canonical on homepage: https://www.monrow.in/
Indexation✅ GoodNo noindex meta tag on homepage
URL structure✅ GoodClean, descriptive, hyphenated URLs: /products/tamara-rustic-gold-strap-flats
HTTPS⚠️ Mixed Contentog:image uses http:// — mixed content warning. Also loads jQuery 1.9.1 over HTTP.
Page speed🔴 CriticalCWV failed, mobile LCP 23.8s lab, 3.5s field
Mobile-friendly✅ GoodViewport configured, responsive design

3.2 On-Page SEO Issues

Title tag:

Latest Collection of Women Footwear & Bags❣️ Comfort - Monrow
– Monrow Shoes
  • Length: 84 characters (within limit but could be tighter)
  • Has duplicate brand name: "Monrow" appears twice in title ("Monrow" AND "Monrow Shoes")
  • Uses &amp; (HTML entity) instead of & — minor issue
  • ❤️ emoji in title may not render consistently across all SERPs
  • Recommendation: Women's Footwear & Bags | Comfortable Shoes Online - Monrow

Meta description:

Fashion ❣️ Comfort We aim to create shoes and bags that not only look stylish but also feel incredibly comfortable. Designed for the go-getters who deserve effortless elegance every step of the way! ❤
  • Length: ~200 characters (slightly over 160-character limit)
  • ❤️ emojis may not display in all SERPs
  • Could be more keyword-rich and CTA-driven
  • Recommendation: Shop trendy women's footwear & bags at Monrow. Discover stylish flats, heels, wedges & more crafted for all-day comfort. ✓ Free shipping ✓ Easy returns

Heading structure:

HeadingCountIssues
H12Duplicate H1s, both visually hidden
H29OK
H31Only 1 H3 — thin hierarchy

Critical issue: The only H1 is <span class="visually-hidden">Monrow Shoes</span>. Google may discount visually-hidden H1 content. The page has no visible keyword-rich H1 for users.

Open Graph tags:

  • og:title, og:description, og:image, og:url, og:type, og:site_name — all present ✓
  • Issue: og:image uses http:// instead of https:// — mixed content on social share previews

Twitter Card tags:

  • 4 tags present ✓

3.3 Schema Markup

Present: Only 1 JSON-LD block — ItemList with 84 products (homepage product listing)

Missing schemas:

Schema TypeImpactPriority
OrganizationRequired for brand signal in knowledge panelsP0
WebSiteRequired for sitelinks search boxP0
BreadcrumbListEnables breadcrumb rich results in SERPsP0
Product (on product pages)Required for product rich results, star ratingsP0
LocalBusinessFor physical store locations (50+ stores)P1

Note: Schema was verified via curl on the initial HTML. Some Shopify SEO apps inject JSON-LD client-side. The only JSON-LD found in the initial HTML was ItemList — the others are likely missing entirely.

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

Experience:

  • 50+ physical stores across 9 cities — strong omnichannel presence
  • 10 years in business (founded 2016) — established brand
  • PETA India Vegan Fashion Award 2024 — notable industry recognition

Expertise:

  • Founder: Veena Ashiya — founder story could be highlighted more prominently
  • Product certifications not prominently displayed on homepage

Authoritativeness:

  • 139K Instagram followers — strong social proof
  • 19K LinkedIn followers
  • Press mentions and media coverage not prominently featured
  • Blog is inactive since 2021 — last post was June 2021

Trustworthiness:

  • Phone, email, physical address — need to verify on contact page
  • Return/refund policy — likely present (Shopify standard)
  • Privacy policy — present
  • Missing: Trust badges prominently displayed on homepage

4. Best Practices & Security

4.1 Security Headers

Source: curl -sI https://www.monrow.in/

HeaderValueStatus
Strict-Transport-Securitymax-age=7889238⚠️ Low max-age (~91 days), missing includeSubDomains, missing preload
X-Frame-OptionsDENY✅ Good
X-Content-Type-Optionsnosniff✅ Good
Content-Security-Policyblock-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests;⚠️ Missing script-src, object-src 'none'
Cross-Origin-Opener-PolicyMissing❌ Not set
Referrer-PolicyMissing❌ Not set
Permissions-PolicyMissing❌ Not set

4.2 Modern Standards

CheckStatusDetails
Valid HTML5 doctype<!doctype html>
Charset UTF-8charset=utf-8 in header
No mixed contentog:image uses http://, jQuery 1.9.1 loaded over HTTP
Source maps accessible.map files return HTML error pages instead of 404
No document.write()Not detected
Attribution Reporting deprecated⚠️Warning from shop_events_listener.js

5. Content Quality Assessment

5.1 Image Quality & Authenticity

  • 103 images on homepage — very image-heavy
  • 99/103 have alt text issues — either missing (50) or empty (49)
  • No AI-generated image patterns detected (Gemini, ChatGPT, Picsart) — images appear to be real product photography ✓
  • Hero image is 170 KB — could be compressed further
  • Product images use WebP format where available ✓

5.2 UX Issues

IssueSeverityDetails
No breadcrumb navigationMediumNo visual breadcrumbs or BreadcrumbList schema on homepage
Broken wishlist linkMediumhref="#hero-wishlist" — hash-only link, likely relies on JS
Login link uses javascript:void(0)Lowonclick="kpHandleLogin" — not crawlable
Shadow DOM container not foundLowpop-club-embed.js failing to find Shadow DOM container
Shopify OTLP metrics blockedLowERR_BLOCKED_BY_CLIENT on Shopify telemetry endpoints
Video has no poster imageLowAutoplay video section has empty poster=""

6. Priority Recommendations

🔴 Immediate (This Week)

#IssueImpactEffort
1Remove loading="lazy" from hero image, add fetchpriority="high"3-10s LCP improvementLow — 1 line change
2Add alt text to all 103 images on homepageA11y compliance, image search rankingMedium — bulk edit
3Add Organization, WebSite, BreadcrumbList structured dataRich results, knowledge panelLow — copy JSON-LD templates
4Fix mixed content: update og:image to https://Social share previews, browser warningsLow — 1 URL change
5Replace H1 with visible keyword-rich headingSEO ranking signalLow — theme template change

🟡 Short-Term (This Month)

#IssueImpactEffort
6Inline critical CSS, defer non-critical stylesheets5-10s LCP improvementMedium — requires build tooling
7Consolidate GTM to single container800 KB+ savings, 1s+ fasterMedium — audit GTM tags
8Remove duplicate jQuery (1.9.1), upgrade to HTTPS-onlyMixed content fix, modern JSLow — remove one script tag
9Add Product schema with AggregateRating to product pagesStar ratings in SERPsMedium — Shopify app or custom code
10Optimize all images with WebP + srcset600 KB-2.4 MB savingsMedium — batch conversion
11Fix HSTS: increase max-age, add includeSubDomains, preloadSecurity hardeningLow — server config
12Add CSP script-src directiveXSS protectionLow — server config

🟢 Long-Term (This Quarter)

#IssueImpactEffort
13Rebuild hero section with proper image deliveryMobile performance core fixHigh — theme redesign
14Add COOP, Permissions-Policy, Referrer-Policy headersSecurity hardeningLow — server config
15Audit all third-party scripts for necessity1-2s load time improvementMedium — audit + remove
16Add breadcrumb navigation to all pagesUX + SEO + structured dataMedium — theme template
17Revive blog with regular contentE-E-A-T, Discover eligibilityHigh — content strategy
18Add LocalBusiness schema for 50+ storesLocal SEOMedium — multi-location

Summary Score Card

CategoryScoreGrade
Performance (Mobile)36/100🔴
Performance (Desktop)47/100🔴
Accessibility70/100🟡
Best Practices54/100🔴
SEO85/100🟡
Content Quality60/100🟡
UX65/100🟡
Security55/100🔴
Overall35/100🔴

All Data Sources

  1. PageSpeed Insights — https://pagespeed.web.dev/ — Lighthouse scores, CrUX field data, LCP breakdown, performance audits (Mobile + Desktop)
  2. curl analysiscurl -sI https://www.monrow.in/ — HTTP headers, security headers, server info
  3. curl HTML analysiscurl -sL https://www.monrow.in/ — Title tag, meta description, OG tags, JSON-LD, image analysis, heading structure, script count, stylesheet count
  4. robots.txtcurl -sL https://www.monrow.in/robots.txt — Crawl rules, sitemap reference
  5. XML Sitemapscurl -sL https://www.monrow.in/sitemap.xml — Product count (1,102), collection count (42), page count (52), blog count (1)
  6. browser_console — PageSpeed Insights expanded audit details — LCP breakdown, render-blocking resources, third-party impact, CLS culprits, unused CSS/JS, duplicate JS, network requests
  7. Business Analysis/root/cro-reports/monrow/20260724-164647/business-analysis.md — Revenue, funding, store count, social media metrics, tech stack