This report was measured 30 days ago — past our freshness window.

ecommerce · Sep 21, 2026

keeps.com

We found more conversion tactics here than on 21% of the 662 entry-page captures we have measured.

1 conversion tactic detected

1 page walked · measured by Roentgen 1.27.0

Walk 43 links seen, 36 walkable, and 0 matched a funnel step. If this funnel continues past the entry page, we did not reach it — everything below is measured from the entry page alone.

Put this x-ray to work Brief your AI X-ray your funnel
How this was measured

Measured by Roentgen 1.27.0 on 2026-09-21. A capture is read once and its measurements freeze there, so the stamp says which ruleset read this one.

This 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. A low count means we did not detect those patterns, not that the funnel is weak.

The short version, in 4 parts

  1. Proven on the page

    1 conversion tactic detected, each backed by text on the page

    Anchors the price against a higher original
    30% OFF

    See all 1

  2. Not seen

    14 of 15 applicable tactics we checked for and did not see

    FAQ / objection handling
    An accordion / FAQ block answering objections.
    Press / "as seen in"
    Media logos or an "as seen in / featured in" claim borrowing publication credib…
    Us-vs-them comparison
    A comparison table framing the brand against alternatives.

    + 11 more

    See what we looked for

  3. Flagged

    5 of 19 build checks flagged, each with a fix

    Text contrast (WCAG AA)
    94% of measurable text passes WCAG AA. 4+ runs fail.
    Body text size
    Smallest sampled text is 11px, below the 13px floor this check uses.
    Line height
    Body line-height is 1×, tight enough to hurt readability.

    + 2 more

    See the fixes

  4. In their words

    The headline: KEEP YOUR HAIR. REGROW WHAT YOU LOST.

    Promise
    Keeps offers FDA-approved hair loss medications delivered to your door. Just answer a few questions and our C…
    Prices shown
    $65 · $25 · $18

    Read every quote

Captured Homepage / Lander
Step 1 · Homepage / Lander1 / 1

What we recorded

Progress

4 scans

this funnel’s coverage score across measured re-scans

measuredextracted directly from the live page. a fact, not an opinion
1 more tactic detected 0 → 1 across 4 scans since 2026-07-18. The ruleset changed in this window, so part of this may be our detection improving rather than the page changing.
  1. 0 tactics 2026-07-18
  2. 1 tactic 2026-07-30
  3. 1 tactic 2026-08-03
  4. 1 tactic 2026-09-21

The funnel, frame by frame

1 step walked

see their whole funnel without clicking through it. scored step by step

measuredextracted directly from the live page. a fact, not an opinion
Homepage / Lander
01

Homepage / Lander

2 tactics

$65 +5 more  ·  30% OFF  ·  1 proof point

Sticky CTALogo wall

In their own words

24 quoted

the entry page’s own title, headline, buttons and prices — quoted, never paraphrased

measuredextracted directly from the live page. a fact, not an opinion
Page title
Hair Loss Treatment for Men | Keeps
Meta description
Keeps offers FDA-approved hair loss medications delivered to your door. Just answer a few questions and our Care Team will help you find the best hair treatment plan.
Headline
KEEP YOUR HAIR. REGROW WHAT YOU LOST.
Section headings
TIME TO TAKE ACTIONSexual HealthHair loss treatment got an upgrade RxNew formulas + fan favoritesHalf the costMeet the Men of Action
Buttons and links
GET STARTEDSIGN INCARTLEARN MORESEE ALL OUR PRODUCTSPICK MY PLANBuy treatmentSubmitSupport
Prices on the page
$65$25$18$10$100$5

Sections

4 identified

structural bands identified on this funnel, cropped from its own capture

measuredextracted directly from the live page. a fact, not an opinion
Hero section of keeps.com
Hero0% down the page
CTA section of keeps.com
CTA2% down the page
Pricing section of keeps.com
Pricing68% down the page
Footer section of keeps.com
Footer93% down the page

What we found

1 tactic

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 opinion

offer1 of 4

Anchors the price against a higher original 30% OFF

What we didn’t find

14 of 15 applicable

applicable tactics we checked for and did not see on any step we reached

measuredextracted directly from the live page. a fact, not an opinion

What we didn’t see14 of 15 applicable

