How to A/B Test QR Code Landing Pages

2 November 2026How to A/B Test QR Code Landing Pages

How to A/B Test QR Code Landing Pages

Hand-drawn QR testing title card illustration

To A/B test a QR code landing page, print one dynamic QR code, point it at a redirect you control, split incoming scans randomly between two page versions, and compare one predefined conversion event once you have enough traffic. The printed code never changes. Only the destination behind it does. This guide walks through each step, from choosing what to test to deciding when you can call a winner.

Qrlytics
Keep QR Campaigns Ready to Test
QRlytics lets you update dynamic QR code destinations and review real-time analytics, helping you manage landing page tests without changing the printed code.
Explore QRlytics

TL;DR

  • Use one dynamic QR code and split scans behind the redirect, so you never reprint to run a test.
  • Change one meaningful thing per test (headline, offer, CTA, form length or page speed) and pick one primary conversion event before launch.
  • Split traffic randomly. Never send one placement to version A and another placement to version B.
  • Work out your sample size in advance, run through full weekly cycles and do not stop the moment one version pulls ahead.
  • Confirm the code scans well on the real printed surface first, or you are testing print quality instead of your page.

Table of Contents

  • What A/B testing means for a QR landing page
  • Set up the test before you print
  • What to test on a QR landing page
  • Split scans fairly
  • Choose metrics that match the decision
  • How much traffic and time you need
  • Mistakes that make results unusable
  • A simple step-by-step checklist
  • Our perspective
  • Start testing with QRlytics
  • FAQ
  • Sources

What A/B testing means for a QR landing page

Google’s developer documentation describes an A/B test as a controlled experiment that compares two versions, one control and one changed version, by showing them to different users and measuring how they interact. The process runs in four stages: prepare, build, run and analyse.

A QR code adds one twist. Your visitor does not click a link in an ad you can adjust on the fly. They point a phone at a poster, a package, a menu or a flyer that is already printed. That makes the QR code the one fixed element in the system, and everything after the scan is where you experiment.

In practice you have three parts:

  1. The printed code, which stays the same.
  2. A redirect, which decides which page each scanner sees.
  3. Two or more landing pages, one control and one challenger.

This is why dynamic codes matter. A dynamic code points to a short redirect URL, and you can change where that redirect leads at any time. If you are new to the mechanics, our explainer on how QR redirected links work covers the basics. A static code can also be tested if it already points to a redirect URL you own, but a static code that encodes a final page address directly cannot be changed without reprinting.

Set up the test before you print

The cheapest moment to prepare for an A/B test is before the artwork goes to the printer. Three decisions matter.

Use a dynamic code or your own redirect

Generate the code with a destination you can edit later. With a dynamic QR code, you can change the destination, route scans and read analytics without touching the print run. The longer-term reliability of that redirect matters too, because a test that runs for several weeks depends on it. Our guide to QR redirection stability explains what to look for.

Check that the code scans on the real surface

A test only tells you about your page if people can reach it. Designer-style codes in particular can fail. An Ohio University AIDC Lab white paper reported read rates for designer QR codes from 9.6% to 88.6%, averaging 61.5%, and recommended high contrast, avoiding light colours, keeping the finder patterns intact and minimising distortion of the grid.

If your branded code is hard to scan on glossy stock, a curved bottle or a dark background, your conversion rate will drop for reasons no landing page can fix. Before testing, read our notes on QR code contrast for print, curved surfaces and general best practices that avoid costly reprints.

Check that the code scans on the real surface

Agree the one number that decides the winner

Write down the primary conversion event before you launch: a completed form, a coupon redemption, a purchase, a booking or a download. Everything else is supporting evidence. If you choose the metric after seeing the data, you will almost always find one that flatters your favourite version.

What to test on a QR landing page

QR visitors are overwhelmingly on phones, standing somewhere with a specific reason to scan. They are often in a hurry. So the best candidates are message-match elements and mobile friction.

Element Example of a test Why it matters for QR traffic
Headline and subhead Repeat the exact offer printed beside the code vs. a broader brand headline The scanner expects continuity with the poster or pack
Call to action “Get my coupon” vs. “Join the club” Wording sets expectations about effort and reward
Offer framing “10% off today” vs. “Free sample with your first order” The same offer can feel very different
Form length Name and email vs. name, email, phone, postcode Typing on a phone is slow
Layout CTA above the fold vs. after a short proof section Small screens show little at once
Hero image Product shot vs. photo of people using it Images affect load time and trust
Trust signals Reviews and badges vs. none Visitors scanning a code on a stranger’s poster may hesitate
Page speed Compressed images and lighter scripts vs. current build A slow page loses people before they read a word

