page-auditor
PDP critical audit — huxberry.com
Opus · phase 1 intake · 8 ranked issues
← Back to run index
run · 2026-05-11-stage-5b-natural-harmony-pdp
generated · 2026-05-11 16:39 UTC

Warnings & downstream context (4)

  1. Fetch method. Mobile (375) and desktop (1440) DOMs were curl-fetched without a headless browser; sticky-ATC behaviour, gallery swipe, and accordion JS were assessed from absence/presence of class & script markers rather than from rendered interaction. Findings on those surfaces are conservative; re-validate via prototype-builder if more nuance is required.
  2. No Lighthouse run. lighthouse not installed on the auditor's machine. Performance is out of scope for this audit; dispatch a follow-up if needed.
  3. No pattern inventory yet. intake/patterns.html had not landed when this audit was authored, so issues do not carry section_ref. The design-reference theme snippets in brief — product-buybox-enhancements, product-sticky-atc, mattress-comparison, cstm-product-price, cstm-product-form-hux — are the obvious targets for audit-01 / audit-03 / audit-04 / audit-05 / audit-07.
  4. Audit-bundle contradictions are flagged, not adopted. The marketing audit recommends pursuing finished-product GOTS and leading with "Made in UAE" for NHC; both are overridden by the NHC wiki and brief.resolved.yaml.forbidden_claim_patterns. Issues audit-02 and audit-08 name the contradiction so downstream specialists don't re-import it.

Audit summary

Live PDP ships a brand-critical placeholder bug, a misconfigured one-option variant dropdown, zero rating / review / trial signal in the buybox, no mobile sticky-ATC, and a copy stack drifted toward organic / 100%-wool claims that the wiki explicitly forbids for the Natural Harmony Collection.

3 critical 3 high 2 medium 0 low 8 ranked issues total
Page audited
huxberry.com/products/natural-harmony-select-mattress
Fetched at
2026-05-11T16:34:37Z
Fetch method
get · curl iPhone 17.0 UA & Chrome desktop UA, both HTTP 200 · ~451 KB
Viewports inspected
375 (iPhone) · 1440 (desktop)
Lighthouse run
No — not installed locally
Audit bundle consulted
  • Huxberry-DTC-Audit-Report.html — marketing audit; recommends GOTS + Made-in-UAE (overridden by wiki)
  • Competitor-Analysis-Avocado-Naturalmat.md — purist-vs-hybrid market split
  • data/crawl_data/huxberry/sitemap_20260218_120156_6758e3/ — Feb 2026 crawl snapshot
  • Shopify-Huxberry/CHANGES.md — confirms theme-local fixes authored but NOT live
  • Shopify-Huxberry/natural-harmony-select-pdp-review.md — Simba benchmark review, independent confirmation of bugs
  • Shopify-Huxberry/natural-harmony-select-full-page-blueprint.md — downstream layout reference

By area

1
ATF
audit-03
1
Trust
audit-06
1
Mobile
audit-05
2
Copy
audit-02 · audit-08
3
Conversion-friction
audit-01 · audit-04 · audit-07

Ranked issues

