Web Quality Audit: Provogue (provogue.com)
Website: https://www.provogue.com/ | Date: 2026-08-11 | Platform: Shopify (Dawn-class theme, id 147734921451) + Cloudflare | Industry: D2C Travel / Hard Luggage + Accessories
Business context (from business-analysis.md): Provogue is a 1997-founded Mumbai heritage fashion house mid-pivot to a D2C hard-luggage brand. 233 SKUs (197 on sale), blended ASP ₹4,732, 95% mobile traffic, 3–5 yr warranties, personalisation moat, mass-to-mid tier competing with Safari/VIP/Samsonite + Mokobara/Nasher/Uppercase. This audit is read against that profile: a mobile-first, conversion-critical D2C store where SEO discoverability and trust signals drive the pivot's success.
Executive Summary
Provogue's store is built on a solid foundation — Core Web Vitals are passing on both mobile and desktop in real-world CrUX data, security headers are strong, and product pages are well-structured with ratings, FAQ schema, and full Product JSON-LD. The site is also clean of AI-generated product imagery (a real authenticity win for a heritage brand).
The gaps are concentrated in discoverability and structured-data completeness, not raw speed:
- Homepage, collection, and blog-index pages have no visible H1 (logo/image-only) — a keyword/heading-structure gap that weakens topical relevance on the exact pages that should rank.
- Open Graph images are missing on home/collection/blog and use insecure
http://where present — broken social-share previews across the catalogue. - Product JSON-LD carries an inaccurate
aggregateRating(ratingValue "5") that contradicts the visible 4.4★/79 reviews, and noReviewschema — a rich-result eligibility and trust risk. - ~75% of homepage images have empty alt text, and breadcrumb navigation/schema is absent from PDPs and collections.
- Variant-parameter pollution (
?variant=) affects ~23% of collection product links.
Scores below use CrUX field data as the performance source. Lighthouse lab scores could not be captured — the PageSpeed Insights API was rate-limited (HTTP 429) across four retry attempts; the UI Lighthouse run also stalled under bot detection. CrUX field data is the authoritative real-user source and is reported in full.
| Category | Mobile | Desktop | Grade |
|---|---|---|---|
| Performance (CWV field) | Passing | Passing | 🟢 |
| Accessibility | — | — | 🟡 Medium |
| Best Practices | — | — | 🟡 Medium |
| SEO | — | — | 🟡 Medium |
| Content Quality | — | — | 🟢 Good |
No Lighthouse 0–100 scores are shown because the tool was unavailable. Grades are assigned from CrUX + DOM/header evidence and are conservative.
1. Performance Audit
1.1 CrUX Real-World Field Data
Core Web Vitals Assessment: Passing on both mobile and desktop. All three metrics (LCP, INP, CLS) meet the "Good" threshold on the latest period (2026-07-12 → 2026-08-08).
Source: CrUX Vis, origin https://www.provogue.com, latest period 2026-07-12 → 2026-08-08.
Mobile (phone, 95% of traffic):
| Metric | Latest value | Threshold (Good / Poor) | Rating |
|---|---|---|---|
| LCP | 2,124 ms | ≤ 2,500 / > 4,000 | 🟢 Good |
| INP | 171 ms | ≤ 200 / > 500 | 🟢 Good |
| CLS | 0.09 | ≤ 0.10 / > 0.25 | 🟢 Good |
Desktop:
| Metric | Latest value | Threshold (Good / Poor) | Rating |
|---|---|---|---|
| LCP | 1,689 ms | ≤ 2,500 / > 4,000 | 🟢 Good |
| INP | 64 ms | ≤ 200 / > 500 | 🟢 Good |
| CLS | 0.07 | ≤ 0.10 / > 0.25 | 🟢 Good |
Trend notes (from full CrUX series):
- Phone is stable-to-improving: LCP has held ~2.0–2.2 s all year; CLS improved from 0.13 (May–Jun) to 0.09 (Good) by latest week; INP steady at 170–180 ms (Good, near the 200 ms boundary — worth watching).
- Desktop had a CLS regression mid-2025→mid-2026 (0.17–0.31, "Poor"/"Needs Improvement" in Dec 2025–Jun 2026) that has since recovered to 0.07 (Good). This suggests a past layout-shift fix landed; monitor that it doesn't regress.
- Phone share rose 88% → 95% over the 8 weeks — performance priority is overwhelmingly mobile, which is currently in good shape.
1.2 Core Web Vitals (Lighthouse Lab Data)
Not captured. The PageSpeed Insights API returned HTTP 429 (rate-limited) on four attempts (20 s / 30 s / 60 s / 90 s backoff); the in-UI Lighthouse run stalled loading under automated-browser detection. All performance conclusions above rely on CrUX field data, which is the preferred real-user signal. Recommendation: re-run Lighthouse from a non-rate-limited IP to obtain TBT/SI and the specific resource-level opportunities (LCP element, render-blocking CSS/JS) before committing engineering effort.
1.3 LCP Phase Breakdown (Mobile)
Not available (Lighthouse lab data not captured). CrUX LCP of ~2.1 s on mobile indicates healthy server response + render pipeline; pre-resource TTFB appears adequate (headers show server-timing processing ~27 ms, edge BLR).
1.4 Performance Issues by Impact
| Impact | Issue | Evidence | Recommendation |
|---|---|---|---|
| Medium | Third-party / app script weight unknown | Swym, Gokwik, warranty portal apps present; no Lighthouse to quantify TBT | Audit app JS; defer non-critical; bundle |
| Low | Preconnect to cdn.shopify.com duplicated (×2, one crossorigin) | link: header shows two identical preconnects | Collapse to a single crossorigin preconnect |
| Low | No <link rel="preload"> for the LCP hero image on home | Hero image not preloaded; currently OK via CrUX but fragile | Add preload + fetchpriority=high on LCP image |
1.5 Resource Transfer Summary
Not captured (Lighthouse unavailable). Static assets served via Shopify CDN + Cloudflare (cf-cache-status: DYNAMIC on homepage HTML — dynamic, expected for personalized Shopify; CDN assets are cached).
2. Accessibility Audit
2.1 Critical Issues
- Missing visible H1 on Home, Collection, and Blog-index pages. The homepage
<h1>wraps only the logo image (<a class="header__logo--image"><img …></a>) with empty text./collections/luggageand/blogs/newshave no<h1>at all (first heading is H2). Per WCAG A + SEO, every page needs a single descriptive H1 containing its primary keyword.
2.2 High Priority Issues
- Empty
alttext on content/product images. Homepage has 85<img>, of which 64 (75%) havealt=""and 1 has no alt. Many are product/content shots (e.g.Artboard_1PDP.jpg,PRPCWAVEPBLAP2.jpg, slide images) that should carry descriptive alt for screen readers and image search. Logo + decorative SVGs are correctly empty. - No skip-to-content target conflict: a "Skip to content" link exists (good), but the empty H1 undermines heading navigation.
2.3 Positive Findings
lang="en"set on<html>(note:content-language: en-INfrom server;langattribute isen— acceptable, consideren-INfor locale precision).<meta name="viewport">present and correct (width=device-width,initial-scale=1) — mobile-friendly.- "Skip to content" link present; logical heading nesting on PDP/blog (H1 → H2 → H3).
- Newsletter/email form inputs are labeled; quantity stepper has descriptive
aria-labels ("Decrease Quantity For …"). - Colour contrast not flagged in DOM inspection; theme appears AA-compliant.
3. SEO Audit
3.1 Technical SEO
| Check | Status | Evidence |
|---|---|---|
| HTTPS enforced | 🟢 | strict-transport-security: max-age=7889238; CSP upgrade-insecure-requests |
| robots.txt | 🟢 | Allows crawling; correctly disallows /cart, /checkout, /account; includes Sitemap: directive |
| XML Sitemap | 🟢 | sitemap.xml index present (products/pages/collections/blogs + new sitemap_agentic_discovery.xml) |
| Canonical (self-referencing) | 🟢 | Home, collection, PDP, blog all self-canonical |
| Indexation | 🟢 | No noindex observed; pages return 200 |
| URL structure | 🟢 | Clean, hyphenated, keyword-rich (/products/travel-packing-cubes-set-of-6) |
| Mobile-friendly | 🟢 | Viewport set; 95% phone traffic with Good CWV |
| Mixed content | 🟡 | og:image served over http:// on PDP + blog (see 3.2) — insecure scheme |
Note:robots.txthas been customised with an unusual "UCP/MCP agent" block directing automated agents to a Shopify MCP endpoint and promotingshop.app/SKILL.md. This is non-standard but harmless to crawlers; flagged only for awareness.
3.2 On-Page SEO Issues
| Page type | Title | Meta desc | H1 | OG image | Twitter image |
|---|---|---|---|---|---|
| Home | ✅ keyword-rich | ✅ present | ❌ empty (logo only) | ❌ missing | ❌ missing |
Collection (/collections/luggage) | ✅ | ✅ | ❌ none | ❌ missing | ❌ missing |
| PDP | ✅ | ✅ | ✅ product name | ⚠️ http:// (insecure) | ⚠️ http:// |
| Blog index | ⚠️ "News – Provogue" | ❌ missing | ❌ none | ❌ missing | ❌ missing |
| Blog post | ✅ | ✅ | ✅ | ⚠️ http:// (insecure) | ⚠️ http:// |
Key issues:
- Missing Open Graph images on home, collection, and blog-index → shared links on Instagram/Facebook/WhatsApp (Provogue's primary social surface) render without a preview image. High impact given 95% mobile + social-led "OGs Ka Comeback" campaign.
- Insecure
http://og:image on PDPs and blog posts → mixed-content / insecure share cards; should behttps://. - Empty H1 on home/collection/blog-index → weakens topical relevance; the home H1 should read "Luggage, Backpacks & Travel Accessories" not be a logo image.
- Missing meta description on blog index → thin SERP snippet for the
/blogs/newshub.
3.3 Schema Markup
| Type | Home | Collection | PDP | Blog post |
|---|---|---|---|---|
| Organization | ✅ | ✅ | ✅ | ✅ |
| WebSite | ✅ | — | — | — |
| ItemList | — | ✅ | — | — |
| Product | — | — | ✅ | — |
| BreadcrumbList | — | — | ❌ | ✅ (blog only) |
| Article | — | — | — | ✅ |
| AggregateRating (in Product) | — | — | ⚠️ inaccurate | — |
| Review | — | — | ❌ | — |
Critical schema issues:
- Inaccurate
aggregateRatingon PDP. Product JSON-LD reportsaggregateRating.ratingValue: "5"while the page visibly shows 4.4★ (79 reviews). TheratingValueis hard-coded/"5" andreviewCountis not populated from real data. Google's structured-data policies require accurate values; this risks a manual-action flag or simply no star-rich-result. Fix to reflect the true 4.4 / 79. - No
Reviewschema despite 79 reviews and a "See all reviews" section on the PDP → missing star-rating rich results in SERPs. - No
BreadcrumbListon PDP or collection (present only on blog) → no breadcrumb rich results; also no visual breadcrumb on PDP/collection (only blog has one). - One Product JSON-LD block failed to parse (
parseerror) on the PDP — likely a malformed/duplicate block worth fixing.
3.4 Image SEO
- 75% of homepage images lack descriptive alt (see 2.2). Product/content images should carry keyword-rich alt (e.g. "Provogue Cascade hard-sided trolley bag — golden yellow").
- Filenames are mixed: some clean (
PRPCWAVEPBLAP2.jpg,Provouge06326.webp) — good; others generic (Artboard_1_copy_5PDP.jpg,1-Jaigarh_Myn_1.webp) — rename to descriptive where feasible. - 80/85 homepage images use
loading="lazy"(correct for below-fold); verify the LCP hero is NOT lazy (it is not, per DOM).
3.5 Internal Linking
- Variant-parameter pollution: on
/collections/luggage, 28 of 122 product links contain?variant=(~23%). Shopify appends?variant=to variant-selected URLs; while below the 50% "severe" threshold, it still creates duplicate-content crawl paths. robots.txt disallows some filter params but not?variant=. - Popular-searches footer block provides good contextual internal links (keyword-rich anchors) — positive.
- PDP "Related Posts" / blog cross-links present — positive.
3.6 Keyword Targeting
- Homepage title/H1 misaligned: title is keyword-rich ("Luggage, Backpacks and Travel Accessories") but H1 is empty → the keyword lives in
<title>only. Collection titles are well-targeted ("Provogue Luggage Bags for Every Journey"). Blog posts target long-tail ("design your own luggage", "best suitcase for international travel 2026") — good informational-keyword coverage. - No keyword cannibalization observed.
3.7 E-E-A-T Signals
- ✅ Business registration (CIN U18101MH1997PTC111924), Mumbai HQ, phone +91 8655664396, emails, warranty/returns/shipping policies all present and linked in footer.
- ✅ Heritage "since 1997" + "Trusted by Millions" + 3–5 yr warranties = trustworthiness.
- ⚠️ Reviews exist on PDPs (4.4★) but are not marked up (Review schema missing) and not surfaced on collection/home → lost social proof for mobile shoppers (per business-analysis §15, a known gap).
- ⚠️ No press/PR schema or author markup on blog → missed authority signals despite real campaign coverage (AdGully, ANI, Impact).
4. International SEO
Not applicable / single-locale. The site is India-only (content-language: en-IN; warranty explicitly "national warranty only … no international warranty"). No hreflang alternates were found (blog only exposes an .atom feed alternate, not true hreflang). No action required for multilingual — but if export/gifting-to-diaspora launches (a noted business opportunity), hreflang + en-IN vs en planning will be needed.
5. Best Practices & Security
5.1 Security Headers
| Header | Value | Verdict |
|---|---|---|
| HSTS | max-age=7889238 (~90 days, no includeSubDomains/preload) | 🟡 Raise to max-age=31536000; includeSubDomains; preload |
| X-Frame-Options | DENY | 🟢 |
| X-Content-Type-Options | nosniff | 🟢 |
| CSP | block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests | 🟡 No script-src directive (relies on block-all-mixed-content only); add explicit script-src/object-src 'none' |
| X-XSS-Protection | 1; mode=block | 🟢 (legacy, harmless) |
| COOP | not set | 🟡 Add Cross-Origin-Opener-Policy: same-origin |
| Referrer-Policy | not set | 🟡 Add strict-origin-when-cross-origin |
| Permissions-Policy | not set | 🟡 Optional |
5.2 Modern Standards
- ✅ Valid HTML5 doctype, UTF-8 charset declared.
- ✅ No
document.write, no synchronous XHR observed. - ⚠️ Mixed content:
og:image/twitter:imageusehttp://on PDP + blog — CSPupgrade-insecure-requestswill rewrite at fetch time, but the literal tag is insecure and some consumers (social scrapers) ignore CSP. Fix the source URL tohttps. - ✅ Source maps not exposed (Shopify-managed).
6. Content Quality Assessment
6.1 Image Quality & Authenticity
- No AI-generated images detected. Filenames show no
Gemini_Generated_,ChatGPT_Image_,Picsart-AiImageEnhancer,ai0_, orunnamed_patterns. Product shots use branded real photography (Provouge0.webp,PRPC, campaignJaigarghassets). For a heritage "Trusted by Millions" brand this is a strong authenticity signal — keep it that way; do not introduce AI product renders.
6.2 Trust Signals
- ✅ Phone, email, address (Mumbai HQ), CIN, warranty/returns, shipping, privacy, terms — all present.
- ✅ PDP shows 4.4★ (79 reviews), "In stock", delivery-pincode checker, EMI/"0 Extra Cost" — strong conversion trust.
- ⚠️ Reviews not schema-marked up (see 3.3); testimonials on home are plain text (no
Review/AggregateRating).
6.3 Breadcrumb Navigation
- Present on blog only. Absent on PDP and collection pages (the highest-traffic commercial templates) — both visual breadcrumb and
BreadcrumbListschema missing. Add for UX wayfinding + SERP breadcrumbs.
6.4 Review / Social Proof
- PDP has rated reviews + FAQ (good). Home/blog rely on testimonial text. Marking up reviews (3.3) is the highest-leverage content-quality fix.
6.5 UX Issues
- Variant pollution (3.5) creates duplicate collection URLs.
- Homepage hero is image-only with no textual H1 — weakens both SEO and any text-only rendering.
- No visible store locator (consistent with D2C-only model — not a defect).
7. Priority Recommendations
🔴 Immediate (This Week)
| # | Issue | Impact | Effort | |
|---|---|---|---|---|
| 1 | Fix PDP aggregateRating to real 4.4/79 (and populate reviewCount); remove hard-coded "5" | Rich-result eligibility + trust | Low (theme snippet) | |
| 2 | Add https:// og:image + twitter:image to all PDPs and blog posts (currently http://) | Correct social-share cards | Low (Liquid ` | img_url: 'master'`) |
| 3 | Add OG image + Twitter image to home, collection, blog-index (currently missing) | Social preview for campaign traffic | Low (theme.liquid) |
🟡 Short-Term (This Month)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 4 | Add descriptive visible H1 to home ("Luggage, Backpacks & Travel Accessories"), collection, blog-index | Topical relevance / SEO | Low (Liquid) |
| 5 | Add BreadcrumbList schema + visual breadcrumbs to PDP & collection | SERP breadcrumbs + UX | Medium |
| 6 | Add Review schema to PDPs (79 reviews exist) | Star-rich results | Medium (app or Liquid) |
| 7 | Fill empty alt on homepage product/content images (64 of 85) | Image search + a11y | Medium (bulk/Liquid) |
| 8 | Add meta description to blog-index (/blogs/news) | SERP CTR | Low |
| 9 | Fix malformed Product JSON-LD block (parseerror) on PDP | Valid structured data | Low |
🟢 Long-Term (This Quarter)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 10 | Add script-src CSP, COOP, Referrer-Policy; strengthen HSTS (preload) | Security hardening | Low–Med |
| 11 | Reduce ?variant= duplicate paths (canonical or robots disallow) | Crawl budget | Medium |
| 12 | Re-run Lighthouse from a clean IP for TBT/SI + LCP element; act on render-blocking CSS/JS | Performance headroom | Medium |
| 13 | Add en-IN to <html lang>; plan hreflang only if export launches | Locale precision | Low |
| 14 | Collapse duplicate cdn.shopify.com preconnect; preload LCP hero | Minor perf | Low |
Summary Score Card
| Category | Score | Grade |
|---|---|---|
| Performance (Mobile CWV, field) | Passing (LCP 2.1 s / INP 171 ms / CLS 0.09) | 🟢 Good |
| Performance (Desktop CWV, field) | Passing (LCP 1.7 s / INP 64 ms / CLS 0.07) | 🟢 Good |
| Accessibility | H1 missing on 3 templates; 75% empty-alt on home | 🟡 Medium |
| Best Practices | Strong headers; CSP/COOP gaps; mixed og:image | 🟡 Medium |
| SEO | Good tech base; OG-image + H1 + schema gaps | 🟡 Medium |
| Content Quality | Real photos (no AI); reviews unmarked | 🟢 Good |
| Overall | Solid foundation; fixable discoverability gaps | 🟡 Medium |
Lighthouse 0–100 scores omitted — PageSpeed Insights API rate-limited (429) and in-UI run stalled. CrUX field data (above) is the authoritative performance source and shows passing Core Web Vitals. Re-run Lighthouse separately for lab detail.
Citations
https://www.provogue.com/— homepage DOM (title, meta, H1, 85 images, 64 empty-alt, og/twitter tags, Organization+WebSite JSON-LD). Via browser, 2026-08-11.https://www.provogue.com/collections/luggage— collection DOM (title, meta, no H1, ItemList+Breadcrumb missing, 28/122?variant=links, no og:image). Via browser, 2026-08-11.https://www.provogue.com/products/travel-packing-cubes-set-of-6— PDP DOM (H1, 4.4★/79 reviews, Product JSON-LD,aggregateRating.ratingValue:"5"inaccuracy,http://og:image). Via browser, 2026-08-11.https://www.provogue.com/blogs/news&/blogs/luggage-pro/design-your-own-luggage-step-by-step-guide— blog DOM (no H1 on index, Article schema on post,http://og:image, no meta desc on index). Via browser, 2026-08-11.https://www.provogue.com/robots.txt— crawl rules, Sitemap directive, UCP/MCP agent block. Via curl, 2026-08-11.https://www.provogue.com/sitemap.xml— sitemap index (products/pages/collections/blogs + agentic_discovery). Via curl, 2026-08-11.- HTTP response headers (
curl -sI) — HSTS, CSP, X-Frame-Options DENY, nosniff, content-language en-IN, Shopify/Cloudflare. 2026-08-11. - CrUX Vis
https://cruxvis.withgoogle.com/#/— originhttps://www.provogue.com, phone + desktop CWV series 2025-10 → 2026-08-08 (latest: phone LCP 2124 / INP 171 / CLS 0.09; desktop LCP 1689 / INP 64 / CLS 0.07). 2026-08-11. - PageSpeed Insights API
https://www.googleapis.com/pagespeedonline/v5/runPagespeed— attempted 4×, all HTTP 429 (rate-limited); Lighthouse lab data not captured. 2026-08-11. business-analysis.md(workspace) — Provogue company context, 233 SKU catalogue, 95% mobile, warranties, competitors, social channels. 2026-08-11.
End of report.