A/B Testing QR Codes: A Practical Guide for Print Campaigns

To A/B test a QR code, you print two versions of a code (or the same print with two different destinations), send each to a comparable audience, and compare scans and conversions in your analytics. Change one thing at a time, wait for enough scans, and only then pick a winner. The only reliable way to do this on paper is with dynamic QR codes, because a static code can’t tell you who scanned it or be corrected after printing.
This guide covers what to test, how to set a test up, how many scans you need, and the traps that quietly spoil results.
TL;DR
- Use dynamic QR codes. They record scans and let you change the destination after printing, which static codes can’t do.
- Test one variable per round: the call to action, the landing page, the placement, the design or the offer.
- Aim for at least 200 scans per variant and a clear gap before you declare a winner. Bigger print runs deserve a proper sample size calculation.
- Keep the split neutral. Use a redirect you control rather than an ad platform’s built-in testing, which may not randomise the way you expect.
- Treat the scan as part of the brand experience: a code that leads somewhere slow or pointless can cost you goodwill, not just a click.
Table of Contents
- Why A/B testing works differently on paper
- What you can test
- Two ways to set up the split
- A step-by-step test plan
- How many scans is enough?
- Keep the test fair
- Think about what the scan feels like
- Trust is part of the test
- Perspective: why permanence matters for testing
- Reading the results
- Mistakes that spoil QR code tests
- Run your first test with QRlytics
- FAQ
- Sources
Why A/B testing works differently on paper
On a website you can swap a headline in minutes. A poster, a menu card or a product label is fixed the moment it leaves the printer. That is why testing QR codes feels harder than testing a web page, and why so few teams do it.
The good news is that the part you most want to test usually isn’t the ink. It is what happens after the scan: the landing page, the offer, the language, the first screen on a phone. A dynamic QR code points at a short redirect URL, and you can change where that redirect leads at any time without touching the printed code. We explain the mechanics in our guide to QR redirection stability.
Print is also worth the effort. MRI-Simmons found that the number of magazine ads carrying QR codes rose nearly 550% in 2021 compared with 2019. When codes are everywhere, the small differences in wording, placement and landing experience decide which ones get scanned.

