Practical sizes that work
Business card (30 cm): 2.5–3.5 cm. Table tent in a restaurant (50 cm): 5 cm. A4 poster (1.5 m): 15 cm. Shop window (3 m): 30 cm. Billboard (20 m): 2 m. These assume a short URL and level M correction — the defaults here.
The most common real-world failure is the 'designer's inch': a code shrunk to 15 mm because it looked tidier in the layout. It looked tidy because nobody tried to scan it.
Content density changes the maths
A QR code storing 20 characters has large, easy modules; one storing 200 characters packs them into a fraction of the size. At the same physical width, the dense code needs to be closer, lit better and printed cleaner. If you must print small, shorten the content first — a short URL on your own domain can cut the pattern's density in half.
You can see the difference live in the generator: type one character, then a long URL, and watch the module size shrink.
Surfaces and finishes
Matte beats glossy: reflections off laminated or UV-coated prints defeat phone autofocus at exactly the angles people scan from. If the code must be laminated, test the laminated version, not the raw print. On corrugated or curved surfaces, add 25% to the size rule — distortion eats the margin you thought you had.
Mistakes to avoid
- Don't measure the code on screen and assume print matches — print at 100% and measure the paper.
- Don't let the layout shrink the code below the distance rule.
- Dense code + small size + glossy stock is the classic triple failure.
Common questions
What is the smallest usable QR code?
Around 2 cm for short content on good matte print scanned up close. Below that, failures climb fast.
Does higher error correction mean I can print smaller?
No — it protects against damage, not size. Dense high-correction patterns actually need to be printed slightly larger.
How close do people actually hold their phones?
For a table or card, 20–40 cm. For posters, whatever distance they first notice it at — size for that.
Should I print the size on the artwork?
Add a short instruction like 'Scan me' near the code; it lifts scan rates more than any size tweak.