Web Quality Audit: Powerlook (powerlook.in)

Website: https://www.powerlook.in/ | Date: 2026-08-27 | Platform: Shopify (D2C, theme id 154876117242, CDN Cloudflare) | Industry: Men's fast-fashion / streetwear Business context (from business-analysis.md): 95.2% phone / 4.8% desktop traffic (CrUX), ~618K monthly visits, 1,606 SKUs, ₹399–₹2,499 price tier, 12+ stores, unfunded/bootstrapped, competitors Bewakoof/Snitch/Souled Store. Mobile is the entire game — every performance and UX finding below should be read through that lens.


Executive Summary

Powerlook's SEO and accessibility foundations are strong (SEO 92, Accessibility 93), and its real-world mobile Core Web Vitals are genuinely improving — INP collapsed from ~1,900 ms (May) to ~300 ms (Aug) after what looks like a major JS/interactivity fix. But two things pull the site down hard:

  1. Mobile performance in the lab is severe (Lighthouse Performance = 20/100). On an emulated Moto G / slow-4G run the homepage ships an 8.3 MB payload, executes 18 s of JavaScript, and records a 46.2 s LCP. The field (real-user) numbers are far better (LCP 2.6 s, INP 311 ms) but still Needs Improvement — LCP is a hair over the 2.5 s "Good" threshold and INP is well over 200 ms.
  2. Best Practices score is only 54/100, driven almost entirely by a weak HSTS policy (91-day max-age, no includeSubDomains, no preload) and a permissive CSP that has no script-src directive.

The single most valuable on-page fix is the blog section, which has no meta description and a 10-character <title> ("Style Tips") — a classic Shopify template gap that forfeits search visibility on 29 blog posts. The homepage also carries three <h1> elements, which dilutes the primary keyword signal.

CategoryMobile ScoreDesktop ScoreGrade
Performance20lab run failed (PSI backend timeout) — field: Passing (desktop only)🔴 / —
Accessibility9393 (shared template)🟢
Best Practices5454 (shared template)🟡
SEO9292 (shared template)🟢
Overall🟡 (Needs Work)
Mobile vs Desktop gap: Desktop is 4.8% of traffic and its field CWV Pass. The mobile Performance score (20) is ~4.5× worse than desktop's effective experience. All performance effort must be mobile-first.

1. Performance Audit

