How do I test a QR code before printing?
Decode the final artwork file, confirm it points where you expect, then check contrast, the blank border and resolution. Drop, paste or choose an image below: the tester reads it in your browser and flags the problems that most often stop a printed code from scanning.
By Daniel Zaremba, founder of BetterQR · Updated
or drop it here, or paste it with Ctrl/⌘ + V
Decoded in your browser. The image is never uploaded.
Add an image of a QR code: a screenshot, an exported PNG or a photo of the print proof. The result appears here.
Is my image uploaded anywhere?
No. The image is decoded in your browser with an open-source QR decoder that loads when you add a file. Nothing is sent to BetterQR or anyone else, and nothing is stored. The tester also does not open the link it finds, so it cannot tell you whether the page behind it loads.
What does the tester check?
| Check | What it looks for |
|---|---|
| Scans | Whether a QR code can be decoded from the image at all |
| Content | The exact text encoded, and its type: URL, Wi-Fi, vCard, email, phone, SMS, location, calendar event or plain text |
| Static or dynamic | Whether the link goes through a known shortener or QR redirect service, or straight to the destination |
| Contrast | The ratio between the darkest and lightest pixels in the code, and whether the code is inverted (light on dark) |
| Quiet zone | Whether there are at least 4 blank modules on every side |
| Resolution | Whether each module is at least 4 pixels wide in the file |
| Density | The number of modules across; version 7 and above (45 × 45 or more) needs printing larger |
How does it tell a static code from a dynamic one?
A static code holds the final destination, so the hostname is the brand's own website. A dynamic code holds a short link on the QR provider's domain, which redirects to the destination. The tester compares the hostname with a list of common link shorteners and QR redirect hosts. It is a heuristic: a custom short domain looks direct, and an unusual provider may not be recognised.
The difference matters after printing. A dynamic code depends on its provider: many switch codes off when a subscription ends (BetterQR keeps them redirecting and only removes the analytics), and a static code breaks if the page it points at moves. The guide to QR codes that don't expire explains both failure modes.
Why does my QR code not scan?
- Too little contrast: pale colours, or a code placed over a photo.
- No quiet zone: text or artwork pressed against the edges of the code.
- Too small for the distance: work out the minimum width with the QR code size calculator.
- Too dense: a long URL makes many small modules. Shorten the link or use a dynamic code.
- Low-resolution file: a small PNG stretched to poster size goes blurry. Export a large PNG or an SVG.
Is testing the file enough?
It catches most problems, but test the printed proof too. Scan it with two or three different phones, from the distance people will stand at, under the light it will hang in. Glossy laminate, backlit panels and curved surfaces only show their problems in the real world.
Can I test a code on screen?
Yes. Take a screenshot of the code and paste it straight into the page with Ctrl + V (⌘ + V on a Mac). This works for codes in a PDF proof, a design tool or an email from your printer.
How do I track scans once the code is live?
Use a dynamic code. BetterQR counts the scans on each code, so you can see whether a placement is working, and lets you change the destination without reprinting. Dynamic codes come with the paid plans; see pricing.
Related
- QR codes that don't expireWhy some 'free' QR codes stop working, how to tell static from dynamic codes, and how to make QR codes that never expire.
- Billboard QR code sizeHow big a QR code needs to be on a billboard, poster or bus shelter, using the 10:1 distance rule, with a size table and placement tips.
- QR code size calculatorEnter the viewing distance and get the minimum QR code size for a billboard, poster or sign, in cm and inches. Free, no sign-up.
- QR code UTM builderBuild a UTM-tagged link and its QR code in one step, so GA4 shows which print placement sent each visit. Free, no sign-up.