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 no Review schema — 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.

CategoryMobileDesktopGrade
Performance (CWV field)PassingPassing🟢
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):

MetricLatest valueThreshold (Good / Poor)Rating
LCP2,124 ms≤ 2,500 / > 4,000🟢 Good
INP171 ms≤ 200 / > 500🟢 Good
CLS0.09≤ 0.10 / > 0.25🟢 Good

Desktop:

MetricLatest valueThreshold (Good / Poor)Rating
LCP1,689 ms≤ 2,500 / > 4,000🟢 Good
INP64 ms≤ 200 / > 500🟢 Good
CLS0.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

ImpactIssueEvidenceRecommendation
MediumThird-party / app script weight unknownSwym, Gokwik, warranty portal apps present; no Lighthouse to quantify TBTAudit app JS; defer non-critical; bundle
LowPreconnect to cdn.shopify.com duplicated (×2, one crossorigin)link: header shows two identical preconnectsCollapse to a single crossorigin preconnect
LowNo <link rel="preload"> for the LCP hero image on homeHero image not preloaded; currently OK via CrUX but fragileAdd 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/luggage and /blogs/news have 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 alt text on content/product images. Homepage has 85 <img>, of which 64 (75%) have alt="" 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-IN from server; lang attribute is en — acceptable, consider en-IN for 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

CheckStatusEvidence
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.txt has been customised with an unusual "UCP/MCP agent" block directing automated agents to a Shopify MCP endpoint and promoting shop.app/SKILL.md. This is non-standard but harmless to crawlers; flagged only for awareness.

3.2 On-Page SEO Issues

Page typeTitleMeta descH1OG imageTwitter image
Home✅ keyword-rich✅ present❌ empty (logo only)missing❌ missing
Collection (/collections/luggage)❌ nonemissing❌ missing
PDP✅ product name⚠️ http:// (insecure)⚠️ http://
Blog index⚠️ "News – Provogue"missing❌ none❌ missing❌ missing
Blog post⚠️ http:// (insecure)⚠️ http://

Key issues:

  1. 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.
  2. Insecure http:// og:image on PDPs and blog posts → mixed-content / insecure share cards; should be https://.
  3. Empty H1 on home/collection/blog-index → weakens topical relevance; the home H1 should read "Luggage, Backpacks & Travel Accessories" not be a logo image.
  4. Missing meta description on blog index → thin SERP snippet for the /blogs/news hub.

3.3 Schema Markup

TypeHomeCollectionPDPBlog post
Organization
WebSite
ItemList
Product
BreadcrumbList✅ (blog only)
Article
AggregateRating (in Product)⚠️ inaccurate
Review

Critical schema issues:

  • Inaccurate aggregateRating on PDP. Product JSON-LD reports aggregateRating.ratingValue: "5" while the page visibly shows 4.4★ (79 reviews). The ratingValue is hard-coded/"5" and reviewCount is 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 Review schema despite 79 reviews and a "See all reviews" section on the PDP → missing star-rating rich results in SERPs.
  • No BreadcrumbList on 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

HeaderValueVerdict
HSTSmax-age=7889238 (~90 days, no includeSubDomains/preload)🟡 Raise to max-age=31536000; includeSubDomains; preload
X-Frame-OptionsDENY🟢
X-Content-Type-Optionsnosniff🟢
CSPblock-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-Protection1; mode=block🟢 (legacy, harmless)
COOPnot set🟡 Add Cross-Origin-Opener-Policy: same-origin
Referrer-Policynot set🟡 Add strict-origin-when-cross-origin
Permissions-Policynot 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:image use http:// on PDP + blog — CSP upgrade-insecure-requests will rewrite at fetch time, but the literal tag is insecure and some consumers (social scrapers) ignore CSP. Fix the source URL to https.
  • ✅ 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_, or unnamed_ patterns. Product shots use branded real photography (Provouge0.webp, PRPC, campaign Jaigargh assets). 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 BreadcrumbList schema 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)

#IssueImpactEffort
1Fix PDP aggregateRating to real 4.4/79 (and populate reviewCount); remove hard-coded "5"Rich-result eligibility + trustLow (theme snippet)
2Add https:// og:image + twitter:image to all PDPs and blog posts (currently http://)Correct social-share cardsLow (Liquid `img_url: 'master'`)
3Add OG image + Twitter image to home, collection, blog-index (currently missing)Social preview for campaign trafficLow (theme.liquid)

🟡 Short-Term (This Month)

#IssueImpactEffort
4Add descriptive visible H1 to home ("Luggage, Backpacks & Travel Accessories"), collection, blog-indexTopical relevance / SEOLow (Liquid)
5Add BreadcrumbList schema + visual breadcrumbs to PDP & collectionSERP breadcrumbs + UXMedium
6Add Review schema to PDPs (79 reviews exist)Star-rich resultsMedium (app or Liquid)
7Fill empty alt on homepage product/content images (64 of 85)Image search + a11yMedium (bulk/Liquid)
8Add meta description to blog-index (/blogs/news)SERP CTRLow
9Fix malformed Product JSON-LD block (parseerror) on PDPValid structured dataLow

🟢 Long-Term (This Quarter)

#IssueImpactEffort
10Add script-src CSP, COOP, Referrer-Policy; strengthen HSTS (preload)Security hardeningLow–Med
11Reduce ?variant= duplicate paths (canonical or robots disallow)Crawl budgetMedium
12Re-run Lighthouse from a clean IP for TBT/SI + LCP element; act on render-blocking CSS/JSPerformance headroomMedium
13Add en-IN to <html lang>; plan hreflang only if export launchesLocale precisionLow
14Collapse duplicate cdn.shopify.com preconnect; preload LCP heroMinor perfLow

Summary Score Card

CategoryScoreGrade
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
AccessibilityH1 missing on 3 templates; 75% empty-alt on home🟡 Medium
Best PracticesStrong headers; CSP/COOP gaps; mixed og:image🟡 Medium
SEOGood tech base; OG-image + H1 + schema gaps🟡 Medium
Content QualityReal photos (no AI); reviews unmarked🟢 Good
OverallSolid 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/#/ — origin https://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/runPagespeedattempted 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.