QR code best practices: 12 rules
Twelve rules, distilled from every failure mode documented across this site. They are short because each has a full page behind it.
Design
1. Dark on light, real contrast. Scanners read the difference between modules and background — navy on white works, pastel on cream fails, inverted colors break older readers.
2. The quiet zone is part of the code. Four modules of clear margin, all sides, always. Cropping it for the layout is the classic silent killer.
3. Error correction at maximum for print. ~30% damage tolerance is your insurance against scuffs, sun and glare — it is also what makes logos possible.
4. Logos: modest, centered, and only at level H. The logo spends the correction reserve; leave some for the real world.
Content
5. Encode the final HTTPS address, directly. Every intermediary — shortener, tracking hop, rented redirect — is a failure mode you chose.
6. Keep the URL short by design. Less data, sparser pattern, smaller possible print. Clean paths beat tracking soup.
7. Own the domain you encode. The print lives as long as the address does — make both yours.
8. Size = scanning distance ÷ 10. Business card 2.5 cm, poster at 2 m ≈ 20 cm — the full table by support.
9. Vector to the printer. SVG or PDF; raster only at final resolution — never a stretched screenshot.
10. Matte over gloss where you can. Glare blinds cameras at angles; lamination choices are scanning choices.
Lifecycle
11. Verify before the run. The 5-check routine: decoded URL, private-window destination test, three phones, size, one printed proof.
12. Static for anything that outlives a billing cycle. Menus, packaging, signage: permanence is an architecture, not a plan tier. Need post-print edits? Point the code at a page you control and edit the page.
The meta-rule
Every rule above is testable by anyone, on any code, from any vendor — including ours. A QR code is a promise printed in public; best practice is making it a promise you can keep for as long as the paper exists.
Frequently asked questions
What is the single most common QR code mistake?
Printing without testing at final size and material. It lets every other mistake — weak contrast, missing margin, wrong size, dead redirect — reach five hundred copies undetected.
What error correction level should I use?
Maximum (H, ~30% tolerance) for anything printed, and non-negotiably with a logo. The density cost is minor; the damage and occlusion insurance is the difference between a scuffed code that works and one that doesn't.
Should the QR code URL be short?
Yes — shorter data makes a sparser, more scannable pattern that stays readable at smaller print sizes. Keep destinations clean: no tracking soup, use a UTM parameter only if you actually read the analytics.
Do these rules apply to codes made with any generator?
All of them. They are properties of the QR standard and of print physics, not of a vendor — which also means you can audit any code you are handed against this list.
Create a QR code that answers to no server.
Static, permanent, yours. €5 once — no subscription, no expiry, print-ready files.
Create my permanent QR