What you can test
Pick one of these per test. If you change the frame text, the landing page and the colour together, you will never know which one moved the numbers.
| Variable | Example of A vs B | What you measure |
|---|---|---|
| Call to action | “Scan for the menu” vs “Scan to see today’s specials” | Scans per impression or per print piece |
| Landing page | Short offer page vs full product page | Conversion after the scan |
| Placement | Shelf talker vs checkout counter | Scans per location |
| Design | Branded frame and logo vs plain code | Scan rate, scan failures |
| Offer | Discount vs free sample | Conversion and redemption |
| Language or tone | Emotional vs informational copy | Time on page, conversion |
The last row deserves a note. A study of pull-based print advertising in the European Journal of Marketing reports that QR codes lift purchase intent for low-involvement products such as snacks when paired with an emotional appeal, while high-involvement products do better with informational content. That gives you a sensible first hypothesis for the landing page: match the content to how much thought the purchase needs, then test it.
Two ways to set up the split
There are two practical designs, and the right one depends on what you are testing.
Design 1: Two codes, two print runs or locations
You create two dynamic codes, label them clearly (for example “Spring-flyer-A” and “Spring-flyer-B”), and place each in a different but comparable setting. This suits tests of design, call to action and placement, because those live on the printed piece itself.
The weak point is comparability. If code A is in a flagship store and code B is in a small branch, you are testing the stores, not the codes. Split like with like: same hours, similar footfall, same week. If you mail flyers, split the mailing list randomly rather than by postcode or customer value.
Design 2: One printed code, two destinations over time
Here you print one code and change the destination between periods, for example landing page A for the first two weeks and page B for the next two. This suits tests of the landing page and offer, and costs nothing extra in print.
Its weakness is time. Anything that changes between the periods, such as a holiday, weather, a competing promotion or a payday, can look like a winner or a loser. Keep the periods the same length and cover the same days of the week. Where you can run two codes at once instead, do so, because simultaneous tests remove most timing noise.
In both designs, dynamic QR codes are the foundation: they are editable after printing and each scan is recorded. If you plan several destinations behind one code, our walkthrough of multi-URL QR codes shows how to avoid reprints.
A step-by-step test plan
- Write a hypothesis. “Replacing ‘Scan here’ with ‘Scan to see today’s specials’ will raise scans per table card.” A vague goal produces a vague result.
- Choose one primary metric. Scans are the easiest. If the code leads to a sale or sign-up, use conversion after the scan as the metric that decides the winner, and keep scans as a secondary signal.
- Create the codes and name them clearly. Consistent names save you from mixing up variants when you export data later.
- Check every code on real phones. Test on both iOS and Android, in the lighting and at the distance where people will scan. Our QR code best practices cover size, contrast and quiet zones that prevent failed scans.
- Decide the stopping rule before you start. Set a minimum number of scans and a minimum duration, and don’t peek and stop on the first good day.
- Run both variants at the same time where possible. If you can’t, keep periods equal and note any outside events.
- Read the result, then roll out. Make the winner the new control, and move to the next variable.
How many scans is enough?
This is where most small tests go wrong. A handful of scans can swing wildly by chance, and a “winner” at 40 scans is usually noise.
Statistical significance measures how unusual your results would be if there were no real difference between the variants. Optimizely’s documentation on statistical significance explains the concept. Many teams aim for 95% confidence. As a rough working baseline for QR campaigns, we suggest at least 200 scans per variant and a gap of roughly 10 to 15% before calling it, then more rigour as the stakes rise.
For a big print run, work out the sample size in advance. The minimum detectable effect (MDE) is the smallest improvement you care about, and Optimizely explains how to use it when designing an experiment. In the example in its documentation, a baseline conversion rate of 15% and a target 10% lift at 95% confidence need roughly 8,000 visitors per variation. That is a lot more than 200, and it shows why small differences on low-traffic codes can’t be settled quickly.
A practical way to use this:
- Low stakes (a table card, a short run of flyers): 200 or more scans per variant and a large difference. Treat the result as a hint, not proof.
- Medium stakes (a seasonal campaign): calculate the sample size for the lift you care about and run until you reach it.
- High stakes (a national print run, packaging): test the landing experience online first, where traffic builds fast, then confirm with a smaller QR test.
If your codes can’t reach these numbers, test bigger changes. A radically different offer produces a visible gap with fewer scans than a tweak to one word.
Keep the test fair
Don’t let an ad platform choose the split
If your QR code sits alongside paid digital ads, resist the temptation to lean on the ad platform’s own testing tool. Researchers Michael Braun and Eric Schwartz report in the Journal of Marketing study summarised by the AMA that online A/B tests on ad platforms may not be truly randomised. The platform’s algorithm can show each variant to different kinds of people, a pattern called divergent delivery, which confounds the comparison.
For QR codes the fix is simple: do the split yourself, with a neutral redirect you control, so that who sees what is decided by your design and not by an optimiser. The same logic applies to audience selection in general. If you want a broader grounding in avoiding biased comparisons, these conversion rate optimization tips are a useful companion to a print test.