1 critical conversion-friction Live price-compare HTML renders the placeholder text 'asdsad' next to the strike-through price
Observation
On the live PDP the compare-at price span shows Dhs. 3,205.00 asdsad inside the same data attribute that drives the buybox price treatment. The trailing token is template debris, not a localisation key.
Evidence
Live HTML, line 10092: <span class="money price__compare-at--single" data-price-compare>Dhs. 3,205.00 asdsad</span> natural-harmony-select-pdp-review.md §4 'Critical bug — fix today' independently surfaced the same string in the same selector Shopify-Huxberry/CHANGES.md confirms a fix has already been authored in theme-local/snippets/cstm-product-price.liquid but has NOT been promoted to the live theme
Why it matters
A visible placeholder string on a AED 2,500+ premium-positioned product collapses perceived professionalism instantly — Gulf-region buyers comparing against Avocado / Naturalmat / Vi-Spring will pattern-match this to amateur production. It also lives inside the buybox, the single highest-attention area on the page.
Recommendation
Promote the CHANGES.md theme-local fix (cstm-product-price.liquid) to the production theme before any other redesign work ships. Then grep the entire theme for asdsad and any other obvious debug strings (e.g. test, lorem, todo, xxx) and clear them in one pass.
References audit bundle
Yes
2 critical copy Page-wide copy and certification stack lead with organic / 100% wool / GOTS claims that the NHC wiki forbids
Observation
The PDP description copy and the page's certification ribbon surface organic framing, 100% New Zealand Wool, and the GOTS / RWS marks. The product's meta description reads "...thoughtfully layered with enhanced 100% New Zealand Wool...". The wiki's NHC page explicitly forbids "organic mattress", "100% NZ wool", "GOTS-certified mattress", and "RWS-certified wool" for this SKU.
Evidence
WebFetch summary §3–§4: certifications visible include "CertiPUR-US, OEKO-TEX, RWS, GOTS"; description carries "100% New Zealand Wool", "natural insulator", "renewable" natural-harmony-select-pdp-review.md §13 quotes meta: "...thoughtfully layered with enhanced 100% New Zealand Wool..." Wikis/products/wiki/products/huxberry/natural-harmony/natural-harmony-select-mattress.md §"Forbidden customer copy" lists "Pure NZ wool / 100% NZ wool", "Organic wool / Organic-certified wool", "Organic cotton border / GOTS-certified mattress / Organic mattress" Wikis/products/wiki/collections/huxberry-natural-harmony.md §"Critical positioning rule — NHC is natural, not organic": "For NHC retail copy, all organic features are SUPPRESSED."
Why it matters
These aren't loose phrasing — they are claim-shape commitments. The Quilt L1 wool is from a different supplier (Agresta), so "100% NZ wool" is factually wrong. GOTS is component-level on the border fabric only; SpringTech holds no finished-product GOTS license. Avocado is actively weaponising "if a mattress isn't GOTS-certified as a finished product, it isn't an organic mattress" — keeping GOTS on this PDP invites a category-defining counterclaim Huxberry can't win. The brand-strategy decision is to reserve organic for the separate Organic Collection.
Recommendation
Replace "organic", "GOTS", "RWS", and "100% New Zealand Wool" with the wiki's allowed copy lines ("New Zealand wool comfort layer", "Velura signature knit cover, blended with TENCEL and real cashmere", "Zoned perimeter support — no foam encasement"). Replace the certification ribbon with the four NHC-approved marks: CertiPUR-US, B Corp (via Airelle), Land to Market, FernMark. Treat the marketing audit's GOTS/GOLS push as overridden by the wiki.
References audit bundle
Yes (and explicitly overrides one of its recommendations)
3 critical atf Buybox carries no rating, no trial, no warranty, no condensed certifications — right column terminates ~60% short of image height
Observation
Above the fold the right column stacks Title → Size dropdown → Firmness dropdown → broken "Features" dropdown → Add to cart → "Made to Order - Delivery within 5 working days" and then ends. No star rating, no review count, no sleep-trial pill, no warranty pill, no installment breakdown, no condensed cert row. The image column is materially taller, creating a visible vertical gap below the CTA before any full-width band begins.
Evidence
WebFetch §1 enumerates the buybox stack as Size / Firmness / Features / Quantity / Price / "Buy Now Pay Later 0% Tabby" / Add to cart / "Made to Order - Delivery within 5 working days" — nothing else WebFetch §2: "Absent. No star ratings or review counts appear above the fold." Live HTML has zero hits for AggregateRating, judge.me, yotpo, loox, okendo, stamped — confirming no reviews app is even installed natural-harmony-select-pdp-review.md §1: "The column is ~60% shorter than it should be, which is the root cause of the gap."
Why it matters
Rating + review count is the strongest single CRO lever on a mattress PDP — every reference brand (Simba, Avocado, DreamCloud) leads with it. Trial / warranty / financing detail consume the vertical the image column otherwise dwarfs and answer the three biggest pre-purchase objections (risk, longevity, affordability) at the moment of intent. The current buybox punts every one of those answers to scroll, where they compete with educational content for attention.
Recommendation
Populate the buybox below the CTA with a 4–5 row trust strip (delivery, sleep trial, warranty years, returns, finance) plus a rating-+-review-count line above the price. Use the existing metafield namespace (huxberry.rating_value / huxberry.rating_count / huxberry.trial_nights / huxberry.warranty_years). Install Judge.me or equivalent before the rating row can be sourced honestly; the trial-nights metafield value remains unverified per claims.yaml and should not be invented.
References audit bundle
Yes
4 high conversion-friction 'Features' option renders as a dropdown with a single value 'Natural & Sustainable', signalling a misconfigured product
Observation
The variant form ships a third option, labelled "Features" with placeholder "Select Features", whose only value is "Natural & Sustainable". There is no real choice — picking the only available option does nothing. The control reads as a config bug, not a product feature.
Evidence
Live HTML: <label for="data-variant-option-2" data-variant-option-name="Features" data-variant-option-choose-name="Choose a Features">Select Features</label> WebFetch §10: "Single 'Select Features' dropdown offering one option: 'Natural & Sustainable'" Shopify-Huxberry/CHANGES.md: "Skip any variant option with only one value (kills the broken Features: Natural & Sustainable dropdown without removing the option at the product level)" — theme-local, not yet promoted
Why it matters
Forcing a shopper to interact with a one-option dropdown to add to cart is friction with no payoff. The microcopy "Choose a Features" (singular noun + 'a') also reads as a CMS leak. Both signals push a wavering buyer back to comparison shopping.
Recommendation
Promote the CHANGES.md theme-local variant-option-suppression rule to production (skip any option whose .values.size == 1). Long-term, audit the Shopify product setup and either remove the option or split it into multiple SKUs with real differences.
References audit bundle
Yes
5 high mobile No sticky add-to-cart bar at any mobile width — CTA scrolls out of view permanently
Observation
The fetched mobile DOM contains zero references to sticky-atc, product-sticky-atc, or any position:fixed buybox affordance. Once the inline CTA scrolls past the viewport the shopper has no path to add-to-cart short of scrolling all the way back up.
Evidence
grep on mobile fetch for sticky-add-to-cart|product-sticky|position: ?fixed returns 0 matches natural-harmony-select-pdp-review.md §13: "No sticky mobile add-to-cart. Add one — standard pattern, double-digit CVR impact on mobile." Shopify-Huxberry/CHANGES.md: snippets/product-sticky-atc.liquid authored theme-local, not yet live Marketing audit flags "No reviews visible, no sleep trial, no live chat" as conversion-and-trust gaps; sticky ATC sits inside the same friction surface
Why it matters
Mattress PDPs are scroll-heavy by category — feature stack, comparison, FAQ, reviews all sit below the fold and a mobile shopper spends most of the session below the inline CTA. Without a sticky ATC the cost of converting on intent is "scroll back to the top", which empirically halves mobile mattress conversion in DreamCloud / Simba / Avocado A/B histories. This is the highest-leverage mobile fix on the page.
Recommendation
Promote snippets/product-sticky-atc.liquid to production with the split-treatment from the brief: mobile bottom-footer (size-trigger chip + ATC button) activated by IntersectionObserver against the inline ATC. Desktop top-bar is a separate composition handled by layout-architect; out of scope for this audit.
Viewports observed
375 (iPhone)
References audit bundle
Yes
6 high trust Reviews module is structurally absent — no app installed, no AggregateRating in schema, no rich-result eligibility
Observation
The page renders a "Reviews" section header but the body is empty: there is no Judge.me / Yotpo / Loox / Okendo / Stamped / native-Shopify reviews script on the page, and the JSON-LD blocks (Product, Offer, Organization, BreadcrumbList, WebSite) carry no AggregateRating.
Evidence
grep on live HTML for judge.me|yotpo|loox|okendo|stamped returns 0 matches grep for AggregateRating returns 0 matches natural-harmony-select-pdp-review.md §6: "Reviews section is empty" Marketing audit Huxberry-DTC-Audit-Report.html: "No reviews visible, no sleep trial, no live chat"
Why it matters
For a DTC mattress brand competing against Avocado (1,000+ reviews per SKU), Simba, and the broader Gulf market, an empty reviews section is the conversion equivalent of an empty shelf — buyers infer the product is unproven. It also forfeits the AggregateRating star rich-result in Google search, a measurable CTR lift for category-keyword traffic (natural mattress dubai, wool mattress uae).
Recommendation
Install a reviews app (Judge.me free tier or Yotpo) and seed with verified order-confirmation imports. Once a rating is sourced, expose huxberry.rating_value + huxberry.rating_count as buybox metafields (see audit-03) and emit AggregateRating in the Product JSON-LD via design/schema.jsonld. Do NOT fabricate review counts.
References audit bundle
Yes
7 medium conversion-friction No comparison surface between Essentia / Select / Reserve — buyer cannot see why this is the middle tier
Observation
There is no on-page comparison block. The only references to Essentia and Reserve are the mega-menu thumbnails (rendered four times across two stacked menu templates in the DOM at lines 1459 / 1493 / 5524 / 5558) — not an in-flow comparison the shopper encounters while reading. A first-time NHC buyer landing on Select has no in-page way to understand why Select sits between Essentia (27 cm, AED 3,501) and Reserve (35 cm, AED 5,337).
Evidence
WebFetch §9: "Absent. No comparison between Natural Harmony range products (Essentia, Select, Reserve) visible." grep for natural-harmony-essentia-mattress|natural-harmony-reserve-mattress returns four hits, all inside <div class="menu-item-product"> nav templates — none are on-page comparison cards natural-harmony-select-pdp-review.md §12 "Comparison tool" + brief.resolved.yaml.comparison_section_policy (intra_range_only, three NHC tiers)
Why it matters
Range comparisons are a primary up-sell / down-sell surface and reduce decision anxiety on a $1,000+ purchase. Without one, the Select PDP forfeits both AOV uplift (some buyers will trade up to Reserve when shown side-by-side) and confidence (some will abandon rather than open three tabs). The brief explicitly forbids cross-brand competitor cards, so the comparison must be the three NHC tiers — Essentia / Select / Reserve — only.
Recommendation
Layout-architect should place a three-card intra-NHC comparison band below the feature stack and above the FAQ. Use the sections/mattress-comparison.liquid scaffold already authored in CHANGES.md, but trim the Hypnos card the local draft included — brief.resolved.yaml.comparison_section_policy locks the range to Essentia / Select / Reserve only.
References audit bundle
Yes
8 medium copy Marketing audit recommends leading with 'Made in UAE / SpringTech Sharjah' — wiki explicitly forbids this on NHC retail copy
Observation
The audit-bundle marketing report repeatedly recommends positioning the product around local manufacture ("SpringTech factory in Sharjah gives Huxberry faster delivery, quality control, and 'Made in UAE' positioning"). The wiki and the brief override this: Huxberry is positioned as an international brand, manufacturing-location surfaces are brand-internal-only, and the live PDP — to its credit — does NOT currently surface those phrases. The audit's recommendation, if adopted downstream, would be a regression.
Evidence
Marketing audit: "SpringTech factory in Sharjah gives Huxberry faster delivery, quality control, and 'Made in UAE' positioning — a growing preference among GCC consumers." Live PDP grep for Made in (Sharjah|Dubai|UAE)|Sharjah factor|Sharjah facility|SpringTech returns 0 matches — the live page currently complies with the wiki brief.resolved.yaml.forbidden_claim_patterns.natural_harmony_collection.manufacturing_location_claims enumerates 14 specific phrases that must not appear Wikis/company-context/wiki/natural-harmony-collection.md §Retail Strategy + brand_voice_notes both establish the international-brand register
Why it matters
The downstream copy-writer will consult the audit bundle; the audit's strongest single recommendation contradicts brand strategy. Calling this out at intake prevents an entire copy pass from drifting back toward "local manufacture" framing that would have to be unwound at review. The live page is currently clean — the risk is the redesign reintroducing the violation, not the page exhibiting it.
Recommendation
Brief copy-writer and seo-strategist explicitly: treat the marketing audit's local-manufacture push as overridden by the wiki. Heritage / materials / Gulf-climate authority carry the story; SpringTech and Sharjah are brand-internal context and never appear in customer copy, alt text, or schema.jsonld.countryOfOrigin.
References audit bundle
Yes (and explicitly overrides one of its recommendations)