Test the biggest likely bottleneck first. If your analytics show that many people scan but few reach the form, start with the headline and the first screen. If they reach the form but abandon it, test its length. Changing five small things at once leaves you with a result you cannot explain.

For inspiration on page formats, see our examples of branded QR landing pages. If you want a dedicated page for each campaign so results never blur together, our guide to building unique QR landing pages shows how. For general thinking about what to change on a page and why, a roundup of optimizing landing pages can help you build your list of ideas.

Split scans fairly

Fair allocation is where most QR tests go wrong. The core principle is random assignment: each scanner has the same chance of seeing A or B, regardless of where they scanned, when or on what device. A 2020 paper on field experiments argues that random assignment reduces imbalance and makes split testing more robust in natural online settings.

The classic mistake: splitting by placement

Suppose you print the same offer on posters in one city and on direct mail in another, and send poster scans to version A and mail scans to version B. If B wins, you do not know whether the page or the audience made the difference. Posters and mail reach different people in different moods. The test is invalid.

The fix is simple: put the split behind the code, not in front of it. Every placement feeds the same redirect, and the redirect randomly assigns each scan.

When you do want to compare placements

Placement comparisons are valuable, just not as a page test. If you want to know whether a code on a window outperforms one on a counter, run that as a separate experiment with the same landing page. Our guide to measuring QR code placement covers that setup. When segments matter, for example one city or one channel, run a separate A/B test inside each segment rather than blending unlike sources. If your campaign is location-specific, geo-targeted QR marketing can route scanners by region, and you can still split within each region.

Start small, then ramp up

Google recommends validating an experiment with a small group of users before scaling, and ramping traffic gradually so implementation problems show up early. It also notes that a 50/50 split is not always required, so a cautious 90/10 start is reasonable while you confirm both pages load, track and convert correctly. A poorly implemented test can produce unreliable results, and with printed codes you cannot recall the print run if something breaks.

Do not rely on retired tools

If you read older guides, you may see Google Optimize recommended for page splits. Google Optimize and Optimize 360 stopped being available on 30 September 2023, so use a redirect-level split or a current experimentation tool instead.

Choose metrics that match the decision

A useful way to sort metrics is by what question each answers.

  • Delivery: scans and sessions. Did people reach the page?
  • Engagement: unique visitors and bounce rate. Did they stay?
  • Decision: your primary completion event and its conversion rate. Did they do what you wanted?
  • Business value: purchase rate, revenue per visitor, qualified-lead rate or margin, depending on the campaign.

Tag each placement with UTM parameters so that your analytics tool can connect a print placement to its outcomes. Keep the tagging identical across both versions, because inconsistent tracking is one of the quietest ways to ruin a test.

Be wary of clicks as the headline metric. A button click is not a booking. A version that gets more taps on “Learn more” may well produce fewer completed forms. Also watch for repeat scans: one person who scans three times should not count as three visitors. Compare on unique visitors where you can.

How much traffic and time you need

This is where patience pays. Optimizely’s documentation explains that in fixed-horizon testing you should calculate the sample size before launch, using your baseline conversion rate, the minimum detectable effect, the significance level and the variance. That discipline also prevents false positives from checking results mid-test and stopping when you like what you see.

A worked example

This is our own illustrative calculation, not a benchmark. Say your page converts 10% of scanners and you want to detect a lift to 12%, using the common settings of 95% confidence and 80% power. A standard two-proportion sample-size formula gives roughly 3,800 visitors per version, so about 7,600 in total. If a poster campaign delivers 400 scans a week, that is around 19 weeks, which is too long. You then have three honest options:

  1. Accept that you can only detect a bigger improvement and test a bolder change.
  2. Add more codes or placements feeding the same test.
  3. Run the test on a campaign with higher scan volume.

Smaller differences need far more traffic. This is why a large, meaningful change (a new offer, a much shorter form) is a better use of a low-volume print campaign than a tweak to button colour.

Statistical method

For yes-or-no outcomes such as converted or not, a 2023 peer-reviewed analysis of binary A/B data notes that a chi-square test for two independent proportions is the usual choice when samples are not too small, while small samples may need Fisher’s exact test or corrected methods. The same study found a two-sample t-test workable at sample sizes of at least 500 per variant, with results similar to chi-square in its large simulations. Most testing tools handle this for you, but it helps to know what is under the hood.

What “significant” means

Optimizely explains that statistical significance measures how unusual your results would be if both variants actually performed identically, and that a visitor and conversion threshold should be met before you declare a winner. A significant result is a signal that the difference is probably not luck. It does not tell you the size of the gain you will see forever.

