· By The redireo team

How to A/B test a QR code without reprinting anything

You A/B test a QR code by splitting scans of one printed code across two destinations, then comparing conversions. The printed image never changes. Here is how.

A printed QR code feels like the least testable thing in marketing. The ink is dry, the posters are up, and changing anything seems to mean a reprint. It does not. If the code is dynamic, the destination lives on a server, and a server can send half your scanners one place and half another. That is an A/B test, and the printed square never knows it happened.

Can you A/B test a printed QR code?

Yes — you A/B test a printed QR code by splitting its scans across two destinations at the redirect layer. A dynamic QR code encodes a short link, not a final URL. When someone scans, they hit the redirect, and the redirect decides where to send them. Point half of those scans at page A and half at page B, measure which page converts better, and you have run a real experiment on a code that is already printed and hanging on a wall.

How does QR code A/B testing actually work?

It works by giving one short link two possible destinations and letting the redirect assign each scanner to one of them. The flow has four parts:

  1. One dynamic code, one short link, printed once.
  2. Two destination URLs — your control and your variant.
  3. A split rule at the redirect, for example 50/50, that assigns each scan to A or B.
  4. Conversion tracking on each destination so you can compare outcomes, not just clicks.

The person scanning sees nothing unusual. They scan, they land on a page, they act or they leave. Behind the code, half of them saw a different page than the other half, and your analytics record which group did what.

What should you actually test?

Test the thing downstream of the scan that you can change for free — the landing page, the offer, or the routing — not the code itself. The printed code is fixed, so the variable has to live at the destination. Useful experiments include:

Test Variant A Variant B Measures
Landing page Long-form page Short form-first page Sign-up rate
Offer 10% off Free shipping Purchase rate
Destination type App store page Web checkout Completion rate
Copy “Get the guide” “See pricing” Click-through to next step

Keep one variable different at a time. If page B changes the offer and the layout and the headline, a win tells you nothing about why.

How many scans do you need before the result means anything?

You need enough scans that the difference between A and B is unlikely to be random, which usually means hundreds of conversions per variant, not per scan. A code that gets 40 scans a week will take a long time to reach that. This is where the pricing model of your provider matters: an experiment needs volume, and volume is exactly what scan-based plans meter. redireo’s Pro plan includes 250,000 scans per month for $39 ($23.40 billed annually), which is room to run several splits at once; a plan that caps codes but meters scans elsewhere can make testing quietly expensive. Do not call a winner off 30 scans because one variant is ahead — that gap will often reverse.

Why is a dynamic code required for this?

A dynamic code is required because a static code encodes the final URL directly, leaving no place to insert a split. With a static code, every scanner decodes the same fixed destination; there is no server in the path to route them differently. A dynamic code puts a redirect between the scan and the destination, and that redirect is the only place an A/B split can happen. No redirect, no test.

Can you change the winner into the permanent destination?

Yes — once a variant wins, you point the whole code at it, and the change takes effect in seconds. After the test, you stop the split and set the single winning URL as the destination for 100% of scans. With redireo that edit propagates to the edge in seconds, so the code that was running an experiment on Monday is serving the winner to everyone by Monday afternoon. The poster on the wall never changed. Only the server behind it did.

What does this let you do that reprinting never could?

It lets a printed campaign keep improving after it ships, which paper campaigns historically could not. A billboard, a product package, or a conference banner used to be a one-shot bet: you designed it, printed it, and lived with the result. Splitting scans at the redirect turns that one-shot bet into an ongoing experiment. You learn which offer works while the campaign is live, then serve the winner to everyone still scanning — all without touching the print run you already paid for.

A/B testing a QR code is really A/B testing the page behind it. The code is just the door. Make the door dynamic, and you can keep changing what is on the other side until the numbers say you got it right.

Start free