Change one thing, and log everything else
Keep a simple test log with the date, the location, the print batch, the weather or event context and anything else that could matter. When a result looks surprising, the log is how you find out why.
Watch for scan failures, not just low interest
A design variant that scans badly will look like a design variant nobody wanted. Before you read the numbers, rule out technical problems: contrast, code size, glare, a laminated surface, a code printed too small. Our guide to branded QR codes that survive print covers how logos and colours affect readability.
Think about what the scan feels like
A/B tests reduce people to a metric, but each scan is a decision. Research by Michelle and Harper Roehm on self-perception and print 2-D codes treats the act of scanning as an investment by the consumer, one that can shape attitudes in people with no strong view of the brand yet. The Emerald study above also cautions that using codes indiscriminately, especially in busy settings, can hurt brand attitude when the scan offers no immediate value.
So include the experience in your hypotheses. Test a fast, mobile-first page against a heavy one. Test an immediate reward, such as a coupon, a menu or a short video, against a generic home page. A variant that wins on scans but loses on bounce is not a winner.
Trust is part of the test
People are right to be wary. The FTC has warned that scammers cover legitimate QR codes on parking meters with their own, and has issued fresh advice on QR codes in public places. If your variant looks anonymous, it may lose to a rival that looks trustworthy for reasons unrelated to your message.
A few habits help both trust and test quality:
- Brand the code and print your company name or domain next to it.
- Say what the scan leads to, such as “Scan for the menu” or “Scan for your discount”.
- Place codes where they can’t easily be covered or tampered with, and check them periodically.
- Make sure the landing page matches the promise on the print.
These are worth testing as variables too: a frame with a clear promise against a bare code is a classic first experiment.
Perspective: why permanence matters for testing
We built QRlytics around one conviction: a printed code should never become a liability. Testing makes this concrete. A good test can run for weeks, and a winning variant may stay on shelves, packaging or posters for years. If a code stops working because a subscription lapsed or a billing issue appeared, you lose the print, the data and the result you worked to get.
That is why we guarantee that codes created during an active subscription keep working, regardless of billing status. It lets you test with confidence, knowing that what you learn is attached to something that lasts. It also changes how we think about a result: the winner isn’t a one-off, it is the new control for the next round, and the destination behind it can keep evolving.
Our advice, based on how teams use QR codes in campaigns, is to start small. Run one clean test on one variable, read it honestly, and write down what you learned. Ten modest, well-run tests beat one ambitious experiment that nobody can interpret. For the metrics that matter once a code is live, see our QR code analytics metrics guide.
— The
Reading the results
Once you have enough scans, look at the numbers in this order:
- Data quality. Did both codes run for equal time under similar conditions? Were there any outages, mislabelled batches or placement problems?
- The primary metric. Compare the variants on the one metric you chose in advance.
- Segments. Check device type, time of day and location. A variant that wins overall but loses in your biggest market may need a different rollout.
- Secondary signals. Bounce, time on page and downstream actions tell you whether the winner is healthy.
- The decision. Roll out the winner, keep the loser documented, and write the next hypothesis.
If the result is flat, that is information too. It means the variable you tested doesn’t matter much to your audience, and your effort belongs elsewhere. A scan heat map and a CSV export of your data make it easier to spot regional patterns and share findings with colleagues who don’t log in.
Mistakes that spoil QR code tests
- Stopping early. The first good day is rarely the real answer.
- Testing too many things at once. You can’t separate the effects.
- Comparing unlike locations. A busy counter and a quiet corner are different audiences.
- Ignoring seasonality. A test across a holiday weekend tells you about the holiday.
- Counting scans as success. If the scan doesn’t lead to the outcome you want, it was a vanity metric.
- Using static codes. They hide the data you need and can’t be corrected if you find a mistake.
- Forgetting privacy. Collect only what you need and be open about it. Our analytics are GDPR-compliant, which matters if your audience includes visitors from Europe.
Run your first test with QRlytics
With QRlytics you can create dynamic QR codes, update their destinations after printing, and follow scans in real time, including a global heat map and CSV export. You can start on the Free plan, listed on our pricing page at 0 $ per year, with no credit card needed. The Pro plan unlocks unlimited codes, advanced analytics and API access; no price is published on the page at the moment. Try the QR codes with analytics page to see what each scan records, then set up two codes and run your first test this week.
If your test depends on what happens after the scan, these landing page examples that convert and ways to boost QR code scans are good places to find your first variants.
FAQ
Can you A/B test a static QR code?
Not in any useful way. A static code has the destination baked into the pattern, so you can’t change it and you get no scan data from the code itself. You would have to rely on tracking added to the destination page, which misses scans that never load. For testing, use dynamic codes.
How long should a QR code A/B test run?
Run it until you reach the sample size you set in advance, and for at least one full cycle of your normal traffic, usually a week or two. Ending the moment one variant pulls ahead is the most common cause of false winners. If scans trickle in slowly, test a bigger change so a real difference shows sooner.
What is a good scan rate for a QR code?
It varies widely by medium, audience and incentive, so your own baseline is more useful than a general benchmark. Measure a control code first, then test changes against it. Improvements in call to action, placement and the value on offer usually move the rate most.
Does A/B testing a QR code affect the user experience?
Not if it’s done well. Visitors scan a code and reach a page, and they never see that another version exists. The risk is a slow or mismatched page, which is why you should check both variants on real phones before you start.
Should I use my ad platform’s testing tool for QR codes?
For narrow tuning of digital ads, it can be fine. For conclusions about your print creative or landing pages, a neutral redirect you control is safer, because ad platforms may not randomise delivery evenly, as the AMA-reported research describes.
Sources
- Statistical significance, Optimizely documentation
- Use minimum detectable effect when you design an experiment, Optimizely documentation
- Can You Trust Your Ad Data? American Marketing Association, 7 January 2025
- Effectiveness of pull-based print advertising with QR codes, European Journal of Marketing
- Self Perception Theory and print 2-D codes, Business and Economic Research
- Analyzing QR code engagement and effectiveness in print ads, MRI-Simmons
- Scammers hide harmful links in QR codes, FTC Consumer Advice
- See a QR code parked somewhere? Don’t scan it yet, FTC Consumer Advice