CTA Visibility

CTA visibility decides whether shoppers ever see your primary button. Learn the diagnostic checks, typical viewability rates, and why this comes before copy testing.
CTA Visibility
Whether the primary call-to-action is actually seen by shoppers — covering size, contrast, placement, and persistence on scroll.
CTA visibility is the diagnostic question that has to be answered before any copy or color test: does the primary button enter the visual field of a meaningful share of visitors, and does it stay there long enough to be acted on? It spans physical size, contrast against the surrounding canvas, position relative to the natural scan path on the device in use, persistence as the page scrolls, and whether nearby elements (badges, banners, hero imagery, sticky chat widgets) compete for the same attention.
Low visibility produces a particular failure mode: high traffic, decent engagement on the page, near-zero CTA click-through. It is the first checkpoint inside the broader practice of attention optimization, and the cheapest one to fix.
Most CTA optimization advice jumps straight to copy — "Add to Bag" vs "Buy Now" vs "Get Yours". That work is wasted if the button is below the fold on mobile, sits inside a low-contrast color block, or gets visually outranked by a promo bar that pulses every two seconds.
Treat visibility as a gate. Until your primary CTA clears it, click-through differences between copy variants are noise — you are measuring whoever happened to scroll far enough, not the relative pulling power of the words. This is why heatmap and scroll-depth data belong upstream of any A/B test on button text.
CTA Visibility Score = (Viewable Sessions / Total Sessions) × (Median Time In View / 3s)
Viewable Sessions
Viewable sessions
Sessions in which at least 50% of the CTA's pixels were rendered in the viewport for any duration.
Total Sessions
Total sessions
All sessions reaching the page that contains the CTA.
Median Time In View
Median time in view
Median seconds the CTA spent inside the viewport per viewable session, capped at 3 seconds for normalization.
A Shopify apparel store checks its product-detail-page "Add to Bag" button across 50,000 mobile sessions over a week.
Viewable Sessions: 31,000
Total Sessions: 50,000
Median Time In View: 1.8s
→ 0.62 × 0.60 = 0.37
A score of 0.37 means roughly a third of effective CTA exposure. Anything below 0.50 on a product page suggests the button is either being scrolled past quickly or only partially entering view — fix placement and stickiness before testing copy.
The 3-second cap reflects how long a shopper realistically needs to register and act on a CTA. Sessions where the button is visible for longer don't get extra credit — they're already converted attention, not visibility.
Typical CTA viewability rates by placement and device
| Placement | Mobile viewable % | Desktop viewable % | Notes |
|---|---|---|---|
| Above the fold, hero | 88-95% | 92-97% | Highest visibility but often outranked by hero imagery |
| Above the fold, secondary slot | 70-82% | 85-92% | Common for PDP "Add to Bag" on Shopify themes |
| Mid-page, after benefit block | 45-60% | 65-78% | Visibility drops sharply on long mobile PDPs |
| Sticky / persistent bar | 94-99% | 90-96% | Highest sustained visibility; mind chat-widget collisions |
| Footer-area CTA | 18-32% | 30-45% | Only seen by deep-scrollers — never the only CTA |
The numbers above show why sticky CTAs on mobile remain the single highest-leverage placement change for most stores: they convert a one-shot impression into a persistent option. The trade-off is real-estate competition with chat widgets, cookie banners, and Shopify's own announcement bars — audit the stack before adding another sticky element.
CTA visibility — frequently asked questions
Visibility measures whether the button entered the viewport; click-through measures whether anyone who saw it acted. A CTA can have 95% click-through among viewers and still drive almost no revenue if only 20% of sessions ever see it. You diagnose visibility with heatmaps and scroll data, not click counts.
It's the first checkpoint. Attention optimization asks where shoppers look, for how long, and what they ignore — CTA visibility narrows that down to one element. If the primary button fails the visibility check, downstream attention work on copy, color, or social proof can't compensate.
For a primary product-page CTA, target 75%+ viewable sessions on mobile. Below 60% means meaningful traffic is leaving without ever seeing the button, and a sticky variant is almost always the fastest fix. Above 90% is typical for sticky implementations.
Implemented natively in CSS, no — it's a fixed-position element that costs nothing to render after the initial paint. Performance issues usually come from third-party widget bloat (extra JS bundles for the sticky bar), not from the sticky pattern itself. Shopify and WooCommerce themes increasingly ship this natively.
GA4's scroll-depth events plus a heatmap tool give you a rough read: compare the percent of sessions reaching the CTA's scroll position against total page sessions. For a precise viewability score you need an IntersectionObserver-based event firing when the button enters the viewport, which most modern analytics platforms include.
In order of frequency: animated promo bars, hero-image carousels with movement, chat widgets that pop after 5-10 seconds, sticky cookie banners that linger, and high-contrast trust badges placed adjacent to the button. Anything moving will outrank a static CTA in peripheral vision.
Contrast against the immediate background matters more than contrast against the brand. A button that meets WCAG AA contrast (4.5:1 against its container) reads as a CTA. Brand-orthodox "accent" colors that sit at 2:1 contrast against a near-white card are visibility failures dressed up as design choices.
Less than it used to be. On product pages, shoppers expect to scroll for images and details before deciding, so above-the-fold matters most for category and landing pages. Mobile PDPs benefit more from a sticky CTA that appears after the hero image scrolls past — best of both.
Every time the page template changes, a new banner type ships, or a third-party widget gets installed. These are the changes that quietly break visibility — a new free-shipping bar adds 40 pixels at the top and pushes the CTA off the fold on small screens. Set a quarterly audit at minimum.
Yes, and you should — a sticky-vs-static test or a placement test is one of the highest-impact experiments most stores can run. Measure CTA click-through and downstream conversion, not just clicks; a more visible CTA sometimes pulls in less-qualified clicks that don't convert at the same rate.
Get an AI expert review of your site
Paste your URL — Metricuno's AI runs the same heuristic checks a senior CRO consultant would, scoring your page and prioritising the fixes that'll move conversion fastest.