Body text size
type:Smallest sampled text is 12px, below the 13px floor this check uses.
FixKeep body copy ≥15-16px; reserve sub-13px for fine print only.
ecommerce · Sep 6, 2026
Scores higher than 9% of 1,462 multi-step funnels we have measured. Among the 165 ecommerce funnels in that group, higher than 36%.
20/100 Sparse
Measured by Roentgen 1.27.0 on 2026-09-06. A capture is read once and its measurements freeze there, so the stamp says which ruleset read this one.
Coverage is detection coverage, not a verdict — it counts the conversion tactics we could prove are present, out of the 15 that apply to an ecommerce funnel. Per device: desktop 20 · mobile 20.
Walk 40 links on the entry page, 26 walkable. 2 matched a funnel step; we captured 3 pages in all, this one included.
see their whole funnel without clicking through it. scored step by step
measuredextracted directly from the live page. a fact, not an opinionthe entry page’s own title, headline, buttons and prices — quoted, never paraphrased
measuredextracted directly from the live page. a fact, not an opinionAI Hairstyle Try-On | Find a Haircut | Hairstyle Advisor
Use this AI hairstyle try-on to browse reviewed styles, shortlist favorites, and preview up to 3 looks on one private photo. No prompts needed.
See Your Next Haircut with an AI Hairstyle Try-On
Choose a look to try on
Still narrowing it down?
Why Hairstyle Advisor works better for a real haircut
One photo. A considered shortlist. A fair comparison.
From the blog
Buy credits only when you need them
Short haircuts
Long haircuts+6 more, not shown
Explore
Toggle theme
Start try-on
Try 1 Style Free
All
Men’s
Women’s
Buzz Cut Select Buzz Cut
Modern Mullet Select Modern Mullet
Layered Lob Select Layered Lob+2 more, not shown
$5.99
$14.99
$59.99
$99.99
structural bands identified on this funnel, cropped from its own capture
measuredextracted directly from the live page. a fact, not an opinion
conversion tactics we could prove are present, with the on-page text that evidences each
measuredextracted directly from the live page. a fact, not an opinion20 reviewed styles
3 review elements
Is there a free preview?
applicable tactics we checked for and did not see on any step we reached
measuredextracted directly from the live page. a fact, not an opinionAbsence is a measurement, not a recommendation: we do not know why a tactic is missing, whether it belongs here, or whether adding it would change anything. Where a walk stopped early, a tactic living deeper would also read as not detected.
contrast, mobile, typography, accessibility, weight — each with what would fix it
measuredextracted directly from the live page. a fact, not an opinion4 of 12 measured checks need work2 could not be measured — not counted either way
Smallest sampled text is 12px, below the 13px floor this check uses.
FixKeep body copy ≥15-16px; reserve sub-13px for fine print only.
1 button/link has no accessible name (icon-only, no aria-label).
FixAdd aria-label to icon-only buttons and links.
36 images are shipped at more than 2x the width shown.
“buzz-cut.webp” is 1122px wide, displayed at 262px
FixServe responsive sizes (srcset/sizes) matching the rendered width.
107 of 155 interactive targets are under 44×44px on mobile.
smallest: “Toggle theme” at 40×40px
FixGive tappable controls a ≥44×44px hit area. the touch minimum.
35 paragraphs run past ~95 characters per line.
FixCap measure at ~60-75ch for comfortable reading.
type:1 heading skips a level (e.g. <h2> followed by <h4>). Screen-reader users navigate by this outline.
FixStep heading levels one at a time; use CSS for size, not a deeper level.
a11y:4 controls have an aria-label that does not contain its visible text, so voice-control users cannot activate it by saying what they see.
FixMake the accessible name start with the visible label text.
a11y:No autocomplete attributes across 6 fields. browsers cannot autofill.
FixAdd autocomplete="email"/"tel"/"name" to identity fields.
forms:At least 3.1 MB across 101 measurable resources, but 97 cross-origin resources did not expose a size. The true weight cannot be determined from the page.
weight:Mobile viewport · Language declared · Image alt text · Render-blocking resources
palette by on-page usage · type rendered live
measuredextracted directly from the live page. a fact, not an opinionBody copy in their text role, on a surface card.
Body copy set at their measured paragraph size. This is how their product reads to a first-time visitor. same family, same scale, same weight.
layers we ran on this funnel that came back empty
measuredextracted directly from the live page. a fact, not an opinionElements — the atomic pieces — price anchors, ratings, guarantees — with their verbatim on-page text
Playbook match — which funnel play this page runs — measured, evidence-quoted
We ran these passes on the pages we captured and found nothing to show. That is a measurement of this funnel, not a recommendation — and it is a different statement from a layer we never ran, which does not appear here at all.