CTA Checker began as a fifty-line script written in the course of a Friday afternoon to answer a specific question for a single client. The question was approximately the following: which call-to-action elements on the client’s product pages were actually being clicked, in what proportions, by which visitor segments, and which were occupying valuable real estate on the page while producing essentially no conversion contribution. The answer to the question, when the script had finished running, was sufficiently surprising that the client asked for the same analysis to be applied to their other sites; the analysis was sufficiently useful on those that the script was generalised, packaged and made available as a standalone audit tool.
In the four years since, the tool has been demonstrated to approximately every retail client I have worked with, and has been requested as a paid audit deliverable by approximately every one of them. This post is an account of what the tool does, the failure modes it consistently surfaces, and the architectural decisions that distinguish it from the conventional A/B-testing platforms that the retail industry has settled on as the canonical answer to questions about CTA performance.
What the tool does, in operational terms
The tool’s operating principle is straightforward. The retailer’s site is instrumented with a small piece of JavaScript that observes the user’s interactions with every CTA element on the page — every button, every link styled as a CTA, every clickable card, every form submission. The instrumentation records, for each interaction, the element’s identifier, the visitor’s session identifier, the page on which the interaction occurred, the position of the element within the page, the element’s contextual attributes (its colour, its label text, whether it is above or below the fold), and the conversion outcome of the session that contained the interaction.
The recorded data is aggregated server-side into a per-element view, which presents — for each CTA element on the site — the click-through rate, the conversion contribution, and the proportion of the page’s total CTA clicks that the element accounts for. The aggregation is updated in near-real-time and is queryable via a small dashboard that permits the retailer’s team to filter by page, visitor segment, device type, traffic source and date range.
The tool does not, in itself, make recommendations. It produces, for each page on the site, a quantitative answer to the question of which CTAs are working and which are not; the recommendations that follow from the answer are the responsibility of the retailer’s UX and content teams, who are, in essentially every case, considerably better placed to act on the data than the tool itself would be.
The failure modes the tool consistently surfaces
The reason the tool is consistently requested as a paid deliverable, rather than the more typical pattern in which the audit deliverable is acknowledged as useful but not commissioned again, is that the tool consistently surfaces failure modes that the retailer’s team is genuinely surprised by. The failure modes are, in my observation, of three principal types.
The first type concerns CTA elements that occupy prominent page real estate but produce essentially no clicks. The dominant example, which I have observed across more than fifteen retail sites, is the secondary CTA on the product page — typically a “Save for later” or “Add to wishlist” button positioned adjacent to the primary “Add to basket” button. The secondary CTA’s click rate is, in essentially every site I have measured, approximately one-thirtieth of the primary CTA’s; the secondary occupies approximately the same visual weight as the primary in the page hierarchy. The visual weight is consequential because it dilutes the primary CTA’s affordance signal; the page communicates two equally significant actions where, on the data, only one of the two is actually being performed by the visitor. The recommendation that follows is to demote the secondary CTA in the visual hierarchy, which the retailers who have implemented the recommendation have observed to produce primary-CTA click-rate improvements in the range of four to nine per cent.
The second type concerns CTA elements whose click rate is high but whose conversion contribution is low. The dominant example here is the in-page navigation CTA — the link that takes the visitor from a category page to a curated subcategory or seasonal landing page. The link’s click rate is, on most sites I have measured, encouragingly high; the conversion rate of the visitors who follow the link is, on the same sites, considerably below the conversion rate of visitors who proceed directly from the category page to a product page. The link is, in operational terms, a misdirection that the visitor encounters on the path to a purchase decision and which delays the decision rather than supporting it. The recommendation is more nuanced than the secondary-CTA case; the link may be valuable for visitors in earlier exploration stages even if it is unhelpful for visitors closer to a decision, and the appropriate intervention is frequently to constrain the link’s visibility to specific visitor segments rather than to remove it entirely.
The third type concerns CTA elements whose click rate and conversion contribution are both low, but whose presence is justified by a vendor or stakeholder requirement that has, over time, lost its commercial rationale. The dominant example here is the legacy CTA — the button that was added to the page during a campaign in 2022 and has remained on the page despite the campaign having ended. The retailer’s team is frequently unaware that the legacy CTA exists; the tool’s per-element view surfaces it explicitly, with the data on its non-performance, and the recommendation is to remove it. The implementation cost of the recommendation is essentially zero; the conversion benefit is small per element but accumulates across the typical site’s collection of legacy CTAs.
The architectural choice that distinguishes the tool
The conventional commercial answer to the question of CTA performance is the A/B-testing platform, which permits the retailer to vary individual CTA elements and measure the conversion impact of each variation. The platform is appropriate for its purpose; it is also, for the diagnostic question that CTA Checker addresses, the wrong tool.
The A/B-testing platform answers the question “which variation of this CTA produces the best conversion rate?” The platform requires the retailer to nominate the CTAs to be tested in advance; the platform does not, in any meaningful sense, identify which CTAs deserve testing in the first place. CTA Checker answers the prior question — “which CTAs on this site deserve attention, and what kind of attention?” — and produces a triage of the site’s CTA inventory before any testing decisions are made.
The architectural distinction is not a competitive one; the two tools are complementary. CTA Checker identifies the candidate CTAs whose performance warrants intervention; the A/B-testing platform conducts the intervention and measures its effect. The retailer who uses both tools in sequence consistently produces better commercial outcomes than the retailer who uses the A/B-testing platform alone, principally because the candidate selection is, in the data I have collected, the variable that determines whether the testing budget produces measurable revenue improvement or no improvement at all.
What the tool does not do
The tool does not, in its current form, account for the contextual factors that influence CTA performance beyond the directly observable attributes. The visitor’s prior browsing history, the visitor’s relationship to the retailer, the broader marketing context surrounding the visitor’s session — all of these are, in aggregate, consequential for CTA performance and none of them are, in the tool’s first version, modelled directly. There exists a class of more sophisticated audit tools that incorporate these factors via various forms of attribution modelling; the case for the more sophisticated tools is real, but the conversion gains they produce, on the data I have collected from comparison deployments, are smaller than the gains produced by acting on the simpler diagnostic that CTA Checker generates.
(For the related question of how this kind of diagnostic interacts with the broader question of optimising the site’s UX, see Easy E-com UX: a checklist of the patterns that consistently produce uplift.)
An advisory close
The CTA inventory of a typical retail site, audited carefully, is consistently a less efficient deployment of page real estate than the retailer’s team believes it to be at the start of the audit. The legacy CTAs accumulate; the secondary CTAs occupy disproportionate visual weight; the misdirecting CTAs delay decisions rather than supporting them. The audit is, in resource terms, a modest exercise; the conversion gains that the recommendations produce, when implemented, are consistently in the high single-digit per cent range against the page-level baseline.
It is recommended that any retailer who has not conducted a CTA audit within the previous twelve months conduct one, with whatever tooling is available, before commissioning further design or testing work on the affected pages. The audit consistently surfaces opportunities that the design and testing work would not, on its own, identify; the opportunities are, in the great majority of cases, cheap to act on and worth acting on for the conversion improvements they produce.