1.1 CrUX Real-World Field Data (Chrome UX Report via CrUX Vis, origin https://www.powerlook.in, phones)

Core Web Vitals Assessment (phones): Needs Improvement. Latest 28-day window (2026-07-26 → 2026-08-22):

  • LCP: 2,608 ms — Needs Improvement (threshold Good ≤ 2,500 ms; Poor > 4,000 ms). Just 108 ms over Good.
  • INP: 302 ms — Needs Improvement (threshold Good ≤ 200 ms; Poor > 500 ms).
  • CLS: 0.01 — Good (threshold Good ≤ 0.10).

Trend (this is the good news): the phone experience improved dramatically over the summer:

PeriodLCPINPCLS
2026-05-31 → 06-273,228 ms1,886 ms0.01
2026-06-28 → 07-253,603 ms784 ms0.05
2026-07-05 → 08-013,492 ms427 ms0.05
2026-07-19 → 08-152,725 ms300 ms0.01
2026-07-26 → 08-222,608 ms302 ms0.01

INP improved 6.2× (1,886 → 302 ms) and LCP 19% (3,228 → 2,608 ms) in ~12 weeks. Whatever shipped in June/July (likely deferred/reduced JS, hydration fix) worked. The remaining gap is small and closing.

Desktop (field): PageSpeed Insights reports Core Web Vitals Assessment Passed for desktop. (Desktop is 4.8% of traffic, so low business priority.)

1.2 Core Web Vitals — Lighthouse Lab Data (mobile, Lighthouse 13.4.1, Moto G Power, slow 4G)

MetricLab ValueThreshold GoodRating
FCP6.8 s≤ 1.8 s🔴 Poor
LCP46.2 s≤ 2.5 s🔴 Poor (18× Good)
TBT2,810 ms≤ 200 ms🔴 Poor (14× Good)
CLS0.157≤ 0.10🔴 Needs Improvement
Speed Index17.3 s≤ 3.4 s🔴 Poor (5× Good)
Read this carefully. The lab LCP of 46 s is an emulated slow-4G artifact on a 2.3 MB HTML document + 8.3 MB of subresources, not what real users on 4G/5G experience (field LCP is 2.6 s). But the direction is right: the page is massively over-weight for a mobile-first audience, and the lab test is a stress signal that the site will feel broken on weak networks (the exact rural/value buyers Powerlook targets at ₹399 price points). The Performance score of 20/100 is the headline number to fix.

1.3 LCP Phase Breakdown (mobile, lab)

The Lighthouse "LCP breakdown" insight was captured but not fully expanded; the dominant contributors are unambiguous from the diagnostics:

  • Render-blocking requests: Est. savings 1,810 ms — CSS/JS loaded before first paint.
  • Reduce unused JavaScript: Est. savings 1,645 KiB — theme + app bundle (MoEngage, Flits wishlist, Whatmore shoppable video, custom multi-JS loader) ships code that isn't used on the homepage.
  • Avoid enormous network payloads: Total size 8,292 KiB (8.3 MB).
  • Minimize main-thread work: 39.2 s; Reduce JS execution time: 18.0 s; 20 long tasks found.

Net: the LCP element is discovered late because render-blocking CSS/JS must finish first, and then a mountain of third-party + theme JS keeps the main thread busy (TBT 2,810 ms), delaying render.

1.4 Performance Issues by Impact

🔴 Critical (mobile, > 1 s savings / Core-Web-Vitals failure)

  • Render-blocking CSS/JS — 1,810 ms estimated savings. Homepage inlines/loads vendor.css, theme.css, custom.css, basic.css, section-slideshow.css, notify-me-button.css as rel=preload then blocking. Inline critical above-the-fold CSS; defer the rest.
  • Unused JavaScript — 1,645 KiB. Theme + 4+ app scripts (MoEngage SDK, Flits, Whatmore, multi-loader). Lazy-init MoEngage/Whatmore below fold; remove dead app code.
  • Total payload 8.3 MB / HTML 2.3 MB. Compress, tree-shake, and split. For a ₹399 T-shirt buyer on patchy 4G, this is a bounce risk.
  • Reduce JS execution 18 s / main-thread 39 s. Directly causes the 2,810 ms TBT and the field INP of 302 ms.

🟡 High

  • Preconnect overuse — > 4 preconnect connections (Lighthouse warning). Keep to 2–3 critical origins (cdn.shopify.com, cdn.moengage.com). Trim the duplicate Shopify preconnects.
  • Inefficient cache lifetimes — 847 KiB savings. Static assets not cached long enough; set long Cache-Control on versioned Shopify CDN assets.
  • Image delivery — 493 KiB savings. Serve AVIF/WebP with srcset; ensure the hero/slideshow image is not loading="lazy".
  • CLS 0.157 (lab). Layout-shift culprits present (likely late-loading images/slideshow without reserved dimensions). Reserve space for above-fold media.
  • DOM size 5,437 elements (from a 2.3 MB HTML doc). Trim theme sections / lazy-render below-fold rails.

1.5 Resource Transfer Summary (mobile lab)

  • Total: ~8.3 MB. Images dominate (493 KiB optimizable), JS is the execution bottleneck (1,645 KiB unused), CSS render-blocks (1,810 ms).
  • Third parties: MoEngage (CDP/analytics), Flits (wishlist), Whatmore (shoppable video), Shopify WPM — each adds main-thread cost.

2. Accessibility Audit

Score: 93/100 (🟢 Good). Strong baseline — html lang="en", viewport present, 0 images missing alt (160 images, 18 have empty alt for genuinely decorative elements — acceptable), single logical heading flow on PDP/PLP, form labels present, skip-to-content link present.

2.1 Critical Issues

  • None.

2.2 High Priority Issues

  • Three <h1> elements on the homepage (Powerlook logo, POPULAR CATEGORIES, THE SALE YOUR CART MANIFESTED). Multiple H1s and skipped heading levels dilute the primary-keyword signal for both SEO and screen-reader navigation. Promote only the hero/brand concept to <h1>; demote section titles to <h2>.
  • Contrast: Lighthouse flags at least one foreground/background pair below 4.5:1. Verify promo-bar / footer text contrast.

2.3 Positive Findings

  • lang="en" set; viewport configured (mobile-first indexing safe).
  • 0 images without alt; decorative images correctly use alt="".
  • Skip-link, labelled form controls, and ARIA on interactive widgets present.
  • PDP/PLP maintain a clean single-<h1> hierarchy.

3. SEO Audit

Score: 92/100 (🟢 Strong). Product and collection templates are well-optimized. The gaps are concentrated in the homepage heading structure and the blog template.

3.1 Technical SEO

CheckStatusEvidence
robots.txtProperly disallows /cart /checkout /account; references Sitemap:; allows crawl of products/collections
XML SitemapIndex present (products×2, pages, collections, blogs, agentic_discovery). 1,606 products, 118 collections, 29 blog posts
CanonicalSelf-referencing on homepage, PDP, PLP (verified)
HTTPSEnforced (HSTS present); no mixed content (CSP block-all-mixed-content)
Mobile-friendlyResponsive; viewport set; 95% mobile traffic confirms parity
URL structureClean, hyphenated, keyword-rich (/collections/t-shirts-full-sleeves-t-shirts-for-men)

3.2 On-Page SEO Issues

  • 🔴 Blog template gap (High): /blogs/style-tips has no meta description and a 10-character <title> ("Style Tips"). With 29 blog posts this forfeits SERP CTR and keyword targeting. Fix: unique, keyword-rich title (50–60 chars) + 150–160 char meta description per post; set a blog-default template.
  • 🟡 Homepage meta description is fine (158 chars, keyword-rich)note: an earlier regex pass misread it as truncated; browser-DOM verification confirms the full description is present and correct. No action needed.
  • 🟡 Title tag: Homepage title Powerlook - Buy Trendy Men's Fashion & Clothing Online in India (63 chars) is good. PDP/PLP titles (50–60 chars, keyword + brand) are exemplary.
  • 🟡 Open Graph: og:title/og:site_name/og:type present, but og:description and og:title are generic ("Powerlook") on the homepage (verified in DOM). PDP/PLP have rich OG. Add a homepage-specific OG description for social-share previews. Twitter Card (summary_large_image) is set.

3.3 Schema Markup (JSON-LD)

Strong and comprehensive. Detected via browser DOM (not curl, which misses JS-injected JSON-LD):

  • Homepage: Organization (with PostalAddress, ContactPoint, founders as Person), WebSite + SearchAction (sitelinks search box eligible), WebPage, MerchantReturnPolicy, ItemList (product rail).
  • PDP: Product + AggregateRating + Offer/OfferShippingDetails + Brand + FAQPage (Q&A) + BreadcrumbList + ProductGroup. Excellent — star-rating rich results and FAQ snippets are eligible.
  • PLP: CollectionPage + BreadcrumbList + ItemList (products) + Organization.
  • No missing critical schema types for an e-commerce site. localization cookie and content-language: en-IN are set.

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

  • Experience/Expertise: "Manufacturing Details" block (Powerlook Apparels Pvt Ltd, Goregaon address) and About-page founder story provide real provenance. Own-manufacturing claim is a genuine differentiator vs reseller D2C rivals.
  • Authoritativeness: 822K Instagram, press (YourStory/ANI/Sugermint), but no structured PR/award markup and low review volume (30 Trustpilot).
  • Trustworthiness: Phone (+91 9696333000), email, 12+ store addresses, returns/refund, privacy, membership all present and linked in footer. ✅

4. International SEO

Not applicable / low priority. The site is India-only (content-language: en-IN, no international shipping, single locale). No hreflang is correct here — adding it would be wrong. No action needed. (If Powerlook later expands to global/diaspora shipping, revisit with hreflang + localized URLs.)


5. Best Practices & Security

Score: 54/100 (🟡 Weak). The low score is almost entirely security-header and modern-standards related, not functional bugs.

5.1 Security Headers (from curl -sI)

HeaderCurrentAssessment
HSTSmax-age=7889238 (~91 days)🔴 Too weak. Should be max-age=31536000; includeSubDomains; preload (1 year + subdomains + preload list). Fails Lighthouse "Uses strong HSTS policy."
X-Frame-OptionsDENY
X-Content-Type-Optionsnosniff
CSPblock-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests🟡 No script-src directive → fails "Ensure CSP is effective against XSS attacks." Add a script-src allowlist (Shopify requires cdn.shopify.com, *.shopify.com, plus app/CDP domains).
COOPnot present🟡 Missing Cross-Origin-Opener-Policy: same-origin (Lighthouse flags).
X-Permitted-Cross-Domain-Policiesnone

5.2 Modern Standards

  • ✅ Valid HTML5 doctype, UTF-8 charset, no document.write.
  • 🟡 Uses deprecated APIs (1 warning) and 6 third-party cookies — typical for a Shopify + CDP (MoEngage) stack; monitor for the 3P-cookie deprecation timeline.
  • 🟡 Browser errors logged to console (Lighthouse "Issues" panel) — worth a dev pass to clear.
  • ✅ No source maps leaking; no mixed content.

6. Content Quality Assessment

6.1 Image Quality & Authenticity

  • No AI-generated images detected in filenames (checked initial HTML image set; 0 matches for Gemini_Generated / ChatGPT_Image / Picsart-AiImageEnhancer / ai0_ / unnamed_1 patterns). Product/lifestyle photography appears real (own-manufacturing brand — authenticity intact, no artisan-brand mismatch).
  • 18 decorative images use alt="" (correct). 0 content images missing alt.

6.2 Trust Signals

  • ✅ Phone, email, 12+ store addresses, returns (10-day), privacy, shipping all present.
  • ✅ On-site star ratings visible on PDPs (e.g., 5.0 / 4.0 on hero products) and marked up with AggregateRating.
  • ⚠️ Low external review volume (30 Trustpilot, 3.9/5) — not a site-quality defect but a CRO/trust gap noted in the business analysis.

6.3 UX Issues

  • Homepage heading pollution (3× H1) — see §2.2.
  • No breadcrumb navigation visibly rendered on the homepage (expected — breadcrumbs belong on PDP/PLP, where BreadcrumbList schema is present ✅).
  • Store locator, track-order, contact, membership all linked in header/footer — navigation is complete.

7. Priority Recommendations

🔴 Immediate (This Week)

#IssueImpactEffort
1Fix blog template meta description + title (/blogs/style-tips and all 29 posts: no meta desc, 10-char title "Style Tips")Recovers organic visibility on blog contentLow (theme template)
2Collapse homepage to a single <h1> (logo + 2 section headings currently H1)Clearer keyword signal for SEO + screen readersLow (Liquid edit)
3Strengthen HSTS to max-age=31536000; includeSubDomains; preloadClears the biggest Best-Practices penalty; securityLow (Cloudflare/header config)

🟡 Short-Term (This Month)

#IssueImpactEffort
4Add script-src CSP directive (allowlist Shopify + app/CDP domains)Clears XSS-efficacy audit; securityLow–Med
5Defer/inline critical CSS, eliminate render-blocking (1,810 ms savings)Direct LCP/FCP improvement on mobileMed
6Lazy-init / tree-shake third-party JS (MoEngage, Flits, Whatmore, multi-loader; 1,645 KiB unused)Cuts 18 s JS execution, 2,810 ms TBTMed
7Serve AVIF/WebP + srcset; don't lazy-load hero (493 KiB image savings)LCP + payloadMed
8Add homepage-specific OG description (currently generic "Powerlook")Better social-share CTRLow
9Trim preconnect to 2–3 origins; add COOP: same-originPerf + Best-PracticesLow

🟢 Long-Term (This Quarter)

#IssueImpactEffort
10Cut total payload (8.3 MB → target < 3 MB) via code-splitting, app consolidation, DOM-size reduction (5,437 → < 1,500)Sustains mobile CWV in Good; protects value-segment buyersHigh
11Reserve dimensions for above-fold media to kill lab CLS (0.157)Visual stabilityMed
12Long-cache versioned CDN assets (847 KiB savings)Repeat-visit speedLow
13Add FAQ/Article schema to blog posts; pursue PR/award markupRich results, authorityMed
14Clear console errors + deprecated-API warningBest-Practices hygieneLow

Summary Score Card

CategoryScoreGrade
Performance (Mobile, Lighthouse)20/100🔴 Poor
Performance (Mobile, Field/CrUX)Needs Improvement (LCP 2.6 s, INP 302 ms, CLS 0.01)🟡
Performance (Desktop, Field/CrUX)Passing🟢
Accessibility93/100🟢 Good
Best Practices54/100🟡 Weak
SEO92/100🟢 Strong
Content Quality— (no AI images; trust signals present)🟢
Overall🟡 Needs Work

Bottom line: Powerlook is well-built where it's easiest to see (SEO 92, a11y 93, rich schema, improving field CWV), but under-engineered where it hurts most for a 95%-mobile audience — the homepage ships 8.3 MB and a 20/100 mobile Performance score, and the security-header posture (HSTS 91 days, no script-src CSP) drags Best Practices to 54. Three quick wins (blog meta/title, single H1, strong HSTS) are low-effort and high-impact; the mobile payload/JS reduction is the real quarter-long project.


Sources & Evidence

  • CrUX Vis (cruxvis.withgoogle.com, origin https://www.powerlook.in) — phone CWV: LCP 2,608 ms / INP 302 ms / CLS 0.01 (2026-07-26→08-22); 12-week trend table; desktop field "Passed" per PageSpeed Insights.
  • PageSpeed Insights (pagespeed.web.dev, report 2026-08-27 12:04 UTC, Lighthouse 13.4.1, Moto G Power / slow 4G) — Mobile: Performance 20, Accessibility 93, Best Practices 54, SEO 92, Agentic Browsing 3/4. Lab metrics: FCP 6.8 s, LCP 46.2 s, TBT 2,810 ms, CLS 0.157, SI 17.3 s. Insights: render-blocking 1,810 ms, cache 847 KiB, legacy JS 47 KiB, image delivery 493 KiB, unused JS 1,645 KiB, unused CSS 75 KiB, payload 8,292 KiB, JS execution 18 s, main-thread 39.2 s, 20 long tasks, >4 preconnects. (Desktop Lighthouse lab run failed at Google's backend — RPC::DEADLINE_EXCEEDED — on repeated attempts; desktop field assessment is "Passed," so no desktop lab score is reported rather than guessed.)
  • Browser DOM inspection (live homepage) — 5,437 elements, 268 scripts, 88 stylesheets, 160 images (0 missing alt, 18 empty alt), 3 <h1>, html lang="en", viewport set; meta description 158 chars (full, correct); og:title/og:description generic "Powerlook" on homepage.
  • Browser DOM inspection (PDP /products/black-solid-washed-baggy-fit-denim-jeans) — title 60 chars, meta desc 117 chars, single H1, full Product/BreadcrumbList/FAQ/AggregateRating schema.
  • Browser DOM inspection (PLP /collections/t-shirts-full-sleeves-t-shirts-for-men) — title 51 chars, meta desc 152 chars, single H1, CollectionPage/BreadcrumbList schema.
  • curl (server headers https://www.powerlook.in/) — HSTS max-age=7889238 (~91 days), X-Frame-Options DENY, X-Content-Type-Options nosniff, CSP block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests, COOP absent.
  • curl (robots.txt, sitemap.xml) — robots well-formed with Sitemap directive; sitemap index lists products×2, pages, collections, blogs, agentic_discovery.
  • curl (/blogs/style-tips) — no meta description, <title> = "Style Tips" (10 chars); 29 blog URLs in sitemap.
  • business-analysis.md (prior task artifact) — 95.2% phone / 4.8% desktop traffic, ₹399–₹2,499 pricing, 1,606 SKUs, competitor set, own-manufacturing model.