Web Quality Audit: Cahoot (ex–Campus Sutra) — cahoot.in

Website: https://cahoot.in (legacy campussutra.com 301-redirects here) | Date: 2026-08-10 | Platform: Shopify (theme "Tinker", updated 05 Aug 2026) | Industry: Men's value/streetwear e-commerce (D2C + marketplaces) Business context: see business-analysis.md (₹157.75 Cr FY2025 revenue, 3,505-SKU catalog, mid-rebrand Campus Sutra → Cahoot / "Iconic Everyday", mobile-first ~62% audience).

Scope note / rebrand: The audited origin is cahoot.in. campussutra.com resolves via a double 301 chain (http://www.campussutra.com → https://www.campussutra.com → https://cahoot.in). The site is mid-rebrand and mixes "Campus Sutra" and "Cahoot" branding across titles, schema and sameAs links — several of the quality issues below are rebrand-transition artifacts.

Executive Summary

Cahoot's real-user performance is genuinely good — Chrome UX Report (CrUX) field data shows Core Web Vitals "Passed" on mobile (LCP 2.2s, INP 190ms, CLS 0) — and the security posture is solid. However, the audit surfaces content-quality and SEO-architecture problems that are unusually severe for a brand this size, several of them rebrand-related:

  1. A Liquid template comment is leaking as visible link text on the homepage – five collection links visibly render {# Same image desktop/mobile ke liye — normal img #} (a developer note) to customers.
  2. Two conflicting Organization JSON-LD blocks ship site-wide, one with an invalid https://https://… logo URL, and with mismatched name/sameAs across the Campus-Sutra→Cahoot rebrand — a real entity-identity risk in Google's knowledge graph.
  3. The homepage has no H1 (its section headings all jump straight to H3), and 81% of homepage images are missing alt text (153 of 189). PDPs and PLPs are better (~46% and ~21% no-alt) but still poor.
  4. No breadcrumbs anywhere (visual or BreadcrumbList schema) on PDPs or PLPs.
  5. PDP title tags are far too long (~95 chars, with "Cahoot" duplicated).

These are low-effort, high-polish fixes. The underlying platform (SEO base, sitemap, robots, canonicals, product schema with ratings) is well set up.

CategoryMobileDesktop*Grade
Performance (field CWV)Passed (LCP 2.2s / INP 190ms / CLS 0)Passed (assumed)🟢 B+
Accessibility🟡 C−
Best Practices / Security🟢 B
SEO🟡 C+
Content Quality🟡 C
UX🟢 B−
Overall🟡 C+ (~66)

\* Lab (Lighthouse) category scores could not be captured this run: the in-browser PageSpeed lighthouse run repeatedly failed to fetch the LHR and the PageSpeed Insights API returned HTTP 429 (shared-project daily quota exhausted). Performance is graded on field CrUX data only (the more business-relevant signal); Accessibility/SEO/etc. are graded on direct DOM evidence.


1. Performance Audit

1.1 CrUX Real-World Field Data (PRIMARY)

Source: PageSpeed Insights field data panel, https://pagespeed.web.dev/ (report Aug 10, 2026) — CrUX, "Various mobile devices / many samples / Chrome UX Report".

Core Web Vitals Assessment: Passing on mobile. All three metrics meet the "Good" threshold:

MetricField valueThreshold (Good)RatingTrend (from parent analysis)
LCP2.2 s≤ 2.5 s🟢 GoodImproving (2,782ms → ~2.3s over 8 wks)
INP190 ms≤ 200 ms🟢 GoodHistorically flagged ~296ms — has improved into Good this period
CLS0≤ 0.10🟢 GoodStable (0.02–0)
FCP2.0 s≤ 1.8 s🟡 (borderline)
TTFB0.9 s🟡 improvable

Interpretation: The one metric to keep an eye on is interactivity (INP). It sits just inside the Good threshold (190ms vs. 200ms), and the parent analysis (CrUX Vis, 2026-07-05→08-01) captured it at ~296ms "Needs Improvement". The variance across CrUX periods, combined with a very heavy script footprint (below), makes INP the top performance risk, not LCP.

1.2 Core Web Vitals (Lab) — not available

Lighthouse lab scores/metrics for both mobile and desktop could not be retrieved this session (PSI lab run failed to fetch LHR; PSI API HTTP 429 quota). Structural performance evidence below is from direct DOM inspection of the rendered storefront.

1.3 Structural Performance Evidence (DOM)

  • 148 <script> tags on the homepage — a large third-party/tag footprint (GoKwik COD/RTO & payments, customfit.ai virtual try-on, Judge.me reviews, SearchTap search, nitrocommerce, Shopify analytics/CDN, WhatsApp, snapmint EMI, Meta/GA pixels). This is the likely driver of the INP headroom and of the historically worse INP numbers. Recommendation: audit third-party tag loading, defer non-critical scripts, lazy-init virtual-try-on until user interaction. Note: GoKwik's pdp.gokwik.co is correctly preconnected + preloaded (Early Hints / 103 and <link rel=preload> for merchant.integration.js are present).
  • 3,108 DOM elements on the homepage — above Lighthouse's ~1,500 "large DOM" threshold; expect a "minimize DOM size" diagnostic and a drag on rendering.
  • 189 <img> elements on the homepage (product-heavy merchandising) — large media surface; images should be confirmed as serving AVIF/WebP via Shopify CDN srcset (Shopify default does this; verify LCP/hero image is not lazy-loaded).
  • 10 <iframe>s on the homepage.
  • Good signals: HTTP/3 (alt-svc: h3), 103 Early Hints with preloads for critical CSS/JS, preconnect to cdn.shopify.com + pdp.gokwik.co, Cloudflare CDN with BLR edge, server-timing shows early-hints active. TTFB 0.9s field is decent.

1.4 Performance Issues by Impact

SevIssueEvidenceRecommendation
HighThird-party script bloat (148 scripts) → INP riskDOM audit; INP 190ms but historically ~296msDefer/consolidate tags; lazy-init customfit try-on; preconnect ≤3
HighLarge DOM (3,108 elements)DOM countTrim homepage section count; virtualize long product grids
MediumFCP 2.0s / TTFB 0.9s fieldCrUXRender-blocking CSS (base.css preloaded but still large); consider critical-CSS inlining
Medium189 homepage imagesDOMEnsure proper srcset/AVIF; never lazy-load LCP image
LowDouble 301 redirect chain (www.campussutra → campussutra → cahoot)curl headers -LPoint campussutra.com → cahoot.in in a single hop where possible (Shopify handles primary-domain redirect; legacy www layer adds one hop)

2. Accessibility Audit

Method: Lighthouse-lab a11y score unavailable; assessed via direct DOM audit of homepage + PDP + PLP.

2.1 Critical Issues

  • 81% of homepage images missing alt text (153 of 189); another 7 have empty alt="" on product/content images. Screen-reader users get no product context; image-search ranking is forfeit. PDP = 53 of 114 (46%) no-alt; PLP = 37 of 177 (21%) no-alt. Product cards on PLP that do have alt are descriptive (e.g. "Mid-Rise Boot Cut Trouser"), so the template supports good alt — coverage is the problem, not quality.
  • No H1 on the homepage. The homepage's section headings ("The Wardrobe", "The Pulse", "Capsule Edits", "What's IN") are all H3 — there is no H1 anywhere on the page (H1 count = 0). The page's primary keyword ("men's clothing brand") has no top-level heading.

2.2 High Priority Issues

  • No breadcrumb navigation on product or collection pages (visual or ARIA) — needed for wayfinding in a 3,505-SKU catalog.

2.3 Positive Findings

  • <html lang="en"> present ✓
  • <meta name="viewport"> present ✓ (width=375, initial-scale=1) — mobile-friendly
  • Skip-to-content link present on every template ✓
  • Form inputs have associated labels ("Enter your pincode" textbox; size radios in a labelled "Size Size chart" group) ✓
  • Alt text that exists is descriptive, not "IMG_1234" ✓

3. SEO Audit

3.1 Technical SEO (passed checks)

CheckStatus
robots.txt✓ Clean — disallows /cart, /checkout, /orders, /account, filters/sort_by, preview params; includes Sitemap: directive; modern agentic-discovery directives
XML Sitemap✓ Present & split (products_1..4, pages, collections, blogs) — healthy for 3,505 SKUs
Canonical URLs✓ Self-referencing on homepage, PDP & PLP
Indexation✓ robots meta index, follow on homepage; no noindex on key pages
HTTPS✓ Enforced with HSTS; no mixed content detected
Mobile-friendly✓ Responsive Shopify, viewport set, content parity
URL structure✓ Clean, keyworded, hyphenated (/products/mens-emerald-green-…-shirt_csmovsrt7609, /collections/mens-trousers)

3.2 On-Page SEO

  • Homepage title: Cahoot : India’s most Trusted Mens Clothing Brand (~50 chars) — on-length, but the "most Trusted" self-claim is aggressive; consider anchoring on a commercial keyword ("Men's Clothing & Streetwear | Cahoot").
  • PLP title: Men’s Trousers Online – Office, Casual, Pleated, Tailored – Cahoot — good, keyword-rich.
  • PDP title: ₹1,099 | Cahoot men's Flannel Green & Buff Beige Vignette-Checked Oversized Shirt – Cahoottoo long (~95 chars), "Cahoot" appears twice, price prefix wastes the front. Truncates in Google. Trim to ~60 chars.
  • Meta descriptions: present on homepage, PDP (auto-pulled descriptive copy + | Price), and PLP (unique, keyword-rich) — better than the usual Shopify gap. (Not separately verified on every /pages/ and blog — the classic Shopify blind spot; recommend a crawl to confirm 100% coverage.)*
  • Homepage H1 missing (see Accessibility) — the most impactful single on-page fix.
  • OG / Twitter: og:title, og:description, og:image, twitter:card=summary_large_image all present on homepage & PDP ✓. og:image on PLP points at the generic files/facebook.png brand banner (not page-specific) — minor.

3.3 Structured Data (JSON-LD)

Present schema (site-wide via theme):

  • Organization (in an @graph), typed ["Organization","Brand"], plus ImageObject (logo), plus WebSite with SearchAction (sitelinks search box) — good.
  • PDP: ProductGroup with hasVariantProduct nodes, each with Offer (price, priceCurrency, availability, sku, canonical variant URL) — very good, plus a separate Product block with AggregateRating (4.13, 319 reviews) — enables star rich results.

Issues (all rebrand-adjacent):

  • Duplicate, conflicting Organization blocks. Every page ships a second, standalone Organization JSON-LD whose name is "Cahoot" while the canonical @graph Organization is named "Campus Sutra Retail Pvt Ltd" (alternateName "Cahoot"). The two disagree on sameAs (one lists only IG+FB; the other FB+IG+LinkedIn). Competing entity definitions can split Google's brand entity — the #1 schema risk during a rename.
  • Invalid logo URL: the standalone Organization's logo is "https://https://cdn.shopify.com/s/files/1/0457/8246/6720/files/Cahoot_selected.png…" — a double https:// malformed URL. Invalid structured data.
  • No BreadcrumbList on PDPs or PLPs.
  • No ItemList on collection/PLP pages.
  • Brand-name sprawl: product brand.name = "Cahoot", Organization = "Campus Sutra Retail Pvt Ltd", sameAs includes legacy linkedin.com/company/campus-sutra. Ensure the post-rebrand entity resolves to ONE name and ONE consistent sameAs set site-wide.

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

  • Trustworthiness: physical address (Yeshwanthpura, Bengaluru), phone +91 9900008413, email support@cahoot.in, WhatsApp, full policy suite (returns/shipping/refund/cancellation), "Made in India", "12 Lakh+ customers", "Present in 26+ countries", review ratings on PDPs — rich trust layer for an e-commerce brand. ✓
  • Expertise/Experience: brand narrative ("Iconic Everyday", about page), design-led founder story (NIFT co-founder) — good.
  • Authoritativeness: press (BusinessLine, Indian Retailer), founder media — good inbound signals.

4. International SEO

Not applicable — single-locale site. The site serves one market (India) in English (Content-Language: en-IN); no hreflang or locale switching is required, and none is implemented (correct).

  • Note (opportunity): the brand claims "Present in 26+ countries" but there is no localized/international checkout (no multi-currency, no language alternates, no regional shipping UI). If the 26-country claim is to be realised as a D2C channel, international SEO (subfolder /intl/, hreflang, currency) is a future build. Today the international reach is via marketplaces (Amazon/Flipkart/Myntra), which are out of scope for on-site i18n.

5. Best Practices & Security

5.1 Security Headers (curl -sI)

HeaderValueAssessment
HSTSmax-age=7889238(≈91 days)🟡 Present but short (recommend 31536000 + includeSubDomains + preload); missing includeSubDomains
X-Frame-OptionsDENY🟢
X-Content-Type-Optionsnosniff🟢
CSPblock-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests🟡 Functional for clickjacking/mixed-content, but no script-src/object-src 'none' — not a full CSP. Shopify/Cloudflare mitigate; acceptable but improvable
X-XSS-Protection1; mode=block (Cloudflare)🟢 (legacy header, present)
COOPabsent🟡 Missing (minor)

5.2 Modern Standards

  • HTTP/2 + HTTP/3, 103 Early Hints, powered-by: Shopify (minor info disclosure), content-language: en-IN, valid UTF-8, no mixed content. ✓

6. Content Quality Assessment

6.1 Critical: Leaked developer comment rendered as UI text (homepage)

Five homepage links — to the Flannel, Trousers, Polos, Linen & Partywear collections — render a Liquid template comment as their visible link text:

{# Same image desktop/mobile ke liye — normal img #}

This is a template-development note ("same image for desktop/mobile — normal img") leaking into the customer-facing DOM and accessibility tree. It shows on every homepage visit and to screen readers. Fix: remove/re-comment the Liquid block ({% comment %}…{% endcomment %}) or hide the alt/text. Quick, visible-quality win.

6.2 Medium: Empty footer-template placeholders

On PDP and 404 templates the "Cahoot SEO Footer" block renders empty <strong> slots — e.g. "Pair [ ] with a [ ]" and the Social-Proof line "[ ] for quality, durability…" with no product-term filled in. Sign of a theme section whose keyword slots weren't populated for these templates. Renders visually sparse/odd on PDPs. Fill or remove.

6.3 Schema logo / JSON-LD hygiene

See §3.3 — double-https:// logo and duplicate Organization blocks are content/code-quality defects, and the most likely candidates to trip a Search Console "invalid structured data" warning.

6.4 Trust signals — strong ✓, and review schema already emits AggregateRating

No AI-generated-image red flags in filenames observed. Product photography is real catalogue imagery. Reviews engine (Judge.me, 4.1★/319 on a sample PDP) is integrated with rating schema — an advantage over most peers.

6.5 UX highlights

  • Colorway selector, size chart, size radios, EMI (snapmint) and GoKwik COD/BNPL surfaced on PDP; pincode delivery checker; buy-box 5% prepaid incentive.
  • Caveat (business-level, note for CRO): app/marketplace reviews flag ₹100 return fee + photo-verification friction and colour-vs-image mismatch — a trust/quality risk that on-site UX cannot fully offset (see business-analysis §15).

7. Priority Recommendations

🔴 Immediate (this week) — covers 80% of the visible quality damage

#IssueImpactEffort
1Remove leaked Liquid comment on homepage (5 links)Visible quality / brand polishLow
2Fix duplicate Organization JSON-LD + double-https:// logo URL site-wideEntity identity, GSC schema validityLow (theme json_ld snippet)
3Add an H1 to the homepageSEO + a11yLow
4Add alt text to homepage images (153 missing)A11y + image SEOMedium (bulk in theme/editor)
5Trim PDP title tags (~95 → ~60 chars, de-duplicate "Cahoot")CTR in SERPsLow

🟡 Short-Term (this month)

#IssueImpactEffort
6Add BreadcrumbList schema + visual breadcrumbs on PDP/PLPSERP navigation, UXMedium
7Add ItemList schema on collectionsProduct rich resultsLow
8Audit/trim 148 third-party scripts; lazy-init customfit try-onProtect INP headroomMedium
9Consolidate brand entity: one Organization name + one sameAs set for CahootKnowledge-graph integrity post-rebrandLow
10Fill/remove empty footer SEO placeholders on PDP/404Content polishLow

🟢 Long-Term (this quarter)

#IssueImpactEffort
11Full crawl to confirm 100% meta-description coverage on pages/blog/collectionsSERP CTRLow–Med
12Reduce homepage DOM (3,108 elements) / virtualize gridsRender perfMedium
13Lengthen HSTS to 31536000 + includeSubDomains; optional full CSPHardeningLow
14If realising the 26-country claim on-site: locale subfolders + hreflang + currencyInternational growthHigh

Summary Score Card

CategoryScoreGrade
Performance (Mobile, field CWV)78/100🟢 B+
Performance (Desktop)n/a*
Accessibility50/100🟡 C−
Best Practices & Security75/100🟢 B
SEO65/100🟡 C+
Content Quality55/100🟡 C
UX72/100🟢 B−
Overall66/100🟡 C+

\* Lab (Lighthouse) category scores unavailable this session (PSI lab LHR failed to load; PSI API HTTP 429). Performance graded on field CrUX.

Bottom line: A technically solid, well-optimized Shopify storefront with genuinely good real-user performance and strong security/SEO foundations, dragged down by homepage content-quality defects (leaked template text, no H1, missing alt), rebrand-transition structured-data bugs, and absent breadcrumbs. The fixes are mostly low-effort polish that will disproportionately lift perceived quality and search health — ideal to knock out before the Cahoot rebrand fully lands.


8. Sources & Evidence

  • https://pagespeed.web.dev/ — CrUX field data (CWV Passed: LCP 2.2s / INP 190ms / CLS 0 / FCP 2s / TTFB 0.9s), PSI report Aug 10, 2026
  • https://www.googleapis.com/pagespeedonline/v5/runPagespeed — returned HTTP 429 quota (lab scores unavailable)
  • https://cahoot.in/ — homepage DOM audit (0 H1, 148 scripts, 3,108 elements, 189 imgs/153 no-alt, 10 iframes, leaked {# Same image… } link text, 2 conflicting Organization schemas, og/twitter present, robots meta index,follow)
  • https://cahoot.in/products/mens-emerald-green-buff-beige-vignette-checkered-oversized-shirt_csmovsrt7609 — PDP audit (H1 present, ProductGroup+Product schema w/ AggregateRating 4.13/319, 53/114 imgs no-alt, no breadcrumbs, ~95-char title, duplicate/⌐-broken Organization logo)
  • https://cahoot.in/collections/mens-trousers — PLP audit (title/meta/H1+ItemList-missing/no-alt 37/177, canonical ok)
  • https://cahoot.in/robots.txt — clean rules, sitemap directive, agentic-discovery block
  • https://cahoot.in/sitemap.xml (+ products_1..4/pages/collections/blogs) — split sitemaps
  • curl -sI http://www.campussutra.com (301 → www → https://cahoot.in) and https://cahoot.in — redirect chain; HSTS/XFO/XCTO/CSP headers; 103 Early Hints; powered-by Shopify
  • Parent analysis (this workspace): business-analysis.md — business context, CrUX-Vis snapshot (INP ~296ms historical), 3,505 SKUs, rebrand status, app-review complaints