Every QR code deployment has the same five parts, and each part has a handful of things that go wrong. This page is the list, in order. Copy it into your project and tick the boxes. Each item links to the guide with the detail, so the list stays short.
How to use it
Run the design and print groups before anything goes to the printer. Run the link and tracking groups the week before launch, once the destination page is final. Set up the maintenance group on launch day, because that is the moment everyone forgets about the code.
Do this
The checklist lives in the project's task board, each item has an owner, and the maintenance items have dates.
Not this
A quick scan on the designer's phone the night before print, and nobody thinks about the code again.
Static or dynamic first
One decision shapes several items below: whether the code is static, holding the final URL, or dynamic, holding a short redirect. The matrix shows what each gives you.
| Feature | Static code | Dynamic code |
|---|---|---|
| Works with no third-party service | ✓ | ✕ |
| Destination can change after printing | ✕ | ✓ |
| Counts scans | Only via UTM in web analytics | ✓ |
| Short URL and small code | Only if the URL is short | ✓ |
| Keeps working if the service closes or the subscription lapses | ✓ | ✕ |
| Needs a named owner for renewals | ✕ | ✓ |
Do this
A dynamic code for a seasonal campaign, owned by the marketing lead, with the renewal date in the shared calendar.
Not this
A dynamic code on a permanent building sign, made on a free trial, by a contractor who has since left.
Checklist
Design
- Content is as short as possible, a short link or a dynamic code, checked in the capacity calculator
- Error correction chosen, M for plain codes, H if there is a logo
- Dark modules on a light background at 4.5 to 1 or better, checked in the contrast checker
- Logo, if any, centred, under a quarter of the area, with a white margin, checked in the logo safe-area tool
- Finder and alignment patterns untouched
- Quiet zone of four modules on every side, kept in the layout
- Call to action beside the code
- Short URL printed beneath the code as a fallback
- Alt text written for every digital use of the code
- Artwork passed the scannability tester
- Scan distance measured from the furthest likely reader
- Code at least distance ÷ 10, rounded up, from the size calculator
- Module size above 0.5 mm, ideally 1 mm, at the printed size
- Exported as SVG or PDF, or a bitmap at 300 DPI or better
- Matt finish, or spot matt varnish over the code
- Placement at 900 to 1500 mm, flat surface, even light, per the placement guide
- Test sheet printed on the final stock and the 100 mm bar measures 100 mm
- Printed proof scanned from the real distance with an old phone and a new one
- One copy from the delivered print run scanned before distribution
Link
- Destination opens in under three seconds on mobile data
- Destination is a mobile web page, not a large PDF
- HTTPS on a domain you control or trust
- Destination page passes accessibility basics, real text, headings, contrast
- Every character of the encoded content checked in the decoder
- Wi-Fi, vCard and payment payloads tested on both iPhone and Android
- Deep links have a web fallback for phones without the app
Tracking
- Decided UTM, dynamic, both or none before print
- One code per placement to be compared
- Own test scans filtered out
- Privacy notice near the code if anything beyond aggregate counts is collected
- Report date set for two weeks after launch
Maintenance
- Named owner for every live code, recorded with the code’s location and destination
- Dynamic code subscription renewal date in a shared calendar
- Quarterly reminder to scan every live code in place
- Website redirects planned so old destinations keep working after a redesign
- Removal plan, who takes the code down when the campaign ends
Common mistake
Treating launch as the finish. The code on the wall will outlive the campaign page, the marketing contractor and possibly the website. The maintenance group exists because the dead code is the failure people notice a year later.
The two minutes that matter most
If you only have time for two items, do these. Print the code on the real stock and scan it from the real distance with the oldest phone you can borrow. Then write down who owns the link and when they will next check it. Almost every failure in the mistakes guide is caught by one of those two.
Try it in QR Studio
QR Studio keeps every code you have made in a library with its destination and export history, so the maintenance group has a list to work from instead of a folder of PNGs with no record of where they went.
Try it yourself
Generate a test sheet for your code and print it on the real stock. Measure the 100 mm bar, then scan from the real distance. That covers the whole print group in one go.