FAQ / objection handling 1,696 of the 2,525 funnels we checked
Press / "as seen in" 673 of the 2,522 funnels we checked
Us-vs-them comparison 467 of the 2,525 funnels we checked
Proof above the fold 406 of the 2,525 funnels we checked
Scarcity / urgency copy 131 of the 2,522 funnels we checked
On-page review wall 101 of the 251 ecommerce funnels we checked
Free shipping 81 of the 251 ecommerce funnels we checked
Express wallets 46 of the 251 ecommerce funnels we checked
Money-back guarantee 33 of the 251 ecommerce funnels we checked
Proof at every step 28 of the 251 ecommerce funnels we checked
Countdown / urgency timer 24 of the 251 ecommerce funnels we checked
Per-unit price anchor 12 of the 251 ecommerce funnels we checked
Stacked free gifts
Subscription / auto-ship

Absence 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.

How well it’s built

19 run · 5 flagged

contrast, mobile, typography, accessibility, weight — each with what would fix it

measuredextracted directly from the live page. a fact, not an opinion

5 of 18 measured checks need work1 could not be measured — not counted either way

Text contrast (WCAG AA)

contrast:text-contrast-wcag-aa

94% of measurable text passes WCAG AA. 4+ runs fail.

worst: “$25/mo” at 2.75:1 (14px, #76a63f on #fafaf5). needs 4.5:1

FixRaise text/background contrast to ≥4.5:1 (≥3:1 for large text), especially on CTAs and body copy.

Body text size

type:body-text-size

Smallest sampled text is 11px, below the 13px floor this check uses.

FixKeep body copy ≥15-16px; reserve sub-13px for fine print only.

Line height

type:line-height

Body line-height is 1×, tight enough to hurt readability.

FixSet body line-height to ~1.4-1.6×.

Landmark regions

structure:landmark-regions

No <main> or <header> or <footer> landmark. screen-reader users cannot jump between regions.

FixWrap the page in <header>, <main> and <footer> (or matching ARIA roles).

Tap-target size (mobile)

mobile:tap-target-size-mobile

51 of 78 interactive targets are under 44×44px on mobile.

smallest: “GET STARTED” at 85×14px

FixGive tappable controls a ≥44×44px hit area. the touch minimum.

Worth knowing10

Line length

1 paragraph runs past ~95 characters per line.

FixCap measure at ~60-75ch for comfortable reading.

type:line-length
Form labels

1 form field relies on placeholder text as the only label.

FixBack placeholders with a real <label>. placeholder text vanishes on input.

a11y:form-labels
Heading structure

The landing page has 2 <h1> elements (expected 1).

FixUse exactly one <h1> as the page’s title.

a11y:heading-structure
Heading levels

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:heading-levels
Render-blocking resources

4 stylesheets/scripts in <head> block first paint.

FixDefer non-critical JS (defer/async) and inline only critical CSS.

weight:render-blocking-resources
Oversized images

2 images are shipped at more than 2x the width shown.

FixServe responsive sizes (srcset/sizes) matching the rendered width.

weight:oversized-images
Keyboard reachability

9 elements look clickable but cannot be reached by keyboard.

FixUse <button>/<a>, or add role + tabindex="0" and a key handler.

structure:keyboard-reachability
Autocomplete hints

No autocomplete attributes across 2 fields. browsers cannot autofill.

FixAdd autocomplete="email"/"tel"/"name" to identity fields.

forms:autocomplete-hints

Not measurable1

Page weight

At least 2.3 MB across 118 measurable resources, but 50 cross-origin resources did not expose a size. The true weight cannot be determined from the page.

weight:page-weight

Clear3

Mobile viewport · Language declared · Image alt text

Brand kit

5 colour roles

palette by on-page usage · type rendered live

measuredextracted directly from the live page. a fact, not an opinion
full palette ordered by on-page usage %
accent#dcd7ce
bg#fafaf5
surface#f5f3ed
text#000000
See the roles applied
accent

Body copy in their text role, on a surface card.

the roles, doing their job
The quick brown fox60px
Jumps over the lazy dog54px
A subheading in their voice48px

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.

  • List item one, at body scale
  • List item two
  • List item three
Type scale, weights & families
SIZE SCALE
11pxAa
12pxAa
14pxAa
15pxAa
16pxAa
18pxAa
20pxAa
24pxAa
36pxAa
48pxAa
54pxAa
60pxAa
WEIGHTS
Aa300
Aa400
Aa600
Aa700
Aa900
FAMILIES
Apercu · Helvetica
rendered in their own type system · webfont not loaded. system fallback if uninstalled

Measured, found none

2 of 10 layers

layers we ran on this funnel that came back empty

measuredextracted directly from the live page. a fact, not an opinion

Elements — 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.

Similar crawls