What size to print a QR code
Start with distance divided by ten. Then check the second number, which is the one people forget.
The 10:1 rule#
A QR code should be about one tenth as wide as the distance it will be scanned from. It is a rule of thumb rather than a specification, but it holds up well in practice.
- Business card, read at 20 cm → 2 cm minimum
- Menu or flyer, read at 30 cm → 3 cm
- Shop window, read at 1 m → 10 cm
- Poster or A-board, read at 3 m → 30 cm
- Vehicle livery or billboard, read at 10 m → 1 m
Round up rather than down. Nobody has ever complained that a code scanned too easily.
The second number: module size#
The rule above ignores how much you encoded, which is why it sometimes fails. What a camera actually has to resolve is a single module — one small square. A denser grid at the same physical width means smaller modules.
The working minimum for consumer phone cameras is roughly 0.4 mm per module for good print on coated stock, and closer to 0.6 mm on uncoated or absorbent material. So:
minimum width = grid size × module size
A 25×25 grid at 0.4 mm needs 10 mm. A 57×57 grid — the same physical footprint but carrying a long tracking URL — needs 23 mm for exactly the same scan. That is why two codes that look alike behave completely differently on the same flyer.
The generator on this site shows the grid size in the readout under every code, so you can do this arithmetic before committing to a layout.
Take the larger of the two#
Work out the distance figure and the module figure, then use whichever is bigger. For most short links the distance rule wins. For contact cards and long URLs, the module rule usually wins and catches people out.
Material changes the answer#
- Coated paper, screen, vinyl: the numbers above work as-is.
- Uncoated and recycled stock: ink spreads, so add roughly 25%.
- Corrugated cardboard: ridges distort the grid. Add 50% and keep the code on a flat panel.
- Fabric and knitwear: weave sets a hard floor on module size. Expect to go much larger, and test on the actual textile.
- Laser etching and engraving: contrast is usually the limit rather than resolution. Test at several depths.
- Curved surfaces: keep the code under about a quarter of the visible curve so distortion stays recoverable.
Do not forget the quiet zone#
Add a blank margin of four modules on every side, outside the size you calculated. A 3 cm code on a 25×25 grid needs roughly 5 mm of clear space around it. Cropping this is one of the top causes of a code that will not scan.
Send vector, not pixels#
Give printers the SVG. It is resolution-independent, so the module edges stay perfectly sharp at any size, and there is no chance of a resampling artefact softening the pattern. If the printer insists on a raster file, supply the 2048 px PNG and never scale it up.