Conversion Diagnostic — Findings & Experimentation Roadmap
GlowLab converts desktop traffic at nearly twice the mobile rate while 71% of sessions are mobile — the mobile PDP-to-cart path is the single largest leak, compounded by a broken cart drawer script and duplicate GA4 events that inflate every platform-reported number.
Mobile visitors abandon between add-to-cart and checkout at 68% — surprise shipping cost reveal and a JS error in the cart drawer are the primary suspects.
Where sessions become revenue — and where they don't. Source: parsed analytics export (ga4).
The defined conversion path, each step scored 1–10 on role-specific CRO checks. Weakest step: Cart.
| ▲High | meta_pixel present on "Landing" but missing on "Cart" — funnel events will be incomplete from that step on. |
| ●Medium | "money back guarantee" is promised earlier in the funnel but not reinforced on "Checkout" — anxiety returns exactly at the decision point. |
| ▲High | "Cart" (score 7/10) is a cliff — 2 points below the path average. Fix this step first; upstream wins just feed a broken step. |
Scores are deterministic heuristics from the funnel auditor — the per-step detail lives in the full step reports.
Every tool detected on the site, cross-referenced against what actually fired in the browser. 0 active · 4 inactive or unverified.
| Tool | Installed in HTML | Hits sent | Hits failed | Status |
|---|---|---|---|---|
| GA4 | Yes | 0 | 3 | ✕Failing — no hits delivered |
| Meta Pixel | Yes | 0 | 1 | ✕Failing — no hits delivered |
| Klaviyo | Yes | — | — | ▲Silent — installed, never fired |
| TikTok Pixel | Yes | — | — | ▲Silent — installed, never fired |
"Silent" and "Failing" tools are collecting no usable data — attribution and analytics decisions made on those channels are blind until fixed.
What actually fires in the browser — versus what's merely installed. 6 console error(s)/exception(s) observed.
| Vendor | Events observed | Sent | Failed |
|---|---|---|---|
| ga4 | view_item, page_view | 0 | 3 |
| meta_pixel | ViewContent | 0 | 1 |
| ✕Critical | 1 uncaught JS exception(s) — broken functionality on the conversion path is likely. First: "Cannot read properties of undefined (reading 'open')" |
| ▲High | 5 console errors — noisy runtime, review for broken apps/widgets. |
| ▲High | 4 tracking request(s) FAILED to send (ga4, meta_pixel) — data loss in analytics/attribution. |
| ▲High | ttq is loaded but no tiktok_pixel network hit was observed — pixel may be installed but silent (consent gate, misconfig, or blocked). |
| ○Low | Title tag over 60 chars — truncated in SERPs. |
| ○Low | 2/3 images missing alt text. |
| ●Medium | No heatmap/session-recording tool detected — qualitative layer missing. |
| ✕Critical | No viewport meta tag — mobile rendering is broken for most DTC traffic. |
| ●Medium | 2 H1 tags — diluted page hierarchy. |
| ▲High | No recognizable CTA text found in server-rendered HTML (verify with a browser pass — may be JS-rendered). |
| ●Medium | Missing meta description — weak SERP/share message scent. |
| ○Low | 3/3 images missing alt text. |
| Product | Price | Variants | Stock |
|---|---|---|---|
| Renewal Serum | $58–$68 | 2 | In stock |
| Barrier Cream | $42–$42 | 1 | In stock |
| Starter Kit | $129–$129 | 1 | Out of stock |
Each page scored 1–10 on the six conversion factors. Low scores mark where persuasion breaks.
| Page | Value Prop | Relevance | Clarity | Urgency | Anxiety | Distraction | Overall |
|---|---|---|---|---|---|---|---|
| Homepage | 8 | 7 | 8 | 6 | 5 | 7 | 6.8 |
| PDP (mobile) | 6 | 6 | 5 | 5 | 3 | 5 | 5.0 |
| Cart | 5 | 6 | 4 | 4 | 2 | 6 | 4.5 |
Ranked by expected revenue impact.
Evidence Runtime inspection: 'Cannot read properties of undefined (reading open)' fires 300ms after load on the PDP; 5 further console errors from the reviews widget.
Why it costs money A broken cart drawer directly suppresses add-to-cart completion — the exact step where the funnel shows its 68% mobile loss.
Fix Patch the cart drawer initialization race; add error monitoring so regressions surface before revenue drops do.
Evidence Console inspector recorded duplicate /g/collect hits with en=view_item on a single page load.
Why it costs money Every funnel ratio built on view_item is understated ~2x downstream — the team is optimizing against corrupted numbers.
Fix De-duplicate the tag in GTM (once-per-page trigger); re-baseline funnel metrics after the fix.
Evidence Page read: no shipping information on PDP or cart; LIFT anxiety scores of 3 (PDP) and 2 (cart). Free-shipping threshold exists but is only mentioned in the footer.
Why it costs money Surprise costs at checkout are the #1 documented driver of DTC cart abandonment, which sits at 68% on mobile.
Fix Add a free-shipping progress bar to the cart and threshold messaging beside the PDP price.
Ranked by expected revenue impact.
Evidence ttq global present at runtime; zero network hits observed on any page.
Why it costs money TikTok spend is unattributable — ROAS decisions on that channel are blind.
Fix Verify consent-mode configuration and event bindings in the TikTok pixel setup.
The prioritized backlog — Impact, Confidence, Ease, scored 1–10.
| # | Hypothesis | Page | I | C | E | ICE | Primary metric |
|---|---|---|---|---|---|---|---|
| 1 | Because shipping costs surprise mobile users at checkout, showing a free-shipping progress bar in the cart will lift checkout completion | Cart | 8 | 7 | 8 | 7.7 | Checkout completion rate |
| 2 | Because the mobile PDP buries proof below the fold, moving review stars beside the price will lift add-to-cart rate | PDP | 7 | 6 | 9 | 7.3 | PDP → ATC rate |
| 3 | Because mobile users lose the CTA on scroll, a sticky add-to-cart bar will lift ATC rate | PDP | 7 | 6 | 7 | 6.7 | PDP → ATC rate |
BamLoops · July 13, 2026