How big should a QR code be? A printer-friendly guide

The 10:1 rule, minimum sizes for common materials, and why the quiet zone matters more than the size itself.

Most unscannable QR codes are not badly generated. They are badly sized, badly placed, or missing their quiet zone.

The 10:1 rule

The usable scanning distance of a QR code is roughly ten times its width. A code 3 cm across scans comfortably at about 30 cm — arm's length. A billboard read from 10 metres needs a code about a metre wide.

Work backwards from where the reader will be standing:

The quiet zone is not optional

A QR code needs an empty margin around it — four modules wide — for the reader to find its edges. Designers routinely crop this away to fit a layout, and the result is a code that fails on some phones and works on others, which is worse than one that fails consistently.

If you export a code from Qrievo, the quiet zone is included in the file. Do not trim it.

Contrast beats cleverness

Dark code on a light background. Reversed codes (light on dark) work on some readers and not others. Low-contrast brand colours look excellent in a mockup and fail in a badly lit restaurant.

Print vector, not PNG

A PNG scaled up in a layout program turns fuzzy, and fuzzy module edges are exactly what a reader struggles with. Use the SVG or PDF export, which stays sharp at any size, and set the physical size in millimetres before sending it to print.

Test the actual print

Not the screen. Print one at final size on the final material — matte, gloss and textured stock all behave differently — and scan it with the cheapest phone in the office, in the light the customer will actually be standing in.

Material changes the answer

Size advice assumes the code is printed on something flat, matte and pale. Real substrates are not.

When to raise error correction instead

Error correction adds redundant data so the code still reads when part of it is obscured. It is measured in four levels, recovering roughly 7%, 15%, 25% and 30% of the code. Raising it makes the pattern denser for the same physical size, which means smaller modules — so it is not free, and raising it while shrinking the code makes things worse, not better.

Raise it when something will genuinely cover part of the code: a centre logo, a fold, a die-cut, a label edge. Leave it alone when the code will sit clean on a flat surface, and spend the space on making the code larger instead. Size beats redundancy almost every time.