QR code proofing checklist: how to test before you print 1,000 flyers
Most QR code failures are not technical. They are process failures.
Someone generated a code, dropped it into a design, and printed it without a real proof.
Then the flyer arrives, the code does not scan reliably, and the only fix is a reprint.
This checklist is designed to prevent that.
TL;DR
- Always do a physical proof at the final size.
- Test on multiple phones and in real lighting.
- Use a dynamic QR code for anything you print.
- Add UTMs in a way that stays consistent.
- Make sure the destination loads fast on mobile.
1) Decide: static vs dynamic
If you are printing anything that costs money, choose dynamic.
Why:
- you can fix the destination later
- you can rotate campaigns without reprinting
- you can add tracking without changing the printed code
Start here:
- /blog/dynamic-qr-code
- /blog/editable-qr-code
2) Create the destination first
Before you generate the QR, confirm the landing page exists and is ready.
Checklist:
- HTTPS enabled
- page loads on mobile
- no broken images
- CTA is visible above the fold
- cookie banner does not block the CTA
If your landing page is heavy, scans will convert badly even if the QR scans perfectly.
Reference:
- /blog/landing-page-speed-for-scans
3) Add tracking (without making it messy)
If you care about measuring the campaign, use UTMs.
Checklist:
- utm_source is consistent (example: flyer, poster, menu)
- utm_medium is consistent (example: qr)
- utm_campaign matches the actual campaign name
- you can read the URL later without confusion
If you use dynamic QR codes, you can keep the printed code stable and update UTMs in the redirect destination.
References:
- /blog/utm-tags-for-qr-codes
- /blog/qr-code-campaign-tracking-utm
4) Lock the QR code in design tools
Most designers break QR codes by accident.
Checklist:
- keep aspect ratio locked
- do not stretch the QR
- do not add effects that blur edges
- keep the QR square
Use high quality assets:
- SVG preferred
- if using PNG, export at high resolution
5) Quiet zone rules
The quiet zone is the empty space around the QR code.
Checklist:
- clean margin around the code
- no borders touching the code
- no background textures in the margin
Reference:
- /blog/qr-quiet-zone-explained
6) Size it for the real scanning distance
Your QR code must match how people will scan it.
Checklist:
- table tent: small is fine
- flyer: medium size
- poster: larger
- outdoor signage: much larger
If you are unsure, go bigger. The cost of bigger ink is lower than the cost of a reprint.
References:
- /blog/qr-code-size-scanning-distance
- /blog/qr-code-size-guide-print-posters
7) Pick safe colors
Dark on light wins.
Checklist:
- strong contrast
- avoid gradients inside the QR modules
- avoid low-contrast brand colors
- beware glossy surfaces and glare
Reference:
- /blog/qr-design-contrast
8) Do a real proof test
Digital previews lie.
Print one test page at 100% scale and test it.
Checklist:
- test on an iPhone and an Android
- test in indoor light and outdoor light
- test from the intended scanning distance
- test with the native camera app
- test with a social app camera (Instagram, etc.)
If it fails even once, fix it now.
9) Redirect safety (for dynamic QR codes)
Most dynamic QR codes are redirects.
Checklist:
- redirect works in private browsing
- redirect does not loop
- destination loads fast
- avoid long redirect chains
Reference:
- /blog/qr-code-redirect-best-practices
10) Keep a simple rollback plan
Before you print:
- save the final design file
- save the QR destination URL
- document which UTMs you used
If something goes wrong later, you want to be able to change the destination in minutes.
CTA: print with confidence
QRShuffle is built for print workflows.
You can:
- generate dynamic QR codes
- change destinations after printing
- track scans
Create your first dynamic QR code here:
Next reads
- /blog/dynamic-vs-static-qr-code
- /blog/qr-code-not-scanning-troubleshooting
- /blog/qr-code-analytics
