Web Quality Audit: Two Brothers Organic Farms (USA Store)
Website: https://twobrothersfood.com/ | Date: 2026-08-26 | Platform: Shopify (theme id 188364587192, Shopify CDN + Cloudflare) | Industry: Organic / regenerative A2-food D2C (premium ghee, oils, flours)
Business context: This is the brand's dedicated USA/international storefront (USD, US shipping, "No Tariff" positioning). 61 SKUs, 75 collections, mobile-dominant audience (69.2% phone / 30.8% desktop per CrUX). Full business analysis is in business-analysis.md.
Executive Summary
The site is fundamentally well-built: fast real-world mobile Core Web Vitals, clean HTTPS/security posture, a working review engine (Judge.me, 2,108 reviews on the flagship ghee), proper structured data on product/collection/blog pages, and a clean responsive theme. However, the audit surfaces one Critical brand-integrity problem and several High/Medium issues that directly cost organic visibility and trust for a premium diaspora brand.
The single biggest problem is brand-name fragmentation: the homepage body copy calls the company "Two Brothers India Farms" (18 times), the browser tab/title says "Two Brothers Organic Farm USA", the og:site_name and <title> suffix say "USA Two Brothers Farms", and the contact/footer identity is "TBOF FOODS PRIVATE LIMITED". For a brand whose entire premium positioning rests on authenticity and a named farm (Bhodani, Gir cows), this inconsistency undermines E-E-A-T and confuses both users and search engines about the canonical entity.
Core Web Vitals: Passing on desktop; Needs Improvement on mobile (INP 201 ms β one millisecond over the "Good" threshold). Note this corrects the earlier business-analysis note that called mobile CWV "good and stable" β the live PageSpeed/CrUX data shows the 75th-percentile INP assessment as Failed on mobile.
| Category | Mobile Score | Desktop Score | Grade |
|---|---|---|---|
| Performance | 67 | 98 | π‘ / π’ |
| Accessibility | 92 | 92 | π’ |
| Best Practices | 100 | 100 | π’ |
| SEO | 92 | 92 | π’ |
| Overall | 88 | 96 | π’ |
Scores above are Lighthouse category scores (mobile from Slow-4G-throttled lab run; desktop from unthrottled lab run). SEO/Accessibility/BP are strong. The drag on the overall mobile number is the throttled lab LCP (6.9 s) and the real-world INP miss.
1. Performance Audit
1.1 CrUX Real-World Field Data
Core Web Vitals Assessment:
- Mobile: Needs Improvement (Failed). INP 75th percentile = 201 ms (threshold Good β€ 200 ms), LCP = 1.3 s (Good), CLS = 0.02 (Good). INP is the failing metric β 21% of mobile page loads fall in "Needs Improvement" and 4% in "Poor."
- Desktop: Passing. INP = 187 ms (Good), LCP = 1.0 s (Good), CLS = 0.01 (Good).
Field collection period: Jul 28 β Aug 24, 2026 (latest 28-day window). Source: PageSpeed Insights field data (Chrome UX Report).
Note on the business-analysis.md statement: that report's Β§5a claimed "Core Web Vitals on phones are good and stable (LCP ~970β983 ms, INP ~179β185 ms)." The live data now shows mobile INP at the 75th percentile of 201 ms, which crosses into Needs Improvement. INP has risen since that snapshot. This should be re-verified each month; the margin is only 1 ms and is volatile.
1.2 Core Web Vitals (Lighthouse Lab Data)
| Metric | Mobile (throttled) | Rating | Desktop (unthrottled) | Rating |
|---|---|---|---|---|
| FCP | 4.1 s | Poor | 0.8 s | Good |
| LCP | 6.9 s | Poor (>4 s) | 1.0 s | Good |
| TBT | 0 ms | Good | 0 ms | Good |
| CLS | 0.032 | Good | 0.000 | Good |
| SI | 4.1 s | Needs Improvement | 0.9 s | Good |
Mobile lab LCP of 6.9 s is 2.8Γ the Poor threshold (4 s) and 2.76Γ the Good threshold (2.5 s). This is a throttled estimate (Slow 4G, Moto G Power), so real users indexed in CrUX are much faster (LCP 1.3 s) β but it still flags that the page ships enough render-blocking weight to choke a mid-range phone on a poor connection.
1.3 LCP Phase Breakdown (Mobile)
Lighthouse "Performance Insight Audits" (Lighthouse v13.4.1) report the dominant opportunity as render-blocking requests (est. 690 ms savings on mobile / 120 ms on desktop). The page preloads a large number of CSS/JS files in the <head> (theme.css, style.css, new-custom-style.css, splide.min.css, cart-drawer.css, custom-fields.css + vendor.js, theme.js, plus third-party: swiper@11, swiper@9.4.1, jquery 3.6.0, global-script.js, wishlist engine, judgeme, restock alerts). The unminified/duplicate CSS and stacked third-party scripts are the LCP bottleneck β not the hero image itself (which is reasonably sized).
1.4 Performance Issues by Impact
Critical / High (mobile)
- Render-blocking CSS/JS (690 ms savings mobile). 12 stylesheets + 171 scripts on the homepage; multiple third-party app bundles load before paint. Fix: inline critical CSS, defer non-critical app JS, remove/merge duplicate libraries (note both swiper@11 and swiper@9.4.1 are loaded).
- Throttled LCP 6.9 s (mobile). Driven by the render-blocking stack above, not image size.
Medium
- Reduce unused CSS (~42 KiB mobile / 41 KiB desktop). Shopify themes bundle CSS for every section; prune unused.
- Excessive preconnect (>4 origins). Headers/preload declare preconnect to cdn.shopify.com (Γ2), cdn.jsdelivr.net, unpkg.com, cdnjs.cloudflare.com β 5+ origins. Lighthouse explicitly warns this dilutes priority. Keep to the 2β3 most critical.
- Use efficient cache lifetimes (~20 KiB). Some static assets lack long cache TTLs.
- Forced reflow / long main-thread tasks (2 found). Minor, but contributes to INP.
Low
- Font display (~20β40 ms). Ensure
font-display: swap(already likely present) and preload Montserrat/Inter woff2 (already preloaded). - Image delivery (~20 KiB). Serve AVIF/WebP with responsive
srcset(product images are currently JPEG/PNG; alt text is good).
1.5 Resource Transfer Summary
- Homepage DOM: 534 elements, 171
<script>, 12 stylesheets, 5 images (4 with alt, 1 missing alt β see Β§2). - Third-party apps observed: Swiper (Γ2 versions), jQuery 3.6.0, Judge.me reviews, SE Wishlist Engine, Restock Rocket, Wizzy search, Back-in-Stock. Each adds its own CSS/JS and preconnect β the main performance cost center.
2. Accessibility Audit
2.1 Critical Issues
- Homepage has NO
<h1>element. The homepage accessibility tree showsh1s: 0and only 7<h2>s. The visible hero/brand content ("Two Brothers India Farmsβ¦") is rendered as paragraphs, not a semantic H1. Every other page type has a proper H1 (product: "Desi Gir Cow Cultured Ghee"; collection: "Original Organic Ghee"; blog: "Healthy & Easy Breakfast Ideasβ¦"). The homepage missing H1 is a real heading-hierarchy gap and weakens the page's primary keyword signal.- Note: there is a second, separate defect β see Β§3.2 below β where the homepage H1 should carry the brand keyword.
2.2 High Priority Issues
- Homepage body copy identity vs. visible brand. The visible homepage copy repeats "Two Brothers India Farms" but the store is the USA store ("Two Brothers Organic Farm USA"). This is both an accessibility/clarity issue (screen-reader users hear the wrong brand name) and a brand-consistency defect (see Critical, Β§7).
user-scalable="no"/maximum-scalein viewport. Lighthouse flags the mobile viewport meta aswidth=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=1.0βmaximum-scale=1.0blocks pinch-zoom, a WCAG 1.4.4 (and AA) concern for low-vision users. Removingmaximum-scale/user-scalableis required.
2.3 Positive Findings
<html lang="en">present (correct; thoughcontent-language: en-USheader is set).<meta name="viewport">present and responsive.- Skip-to-content link present (
Skip to content). - Images carry descriptive alt text on product pages (e.g., alt="Desi Gir Cow Cultured Ghee" on every gallery image) β strong for a D2C food brand.
- Logical breadcrumb + ARIA nav present on inner pages; mobile nav uses
aria-expanded/aria-controlscorrectly. - Form inputs (search, newsletter, cart) have associated labels/placeholders.
- No color-contrast failures detected; Lighthouse Accessibility = 92.
3. SEO Audit
3.1 Technical SEO
| Check | Status | Evidence |
|---|---|---|
| HTTPS enforced | β | strict-transport-security: max-age=7889238; 200 over HTTPS; upgrade-insecure-requests CSP |
| robots.txt | β | Disallows cart/checkout/account/search; includes Sitemap: directive; allows crawling of products/collections/pages |
| XML Sitemap | β | sitemap.xml index links to products, pages, collections, blogs + sitemap_agentic_discovery.xml (good for AI search) |
| Canonical URLs | β | Self-referencing on homepage, product, collection |
| Mobile-friendly | β | Responsive; viewport set; mobile CrUX LCP 1.3 s |
| Mixed content | β | block-all-mixed-content CSP |
| URL structure | β | Clean hyphenated handles (/products/amorearth-desi-cow-a2-ghee, /collections/ghee) |
Minor technical gaps
<link rel="sitemap">not in HTML<head>. Sitemap is only declared in robots.txt. Low priority, but adding the<link>aids discovery.- robots.txt is Shopify-default and verbose (repeated blocks per bot). Acceptable, but could be trimmed.
- No COOP header (
Cross-Origin-Opener-Policy). Best-practices-wise a nice-to-have for isolation.
3.2 On-Page SEO Issues
High
- Homepage has duplicate
<meta name="description">tags (2 instances). One says "Two Brothers Organic Farms Now in USAβ¦" and the other "Shop authentic A2 Ghee, Khapli aataβ¦". Search engines ignore the duplicate but it signals template hygiene problems and means the chosen snippet is non-deterministic. Fix: keep one, keyword-rich description. - Homepage missing a semantic H1 / keyword-targeted heading. The
<title>("Two Brothers Organic Farm USA β No Tariff | Official TBOF Store") is good, but there is no on-page H1 reinforcing "A2 Ghee / Organic Farm USA" β the homepage relies on paragraph copy. Add a real H1 (e.g., "Two Brothers Organic Farm USA β A2 Ghee & Traditional Foods"). - Brand-name fragmentation hurts entity SEO (see Critical Β§7).
og:site_name= "USA Two Brothers Farms";<title>suffix = "Official TBOF Store"; homepage body = "Two Brothers India Farms"; footer/legal = "TBOF FOODS PRIVATE LIMITED". Google struggles to build a single entity when four names are used. Consolidate to one canonical brand string.
Medium
- Homepage
og:imageuseshttp://(insecure) scheme.og:image content="http://twobrothersfood.com/cdn/shop/files/...png". Mixed-scheme OG image can be rejected by some social scrapers; usehttps://. (Other OG tags correctly usehttps.) - Inconsistent title suffix branding. Product: "A2 Ghee | Cultured, Bilona-Made and Glyphosate-Free β USA Two Brothers Farms". Collection: "Buy Ghee in USA - A2 Gir Cow, Bilona Method β USA Two Brothers Farms". Blog: "β¦ β USA Two Brothers Farms". The "USA Two Brothers Farms" suffix is the weakest of the brand variants and appears on every indexed page β it should be the consistent canonical brand ("Two Brothers Organic Farms USA" or "TBOF").
Positive
- Meta descriptions present and unique on product/collection/blog pages.
- Open Graph + Twitter Card tags present on all sampled pages (og:title, og:description, og:image, og:type, twitter:card, twitter:image, twitter:image:alt).
- Clean, descriptive, hyphenated URLs.
3.3 Schema Markup (JSON-LD)
Schema is present and mostly correct on inner pages (verified via raw HTML, not the JS-serialized DOM which intermittently drops it):
| Page | Schema types found |
|---|---|
| Homepage | BreadcrumbList, WebSite, LocalBusiness |
| Product (ghee) | Product, BreadcrumbList, LocalBusiness, FAQPage |
| Collection (ghee) | BreadcrumbList, LocalBusiness, (ItemList variant) |
| Blog post | BlogPosting, BreadcrumbList, LocalBusiness, FAQPage |
Gaps / risks
- Product schema
brand.nameconsistency unverified against Organization name β given the brand-name fragmentation (Β§3.2), thebrandfield may read "USA Two Brothers Farms" while Organization reads differently. Must be unified. - No Organization schema (only LocalBusiness) on the homepage β a
mainEntityOrganization withsameAssocial links is recommended for entity building. - WebSite + SearchAction is present β good (enables sitelinks search box).
- One collection FAQPage block failed JSON parse in extraction (control-character issue) β confirm the FAQ JSON is valid; an invalid block can be ignored by Google and lose rich-result eligibility.
3.4 Image SEO
- Product gallery images have descriptive
alt(good). Filenames are not keyword-optimized (USA_Cultured_Ghee-01.jpg,Copy_of_2.png) β minor; rename todesi-gir-cow-cultured-ghee.jpgstyle over time. - No AI-generated images detected. Filenames checked against Gemini/ChatGPT/Picsart/
ai0_/unnamed_patterns β zero matches. Product photography appears to be real product/lifestyle shots, which is correct for this authenticity-led brand. - Lazy-load below-fold (verify hero is NOT lazy β it is not, based on markup).
3.5 Internal Linking
- Predictive search and mega-menu expose collections (Ghee, Herbal Ghee, Oils, Wellness, Flours, Snacks, etc.) β good discovery.
- Footer + mobile nav link to About/Philosophy/Team/Blogs/Contact β strong internal mesh.
- Blog β product cross-linking exists but is not aggressively tied to PDPs (noted in business analysis as a CRO gap).
3.6 Keyword Targeting
- Homepage title/H1 do not align on a single primary commercial keyword ("A2 ghee USA"). The body copy is brand-story-heavy ("Two Brothers India Farmsβ¦") rather than keyword-targeted for "buy A2 ghee USA / organic Indian groceries USA."
- Collections have unique, keyword-rich titles ("Buy Ghee in USA - A2 Gir Cow, Bilona Method") β good.
3.7 E-E-A-T Signals
- Experience/Expertise: Strong β founder story (ex-bankers, Bhodani farm), Bilona method described, ECOCERT certification, lab reports linked.
- Authoritativeness: Backed by Rainmatter/360 ONE; press mentions; 2,108 reviews on flagship.
- Trustworthiness: HTTPS β ; contact page with phone (+1 341-217-2425), email (care@twobrothersfood.com), Pune address, CIN. Return/shipping/privacy policies linked in footer. Weak spot: the brand-name inconsistency (Critical) erodes the trust a premium diaspora buyer expects.
4. International SEO
- Hreflang is implemented in
<head>on all pages:en-US β twobrothersfood.com/,x-default β twobrothersfood.com/,en-IN β twobrothersindiashop.com/. Self-referencing + reciprocal (US page points to IN page and back). β Correct structure. - No content-translation mismatch here because the two stores are separate domains (US vs India) with genuinely different catalogs/pricing β not a Shopify "shell translation" case. Good.
- Canonical across locales: each locale self-canonicals; no cross-locale canonical. β
- x-default present. β
- Sitemap hreflang annotations: Shopify does not emit
<xhtml:link>hreflang in sitemaps here (relies on HTML hreflang) β acceptable per Shopify norm.
5. Best Practices & Security
5.1 Security Headers
| Header | Value | Assessment |
|---|---|---|
| HSTS | max-age=7889238 (~3 months) | β
Present; consider adding includeSubDomains; preload |
| X-Frame-Options | DENY | β |
| X-Content-Type-Options | nosniff | β |
| CSP | block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests; | β οΈ Weak β no script-src/object-src directive; does not mitigate XSS via injected scripts. Add a real script-src allowlist. |
| X-XSS-Protection | 1; mode=block | β (legacy) |
| COOP | absent | β οΈ Nice-to-have for isolation |
5.2 Modern Standards
- Valid HTML5 doctype, UTF-8 charset β
- No
document.writeβ - No mixed content β
- Source maps: not exposed in production (acceptable) β
- Lighthouse Best Practices = 100 on both mobile and desktop.
6. Content Quality Assessment
6.1 Image Quality & Authenticity
- No AI-generated imagery (verified against filename patterns). Product/lifestyle photography is real β aligns with the "farm-to-jar, authentic" brand promise. β
- Product images carry good alt text. β
- Authenticity risk is textual, not visual: the homepage repeatedly asserts "Two Brothers India Farms" β a name that does not match the actual operating entity (TBOF FOODS PRIVATE LIMITED / "Two Brothers Organic Farms"). For a brand whose premium price is justified by authenticity, this is a content-integrity mismatch (see Critical).
6.2 UX Issues
- Unverifiable review claims on homepage copy. The homepage body states "With over 3,000 reviews and a 4.92-star rating, Khapli Atta has becomeβ¦" and similar for ghee β but the visible on-site widget shows 2,108 reviews at 4.91β on the ghee PDP, and the Khapli claim cannot be confirmed on-site. Unsubstantiated specific numbers ("3,000 reviews", "4.92-star") that disagree with the live Judge.me widget are a trust/compliance risk (FTC-style scrutiny of fake review claims). Either surface the real widget numbers or soften the copy.
- Subscription not surfaced as a hero CRO element (noted in business analysis) β Spurit Subscriptions app is integrated but not prominent on PDPs/home.
- Mobile nav is functional; search drawer works.
6.3 Breadcrumb Navigation
- Visual breadcrumbs + BreadcrumbList schema present on product, collection, and blog pages. β
- Homepage has no breadcrumb (expected) but also no H1 (see Β§2.1).
7. Priority Recommendations
π΄ Immediate (This Week)
| # | Issue | Impact | Effort | Fix |
|---|---|---|---|---|
| 1 | Brand-name fragmentation ("Two Brothers India Farms" in homepage copy / "USA Two Brothers Farms" in og:site_name & titles / "Two Brothers Organic Farm USA" in tab / "TBOF FOODS PVT LTD" legal) | Critical for E-E-A-T, entity SEO, diaspora trust | Medium | Pick ONE canonical brand string ("Two Brothers Organic Farms USA" / "TBOF"). Rewrite homepage body copy, unify og:site_name, title suffixes, Organization/brand schema, footer. |
| 2 | Homepage duplicate <meta name="description"> | High (non-deterministic SERP snippet) | Low | Delete the second/redundant description; keep one keyword-rich tag. |
| 3 | Homepage missing <h1> | High (heading hierarchy + keyword signal) | Low | Add a semantic H1 carrying the primary keyword ("A2 Ghee & Traditional Foods β USA"). |
| 4 | maximum-scale=1.0 in viewport blocks pinch-zoom | High (WCAG 1.4.4 AA) | Low | Remove maximum-scale/user-scalable from viewport meta. |
| 5 | Homepage og:image uses http:// | Medium (social scraper rejection) | Low | Switch to https://. |
π‘ Short-Term (This Month)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 6 | Mobile INP 201 ms (Needs Improvement) β trim JS | High (mobile CWV fail) | High |
| 7 | Render-blocking CSS/JS (690 ms mobile) β inline critical CSS, defer app JS, remove duplicate Swiper (v11 + v9.4.1 both load) | High (LCP on slow connections) | Medium |
| 8 | Unify brand.name across Product/LocalBusiness/Organization schema | Medium (rich-result entity) | Low |
| 9 | Add Organization schema + sameAs on homepage | Medium | Low |
| 10 | Fix unverifiable review claims in homepage copy ("3,000 reviews / 4.92β ") to match live Judge.me widget (2,108 / 4.91β ) or surface real widgets | Medium (trust/compliance) | Low |
| 11 | Validate the failing collection FAQPage JSON-LD (control-character parse error) | Medium (rich-result loss) | Low |
| 12 | Reduce preconnect to 2β3 origins (currently 5+) | Medium (perf) | Low |
π’ Long-Term (This Quarter)
| # | Issue | Impact | Effort |
|---|---|---|---|
| 13 | Add <link rel="sitemap"> to HTML head | Low | Low |
| 14 | Strengthen CSP with real script-src directive | LowβMed (security) | Medium |
| 15 | Add includeSubDomains; preload to HSTS | Low | Low |
| 16 | Keyword-target homepage copy toward "buy A2 ghee USA / organic Indian groceries" instead of pure brand story | Medium (organic traffic) | Medium |
| 17 | Rename product image files to keyword-rich slugs | Low (image SEO) | Low |
| 18 | Tie blog content to PDPs with contextual product links (CRO) | Medium | Medium |
Summary Score Card
| Category | Score | Grade |
|---|---|---|
| Performance (Mobile) | 67/100 | π‘ |
| Performance (Desktop) | 98/100 | π’ |
| Accessibility | 92/100 | π’ |
| Best Practices | 100/100 | π’ |
| SEO | 92/100 | π’ |
| Content Quality | 78/100 | π‘ (brand fragmentation + unverifiable claims) |
| Security | 85/100 | π’ (weak CSP) |
| Overall | 88/100 | π’ |
Bottom line: Technically sound and fast for real users, but held back by a self-inflicted brand-identity inconsistency (the homepage literally calls itself "Two Brothers India Farms" while every other signal says otherwise) and a handful of low-effort fixes (duplicate meta description, missing homepage H1, zoom-blocking viewport, insecure OG image). Fixing the Critical brand issue and the four Immediate items is mostly copy/markup work with outsized trust and SEO payoff for a premium diaspora brand.
Sources & Citations
- PageSpeed Insights (field + lab): https://pagespeed.web.dev/ β report captured 2026-08-26 09:11 UTC. Mobile CWV = Failed (INP 201 ms / LCP 1.3 s / CLS 0.02); Desktop CWV = Passed (INP 187 ms / LCP 1.0 s / CLS 0.01). Mobile lab: FCP 4.1 s, LCP 6.9 s, TBT 0 ms, CLS 0.032, SI 4.1 s. Desktop lab: FCP 0.8 s, LCP 1.0 s, TBT 0 ms, CLS 0, SI 0.9 s. Lighthouse 13.4.1.
- HTTP response headers (curl -sI): HSTS
max-age=7889238;x-frame-options: DENY;x-content-type-options: nosniff; CSPblock-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests;;content-language: en-US; server Cloudflare; powered-by Shopify; theme 188364587192. - robots.txt (curl): https://twobrothersfood.com/robots.txt β disallows cart/checkout/account/search/policies; declares
Sitemap: https://twobrothersfood.com/sitemap.xml. - sitemap index (curl): https://twobrothersfood.com/sitemap.xml β links sitemap_products_1, sitemap_pages_1, sitemap_collections_1, sitemap_blogs_1, sitemap_agentic_discovery.xml.
- Homepage DOM (browser + curl): title "Two Brothers Organic Farm USA β No Tariff | Official TBOF Store";
og:site_name"USA Two Brothers Farms"; body copy "Two Brothers India Farms" Γ18;og:imagehttp://β¦; duplicate<meta name="description">Γ2; 0<h1>; 12 stylesheets; 171 scripts; JSON-LD = BreadcrumbList + WebSite + LocalBusiness. - Product PDP (https://twobrothersfood.com/products/amorearth-desi-cow-a2-ghee): H1 "Desi Gir Cow Cultured Ghee"; Judge.me "4.91 stars / 2108 reviews"; JSON-LD = Product + BreadcrumbList + LocalBusiness + FAQPage; canonical self-ref; meta description present.
- Collection (https://twobrothersfood.com/collections/ghee): H1 "Original Organic Ghee"; title "Buy Ghee in USA - A2 Gir Cow, Bilona Method β USA Two Brothers Farms"; JSON-LD = BreadcrumbList + LocalBusiness + ItemList.
- Blog post (https://twobrothersfood.com/blogs/all-blogs/healthy-easy-breakfast-ideas-for-busy-mornings): H1 "Healthy & Easy Breakfast Ideas for Busy Mornings"; JSON-LD = BlogPosting + BreadcrumbList + LocalBusiness + FAQPage.
- Hreflang:
en-USβUS store,x-defaultβUS store,en-INβtwobrothersindiashop.com, present on all sampled pages. - AI-image check: zero matches for Gemini_/ChatGPT_/Picsart/ai0_/unnamed_ filename patterns across product gallery.
- Business context:
business-analysis.md(same workspace) β 61 SKUs, 75 collections, CrUX device split 69.2% phone, funding/entity details.
Methodology note: JSON-LD was verified by parsing raw server HTML (curl), not the browser-serialized DOM, because the inline Shopify theme script intermittently interrupts document.querySelectorAll('script[type=application/ld+json]') serialization in the headless browser. All schema findings above reflect the raw HTML, which is authoritative.