Run complete cycles

Define your minimum detectable effect in advance and run long enough to take in representative traffic: every day of the week, your usual geographies and any promotional peaks. A test that only covers a Tuesday and a Wednesday misses weekend shoppers.

Mistakes that make results unusable

  • Splitting by placement or geography instead of randomly.
  • Peeking and stopping early when one version is briefly ahead. Early swings are often noise.
  • Changing several variables at once, so you cannot say what worked.
  • Inconsistent tracking between versions, such as a missing tag on page B.
  • Optimising for clicks instead of completed outcomes.
  • Ignoring repeat scans, which inflate counts.
  • Letting speed or scanability undermine the test. If version B is a heavier page, it may lose on load time alone. Make sure speed is the thing you are testing, not an accident.
  • Changing the redirect mid-test, for example swapping a page halfway. Freeze both versions until the test ends.

A simple step-by-step checklist

  1. Print-test the code on the real material and distance.
  2. Create one dynamic code and decide which placements feed it.
  3. Build control and challenger pages that differ in one meaningful way.
  4. Pick one primary conversion event and set up identical tracking on both pages.
  5. Calculate the sample size and the test length, then write them down.
  6. Launch to a small share of traffic, check both pages work, then ramp up.
  7. Let the test run to its planned end across full weeks.
  8. Analyse the primary metric first, then segments for learning.
  9. Send all traffic to the winner by editing the destination, with no reprint.
  10. Log the result and choose the next biggest bottleneck.

For a print-focused walkthrough that sits alongside this one, see our practical guide to A/B testing QR codes for print campaigns.

Our perspective

We built QRlytics around a simple idea: a printed QR code is a promise, and the promise should outlast any test, any campaign and any billing hiccup.

That matters for A/B testing because experiments need time. A test that runs across several weeks depends on the redirect staying up, fast and consistent. We guarantee that codes created during an active subscription keep working permanently, so the poster you tested in October is still doing its job next year.

We also think testing should not require a developer for every change. Editing a destination behind a dynamic code, scheduling a code’s lifecycle and reading scan analytics in one place lets marketers focus on the page and the offer. Our tracking is built to be privacy-first and GDPR-compliant, so the data you base decisions on is gathered responsibly.

Our advice is to treat every printed code as a measurable channel. Decide the question, split fairly, wait for the evidence and keep the winner live.

The

Start testing with QRlytics

If you want to run this kind of test without reprinting, you need a code whose destination you control and analytics that show you what happened after the scan. QRlytics gives you dynamic QR codes with real-time scan analytics, global scan heatmaps, CSV export and API access for developers. You can sign up without a credit card, and the Free plan costs $0 per year, with limited codes and analytics. Pro unlocks the advanced features, and you can see the details on the pricing page.

Qrlytics

To see how scan data fits into your reporting, look at QR codes with analytics, or create your first editable code with the dynamic QR code generator.

FAQ

Can I A/B test a QR code that is already printed?

Yes, if the code points to a redirect you control. Change the redirect so that it splits scans between two pages. If the printed code encodes a final page address directly and is not dynamic, you cannot change where it goes without reprinting.

How long should a QR landing page test run?

Long enough to reach the sample size you calculated before launch, and to cover complete weekly cycles and any promotion peaks. There is no universal number of days. Low-volume print campaigns may need weeks, so favour bigger changes that are easier to detect.

Should I test two different QR codes instead of one code with two pages?

Only if you are testing the code itself, such as its design, size or placement. To test a landing page, use one code and split behind it. Using two codes in different locations mixes audience differences into your page result.

What is the best element to test first?

Start with whatever looks like your biggest bottleneck. For most QR campaigns that means the headline and offer on the first screen, the call to action wording, or the length of the form, since visitors are on phones and usually in a hurry.

Sources

  • Address validation A/B testing, Google Maps Platform
  • Google Optimize sunset notice, Google for Developers
  • Designer QR Codes: Ensuring the “beep”, Ohio University AIDC Lab
  • Running field experiments using Facebook split test, PMC
  • Frequentist (Fixed Horizon) statistics, Optimizely Support
  • Approaches to analyzing binary data for large-scale A/B tests, PMC
  • Statistical significance, Optimizely Support

Recommended

  • A/B Testing QR Codes: A Practical Guide for Print Campaigns
  • Unique QR Landing Pages: How to Build One per Campaign
  • QR code landing page examples that convert
  • Cut QR Scan Drop Off: Landing Page Speed (LCP Under 2s) for Marketers