Web Quality Audit: Two Brothers Food USA (twobrothersfood.com)
Website: https://twobrothersfood.com/ | Date: 2026-08-06 | Platform: Shopify (custom "Impact"-style theme v96, theme id 188364587192) | Industry: Food & Beverage — organic A2 ghee, flours, oils, Ayurvedic superfoods
Business context: US storefront of Two Brothers Organic Farms (TBOF, Satyajit & Ajinkya Hange). Premium imported Indian organic pantry; flagship A2 Gir Cow Cultured Ghee ($35/16oz, 246 US reviews / 4.42★), Khapli flour, cold-pressed oils, herbal ghees. Backed by ₹110cr Series B (Oct 2025) earmarked for international/US growth. Positioning pillars: purity/traceability, "No Tariff. Just Tradition.", regenerative farming. (See business-analysis.md.)
Executive Summary
A technically sound, well-built Shopify store with excellent SEO foundation (SEO 100/100 on both mobile & desktop), complete OG/Twitter coverage, good JSON-LD schema, and a fast desktop experience (Lighthouse Performance 96). The core issues are (1) mobile performance (LCP 4.7s = Poor) driven by render-blocking requests and heavy third-party scripts, (2) a blind-spot on-page gap — the homepage and founders page ship with ZERO H1 tags, (3) significant image alt-text gaps and heading-hierarchy violations on content pages, (4) an inconsistent brand name inside Product schema that fragments entity signals, and (5) weak security posture (short HSTS, no COOP, no script-src CSP). Field Core Web Vitals are borderline "Needs Improvement" on both platforms.
| Category | Mobile | Desktop | Grade |
|---|---|---|---|
| Performance | 74 | 96 | 🟡 |
| Accessibility | 92 | 92 | 🟢 |
| Best Practices | 92 | 92 | 🟢 |
| SEO | 100 | 100 | 🟢 |
| Agentic Browsing | 3/3 | 3/3 | 🟢 |
| Overall | — | — | 🟢 |
Mobile vs. desktop performance gap: 3.6× on LCP (4.7s vs 1.3s) and 4.3× on FCP (3.9s vs 0.9s) — well above the 3× threshold worth flagging. Mobile is clearly the weak link and the priority.
1. Performance Audit
1.1 CrUX Real-World Field Data (Source: PageSpeed Insights, report of 2026-08-06, 28-day window)
CrUX Data: Available — origin is in the CrUX dataset. (Note: the earlier business-analysis.md assumed it was below threshold; field data confirms the origin is now tracked.)
Core Web Vitals Assessment: Needs Improvement on both mobile and desktop.
| Metric | Mobile (Good threshold) | Desktop (Good threshold) |
|---|---|---|
| LCP | 1.3s (Good, ≤2.5s) | 1.3s (Good, ≤2.5s) |
| INP | 218ms (Needs Improvement, 200–500ms) | 148ms (Good, ≤200ms) |
| CLS | 0.03 (Good, ≤0.10) | 0.23 (Needs Improvement, 0.10–0.25, trending toward Poor) |
| FCP | 1.3s | 1.3s |
| TTFB | 0.8s | 0.5s |
- Mobile fails on INP (218ms) — interactivity is just over the 200ms good threshold on real devices.
- Desktop fails on CLS (0.23) — unexpected layout shift during load on desktop field traffic (a likely annyang from third-party injected elements / sticky banners / carousels for which the desktop lab run measured CLS=0).
- PSI label note: the PSI UI marks this "Failed" (any non-Good metric). Per CWV best practice the correct status is Needs Improvement — no metric is in the "Poor" band on either platform in the field.
Implication: Real users already see touches exceeding 200ms (mobile) and layout instability (desktop). Because field LCP is healthy (1.3s) but lab mobile LCP is 4.7s, the gap suggests the lab's Slow-4G emulation is much harsher than real US broadband mobile — still, largest-contentful elements should be served near-instantly.
1.2 Core Web Vitals (Lighthouse Lab Data) — PageSpeed Insights, Lighthouse 13.4.1
| Metric | Mobile | Desktop | Threshold rating (mobile) |
|---|---|---|---|
| FCP | 3.9s | 0.9s | Poor (>3.0s) |
| LCP | 4.7s | 1.3s | Poor (>4.0s) |
| TBT | 0ms | 0ms | Good |
| CLS | 0.032 | 0 | Good |
| SI | 3.9s | 0.9s | Needs Improvement (3.4–5.8s) |
| Performance | 74 | 96 | 🟡 |
Status: Poor for LCP and FCP on mobile only. Desktop is fully "Good". No "Failed" terminology — metrics rated per threshold bands.
1.3 LCP Phase Breakdown (Mobile)
Lighthouse's dominant issue is render-blocking requests (estimated savings 790ms on mobile, 160ms desktop) — the top opportunity. The homepage's <head> preloads 7 stylesheets + 3 scripts and the LCP path is delayed by CSS/JS that must finish before the hero renders. Remaining pre-resource delay (the gap beyond render-blocking) is compounded by third-party script bloat (Facebook Pixel id 2109519702781940, Google Tag Manager, Klaviyo, Judge.me, reCAPTCHA, jQuery 3.6.0 via cdnjs — all render on the critical path).
1.4 Performance Issues by Impact
Critical (>1s potential):
- Render-blocking CSS/JS on mobile (est. 790ms savings). Evidence: 7 preloaded stylesheets (theme.css, style.css, new-custom-style.css, cart-drawer.css, splide.min.css, custom-fields.css + swiper CSS) and 3 scripts (global-script.js, jQuery, swiper) referenced as render-blocking. Fix: inline critical CSS, defer non-critical JS, only preload the truly above-the-fold sheet. Impact: LCP from 4.7s toward <2.5s. Effort: Medium.
High (200ms–1s):
- Third-party script bloat on critical path. Evidence: GTM, Meta Pixel, Klaviyo, Judge.me, reCAPTCHA, jQuery/sliders all execute at load. Fix: load via GTM tags with firing triggers, add
defer/delay tags until interaction (e.g., consent/load-delay). Impact: TBT-friendly & LCP. Effort: Medium. - Unused CSS (est. 41KiB). Evidence: theme bundles CSS for unused sections (Lighthouse "Reduce unused CSS"). Fix: purge/remove unused section CSS in theme.liquid. Effort: Low.
Medium/Low:
- Image delivery (est. 20KiB) + incorrect aspect ratio / low-resolution images served (Best Practices). Fix: serve WebP/AVIF with correct
srcsetand intrinsic dimensions. - >4 preconnect connections (jsdelivr, unpkg, cdnjs, cdn.shopify, external scripts) — Lighthouse warning that preconnect gets diluted beyond 3–4 origins. Trim to the most important (cdn.shopify).
- Long main-thread tasks (1 on mobile, 2 on desktop). Fix: defer third-party tasks to idle.
- Cache lifetimes (est. 19KiB) — extend static asset cache on Cloudflare/Shopify CDN.
1.5 Resource Transfer Summary (inferred from Lighthouse insights + headers)
- Images: heavy on first view (hero + product shots); unoptimized delivery flagged.
- JS: jQuery 3.6.0 (cdnjs) + swiper@11 + global-script.js + Shopify + GTM/Pixel/Klaviyo/Judge.me — the dominant weight & blocking source.
- CSS: multiple full theme stylesheets preloaded (some unused).
- 3rd-party: Facebook/Meta Pixel (2109519702781940), Google Tag Manager, Klaviyo, Judge.me, Google reCAPTCHA, Cloudflare analytics — seen in network/headers.
Bottom line: The desktop experience is genuinely fast (96). Mobile is dragged down almost entirely by blocking CSS/JS + third-party scripts — this is the single highest-ROI fix on the site.
2. Accessibility Audit
2.1 Critical Issues
- Homepage & founders pages have no H1 (see 3.2) — affects screen-reader document outline and is also a Core SEO issue.
- Viewport disables user scaling:
maximum-scale=1.0(and 1.0 minimum) in the viewport meta — Lighthouse flagged[user-scalable="no"]/maximum-scale < 5. Screen-magnifier users cannot zoom text. Remove/clamp to allow ≥5 (or drop maximum-scale).
2.2 High Priority Issues
- Image alt-text gaps are widespread. Counted on rendered DOM:
- Homepage: 20 imgs → 9 missing alt + 1 empty alt (50%)
- Ghee PDP: 68 imgs → 15 missing + 23 empty (38 img, 56%)
- Founders & Team: 46 imgs → 25 missing + 10 empty (76%)
- About Us: 23 imgs → 9 missing + 5 empty (61%)
- Product images across catalog are mostly non-descriptive titles (e.g. alt="Mystery Gift 1", "Weight loss Sorghum Flour") rather than keyword/context-rich text.
- Fix: bulk-add descriptive alt (product name + variant) and
alt=""for purely decorative/icons.
2.3 Positive Findings
- "Skip to content" link present (verified live).
<html lang="en">set — correct for a US-only en-US store.- Viewport configured (mobile-friendly).
- No color-contrast failures flagged by Lighthouse.
- Logical but imperfect heading structure on PDP (single H1 → H2/H3); OG/Twitter alt supplied for images.
- Lighthouse Accessibility 92/100 on both platforms.
3. SEO Audit
3.1 Technical SEO
| Check | Result | Notes |
|---|---|---|
| robots.txt | ✅ Good | Standard Shopify; disallows /cart, /orders, /checkouts, /account, sort/filter params; includes Sitemap: directive |
| XML Sitemap | ✅ Exists | sitemap.xml → products (60), pages, collections, blogs + agentic_discovery |
| Canonicals | ✅ Self-referencing | Verified on all sampled pages |
| Indexation | ✅ | No noindex on key templates; clean canonical |
| URL structure | ✅ | Descriptive, lowercase, hyphenated (/products/amorearth-desi-cow-a2-ghee) |
| HTTPS | ✅ | HSTS + HTTPS enforced; no mixed content |
| Page speed | ⚠️ | Mobile CWV Needs Improvement (field INP 218ms / lab LCP 4.7s) |
| Mobile-friendly | ✅ | Responsive + viewport |
3.2 On-Page SEO Issues
| Page | Title (50–60) | Meta Desc | H1 | Notes | |
|---|---|---|---|---|---|
| Homepage | ✅ "Two Brothers Organic Farm USA – No Tariff | Official TBOF Store" | ✅ present | ❌ 0 H1 | Hero/top headings are all H2/H3; no H1 anywhere |
| Ghee PDP | ✅ 69 chars, keyword-rich | ✅ | ✅ 1 H1 "Desi Gir Cow Cultured Ghee" | Good | |
| About Us | ✅ | ✅ | ✅ 1 H1 | ||
| Contact Us | ✅ | ✅ | ✅ 1 H1 | ||
| Founders & Team | ✅ | ✅ | ❌ 0 H1; heading jump h1→h3→h4→h5→h6 | skipped levels (a11y + SEO) | |
| International Orders | ✅ | ✅ | ✅ | ||
| US Ghee Landing | ✅ | ✅ | ✅ | Dedicated SEO landing page ("two-brothers-*-ghee" pattern) |
Critical: Missing H1 on the two most important template surfaces — the homepage and the founders page.
- Homepage: zero
<h1>tags (verified live and in rendered DOM). Google has no primary keyword anchor for the homepage; every competing homepage title/H1 targets "A2 ghee / organic ghee USA." Fix: promote the hero value prop to an H1 (e.g., "Glyphosate-Free A2 Gir Cow Ghee & Organic Pantry Staples — Now in the USA"). Impact: high, low effort. - Founders & Team: zero H1 and a broken heading order (h2→h3→h4→h5→h6). Restructure.
Other on-page:
- Brand name inconsistency in Product schema — the ghee PDP brand is
"Two Brothers Organic Farms - "AMOREARTH""while Organization/LocalBusinessname is "Two Brothers Organic Farms". A trailing- "AMOREARTH"fragments the brand entity and can dilute rich-result/entity association. Normalizebrand.nameto exactly "Two Brothers Organic Farms" store-wide. - Meta descriptions are present and unique on sampled pages (good); the common Shopify "missing on collections/pages" trap is not present here — collections/blogs should be spot-checked the same way.
3.3 Schema Markup (JSON-LD, verified rendered DOM)
| Type | Homepage | PDP | Content/Pages |
|---|---|---|---|
| Organization / LocalBusiness | ✅ (full: name, logo, address 295 Pierson Ave Edison NJ 08837, geo, telephone, contactPoint X2, sameAs) | ✅ | ✅ |
| WebSite + SearchAction | ✅ (sitelinks search box) | — | — |
| BreadcrumbList | ✅ | ✅ | ✅ |
| Product (name/image/offers/price/availability/sku) | — | ✅ (multi-offer, USD) | — |
| AggregateRating + ReviewCount | — | ✅ (4.42★ / 246) | — |
| FAQPage | — | ✅ | — |
Strong schema coverage — genuinely uncommon for a Shopify theme. Issues to fix:
- Brand
nameinconsistency (above). - Product
Offers.urluses?variant=parameters (e.g./products/...?variant=52347187167416) — variant-parameter canonical pollution risk on rich results; prefer canonical URL. - Consider adding
ItemListschema to collection/PLPs for rich-product listing.
3.4 Content Quality (E-E-A-T)
- Experience: Strong — source-traceable-to-farm, Bilona/cultured method detail, founder bios (ex-bankers returning to the family farm), "It Takes a Village" narrative. Authentic first-hand content.
- Expertise: Founder credentials (Economics grad + MBA; CS grad + MBA), ECOCERT-organic, glyphosate-free + USDA-organic (US ghee) certifications, 21-acre farm.
- Authoritativeness: VOGUE "India's #1 organic farming brand" (2018), Better India #1, ₹110cr Series B press, 35.2K-sub YouTube, 40+ country export.
- Trustworthiness: Physical address (Edison NJ), phone +1 (341) 217-2425, email care@twobrothersfood.com, entity "TBOF FOODS PVT. LTD.", reviews, return/shipping/privacy policies.
- Depth: Homepage and landing pages are content-rich; product pages have deep, educational copy. Genuine editorially-produced content (no scaled/thin AI pages detected).
4. International SEO
Not applicable / healthy for scope. The site is a single-market US storefront: <html lang="en">, content-language: en-US header, USD currency, US phone/address/warehouse, zero hreflang alternate tags present (verified — and correctly absent, since there is no second locale on this domain; localizations live on separate domains twobrothersindiashop.com / .ae). No cross-locale canonical, no language negotiation issues. Recommendation: keep locales isolated per-domain (already correct); do NOT introduce hreflang until a genuinely translated second locale exists on this domain.
5. Best Practices & Security
5.1 Security Headers (Sources: curl -sI https://twobrothersfood.com/, Lighthouse BP 92)
| Header | Present? | Value | Verdict |
|---|---|---|---|
| Strict-Transport-Security | ✅ | max-age=7889238 (~91 days), no includeSubDomains, no preload | ⚠️ Weak — Lighthouse flags "Use a strong HSTS policy." Set max-age=31536000; includeSubDomains; preload |
| X-Frame-Options | ✅ | DENY | ✅ |
| X-Content-Type-Options | ✅ | nosniff | ✅ |
| Content-Security-Policy | ⚠️ | block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests — no script-src / object-src 'none' | ⚠️ Weak — Lighthouse flags "Ensure CSP is effective against XSS." Add script-src allowlist + object-src 'none' |
| COOP (Cross-Origin-Opener-Policy) | ❌ | missing | ⚠️ Add COOP: same-origin for origin isolation (Lighthouse flags) |
| X-XSS-Protection | ✅ | 1; mode=block (deprecated) | ℹ️ Non-standard; rely on CSP+Trusted Types |
| Trusted Types (DOM XSS) | ❌ | missing | ⚠️ Lighthouse flags DOM-XSS mitigation |
5.2 Modern Standards & Best Practices (Lighthouse BP 92)
- ✅ Valid HTML5 doctype, UTF-8 charset, HTTPS, no mixed content (block-all-mixed-content enforced).
- ⚠️ Images displayed at incorrect aspect ratio and served at low resolution (Lighthouse) — set explicit width/height and proper resolution.
- ⚠️ CSP/HSTS/COOP/Trusted-Types weaknesses above.
- No
document.write/sync XHR reported.
6. Content Quality Assessment
6.1 Image Quality & Authenticity
- No AI-generated image filenames detected across the 61-product catalog (products.json scan for Gemini/ChatGPT/Picsart/ai-prefix/unnamed patterns: 0 matches) — consistent with a food brand using real photography. ✅ No authenticity mismatch (relevant only if AI asset naming ever slips in).
- However, image SEO/a11y is weak: product alt text defaults to bare product titles ("Mystery Gift 1", "Weight loss Sorghum Flour"), many images render without alt, and Lighthouse flags low-resolution/incorrect-aspect-ratio serving. Fixable in bulk.
6.2 UX Issues
- Homepage missing H1 (also a wayfinding/document-outline gap).
- Founders page heading hierarchy broken (h1 missing, skips h2→h3→...→h6).
- Trust signals strong: physical address, phone, email, policies, 246+ reviews on flagship, certifications.
- Breadcrumbs: BreadcrumbList schema present on all sampled pages (good).
7. Priority Recommendations
🔴 Immediate (This Week)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 1 | Add an H1 to the homepage (promote hero value prop); add H1 + fix heading order on Founders page | Core ranking anchor | Low |
| 2 | Fix mobile render-blocking CSS/JS (inline critical CSS, defer 3rd-party scripts) | Mobile LCP 4.7s→~2.5s | Medium |
| 3 | Normalize Product brand.name to "Two Brothers Organic Farms" everywhere | Entity/rich-result integrity | Low |
🟡 Short-Term (This Month)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 4 | Bulk-fill image alt text (descriptive for product, alt="" for decorative) | A11y + image SEO | Low–Med |
| 5 | Strengthen security: HSTS 1yr+preload, add COOP, add script-src + object-src 'none' CSP, consider Trusted Types | Security posture | Low |
| 6 | Fix mobile INP (218ms field) — defer/off-thread third-party JS so interactions stay <200ms | Mobile CWV field | Medium |
| 7 | Address desktop field CLS (0.23) — reserve space for injected banners/carousels | Desktop CWV field | Medium |
| 8 | Remove maximum-scale=1.0 from viewport (allow zoom) | Accessibility AA | Low |
🟢 Long-Term (This Quarter)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 9 | Trim preconnect to ≤3–4 critical origins; purge unused CSS (41KiB) | Performance | Low |
| 10 | Serve WebP/AVIF with correct srcset/sizes + explicit dimensions | Performance + BP | Medium |
| 11 | Avoid ?variant= in Product Offer url schema; add ItemList to collections | Rich results | Medium |
| 12 | Spot-check collections & blog meta descriptions/OG coverage for parity with pages | CTR | Low |
Summary Score Card
| Category | Score | Grade |
|---|---|---|
| Performance (Mobile lab) | 74/100 | 🟡 |
| Performance (Desktop lab) | 96/100 | 🟢 |
| Accessibility | 92/100 | 🟢 |
| Best Practices | 92/100 | 🟢 |
| SEO | 100/100 | 🟢 |
| Core Web Vitals (field) | Needs Improvement (m: INP 218ms; d: CLS 0.23) | 🟡 |
| Content Quality | 85/100 | 🟢 |
| UX | 80/100 | 🟢 |
| Overall | 88/100 | 🟢 |
Verdict: A well-built, actively-maintained store with genuinely strong SEO and schema foundations. The two things that will move the needle most are (1) fixing mobile performance (render-blocking + third-party scripts — the sole metric in "Poor") and (2) restoring the homepage H1 and cleaning up image alt/heading hygiene. Security hardening is cheap and worth doing soon. No critical security vulnerability, no broken navigation, no brand-authenticity mismatch found.
8. Sources
- https://pagespeed.web.dev/ — CrUX field CWV (mobile: LCP 1.3s, INP 218ms, CLS 0.03; desktop: LCP 1.3s, INP 148ms, CLS 0.23) + Lighthouse 13.4.1 scores & metrics (mobile 74, desktop 96; all category scores), render-blocking 790ms, preconnect warning, image/unused-CSS/cache savings, BP flags (aspect ratio, low-res, CSP/HSTS/COOP/Trusted Types)
- https://twobrothersfood.com/ (live + rendered homepage.html) — 0 H1, skip link, viewport
maximum-scale=1.0, lang=en, policies, no hreflang - https://twobrothersfood.com/robots.txt — robots rules + Sitemap directive
- https://twobrothersfood.com/sitemap.xml — sitemap index (products/pages/collections/blogs/agentic)
- Captured pages (rendered DOM) homepage.html, pdp_ghee.html, pg_about-us.html, pg_contact-us.html, pg_founders-and-team.html, pg_international-orders.html, pg_usa.html — titles, meta desc, canonical, OG/Twitter, JSON-LD types, heading counts, alt-text counts
- products.json — 61 products, image filename AI-pattern scan (0 AI), alt text samples
- curl -sI https://twobrothersfood.com/ — security headers (HSTS max-age, X-Frame-Options, X-Content-Type-Options, CSP, COOP absent, content-language en-US, powered-by Shopify, Cloudflare)
- pdp_ghee.html JSON-LD — Product/Offer (price 35.0…420.0 USD, sku FG00002…), AggregateRating (4.42/246), brand
"Two Brothers Organic Farms - "AMOREARTH"" - business-analysis.md — brand positioning, funding, catalog, social, audience context