How do I test a QR code before sending it to print?
Updated September 14, 2026 · 3 min read
Scan the exported file from your screen with at least two different phones, then scan the printer's physical proof in the light the code will live in. Open the destination on a phone rather than a desktop, and check the pattern has a clear margin and a dark-on-light contrast. Every real scan is recorded, so expect your analytics to start at a handful rather than zero.
Step 1: test the exported file
- Download the code and open the file full-screen on a laptop or tablet.
- Scan it with an iPhone and with an Android phone. Two phones catch problems one will not — the camera apps use different decoders.
- Scan it once more from about an arm's length away rather than right up against the screen.
- Check where it lands. Read the page as a visitor would: right destination, loads on mobile data, no broken images.
Test the exact file you are sending to the printer. A code that was re-exported, re-coloured or scaled by a design tool after your test is a different code.
Step 2: test the printer's proof
A screen flatters a QR code: it is backlit, flat and perfectly sharp. Paper is none of those things, so the proof is the test that matters.
- Scan it in the light the code will actually be used in — a dim restaurant, a sunlit window, a fluorescent-lit corridor.
- Scan it from the distance people will really stand at, not from 5 cm away.
- If the piece is laminated, curved or glossy, scan it in that finished state. Gloss reflects the light the camera needs.
- Scan it on a phone with a cracked or smudged lens if you have one. That is the phone half your audience is carrying.
What to check in the artwork
| Check | What good looks like |
|---|---|
| Size | At least 2 cm square hand-held; scanning distance ÷ 10 beyond that |
| Margin | Clear space on all four sides, about 10% of the code's width — no artwork, fold or trim line touching it |
| Contrast | Dark pattern on a light background. Inverted codes are read by far fewer phones |
| Frame | If you used a frame with text, confirm the trim has not cropped it or the code inside it |
| File | SVG or PDF for print. A raster file scaled up will show its edges |
| Finish | No spot varnish, foil or gloss laminate directly over the pattern |
Do test scans count in my analytics?
Yes. A test scan is a real scan: it hits the same redirect, it is recorded, and it appears under People in analytics like any other. Repeat scans fired within a few seconds of each other are collapsed as repeats, but deliberate testing over several minutes will show up as separate scans.
Two ways to keep the numbers clean:
- Test the destination without recording a scan. Copy the code's link from its detail page, paste it in a browser and add
?debug=trueto the end. The redirect runs exactly as normal but nothing is written to analytics. This checks the destination, not the printed pattern — you still need a camera for that. - Test first, then note the starting number. Open the code's analytics after testing and treat that count as your baseline before the campaign goes live.
What is and is not counted is explained in scans by people versus not counted.
Common problems
It scans on my phone but not on a colleague's
That is the code operating right at its margin. Increase the printed size, widen the margin, or drop back from Dense or Ultra pattern density to Auto.
The proof scans but opens the wrong page
If the code is dynamic, open it, click Edit, fix the destination and click Update ✓ — no reprint needed. If it is static, the destination is baked into the pattern and the artwork has to be replaced.
Nothing happens when the camera sees it
Work through what to check when the camera sees the code but nothing happens. Low contrast, an oversized logo and a missing margin are the usual three.
Frequently asked questions
How many phones should I test with?
At least two, and ideally one iPhone and one Android. Different camera apps use different decoders, so a marginal code often fails on one and passes on the other.
Do my test scans show up in analytics?
Yes, they are recorded as real scans. To check a destination without recording anything, open the code's link in a browser with ?debug=true added to the end.
Can I test before I pay for the print run?
Always ask the printer for a physical proof and scan that. A screen test tells you the data is right; only paper tells you the print is.
My code is dynamic — do I still need to test?
Yes. Being dynamic means you can fix the destination later, but it cannot fix a pattern that is too small, too dense or printed with poor contrast.
Is a screenshot of the code good enough to send to the printer?
No. Download the SVG or PDF. A screenshot is a low-resolution raster and will break up when it is scaled.
Related articles
What size should I print my QR code?
Print at least 2 cm square for a phone held close. Further away, divide the scanning distance by 10. Always leave a clear margin around the pattern.
Why won't my QR code scan on an iPhone?
Check that Settings → Camera → Scan QR Codes is on, then wait for the banner and tap it. If that is fine, check the code's size, contrast and margin.
Why won't my QR code scan on Android?
Check whether your camera app has a QR toggle, or use Google Lens instead. If other codes scan fine, check the printed size, contrast and margin on yours.
Why are my scan numbers lower than expected? People vs Not counted
Analytics counts people by default. Bots, chat-app link previews and repeat fires within seconds go to Not counted, and known bots are never stored.
My camera sees the QR code but nothing happens: what should I check?
The camera is detecting a pattern it cannot decode. Check contrast, the margin, logo size and pattern density, then glare and printed size, in that order.
Still stuck?
Email support@qrcodestack.com with the email on your account and, if it is about one code, its name or short link. A person replies within one business day, usually sooner.