How Big Should a QR Code Be for Print?

· DexURL Guides · 6 min read

Print a QR code at 20mm minimum and 25mm when you can, but size it to scan distance: divide the distance a person will stand from the code by ten to get the minimum side length, and remember that a longer encoded URL needs more physical size than a short one at the same distance.

20mm on a side is the floor for a QR code that has to scan reliably in print. Below that, phone cameras start to struggle at normal reading distance, especially in low light or on uncoated stock. 25mm is the safer default whenever the layout has room for it.

Size it to scan distance, not to the layout

The rule most print shops use is one-tenth of scan distance: divide how far away a person will stand when they scan by ten, and that is the minimum side length. A code scanned up close needs far less size than one scanned across a room, and sizing for the layout instead of the distance is how posters end up with codes nobody can hit from the sidewalk.

Business card, 25cm

20–25mm. Held at arm’s length, this is the tightest distance most codes are ever scanned at, which is why 20mm is a floor rather than a comfortable target here.

Flyer or menu, 40cm

30–40mm. Table tents and handheld flyers sit a bit further from the eye than a business card, and the extra size gives more room for error correction and a logo.

Poster, 1m

10cm or more. A poster is read from a stride away, not pressed against the nose, and the code needs to hold up at that distance.

Billboard, well past 1m

Scale linearly with distance. A billboard scanned from several meters away needs a code sized in the same proportion as the poster rule, just carried further out.

Module size matters more than overall size

A QR code is a grid of modules, and what actually has to resolve on a camera sensor is each individual module, not the code as a whole. More encoded text means a higher version, and a higher version packs more modules into the same printed area — so two codes at the identical 25mm size can behave completely differently depending on what they encode.

Treat 0.5mm as the practical floor for a single module on typical print stock; smaller than that and ink spread starts merging modules together. A long URL with tracking parameters can land at version 20 or higher, which needs roughly 45mm or more to keep modules above that floor. A short link pointing at the same destination can sit at version 2 or 3 and scan cleanly at 20mm. The density readout on the free QR code generator shows the version and the smallest size it will still print clearly at, so you are sizing against the actual payload instead of guessing.

A short, editable link keeps the encoded payload short too, which keeps the module count low and the code sparse — and unlike a long destination baked straight into the code, it can still be changed after the print run. See Static vs dynamic QR codes.

Quiet zone and error correction