How big should a QR code be?
Two numbers decide it: how wide one module ends up, and how far away someone stands.
What this covers
- The arithmetic that turns a payload into a printed width
- The ten-times-width distance rule and where it stops being true
- A printable table of symbol versions against physical width
- Why the quiet zone counts towards the size you have to reserve
What it does not
- Scanner hardware specifications, which vary far more than any general rule can cover
- Micro QR, which has different module counts and a two-module quiet zone
- Any promise that a size will work: the only proof is a scan of the real printed piece
The two numbers that decide it
Everything about QR code sizing reduces to one measurement: the width of a single module, the smallest black or white square in the grid. A decoder does not care how large the symbol is, only whether it can tell one module from its neighbour.
The module count follows from the version, and the version follows from how many bytes you encoded. A version V symbol is 4V + 17 modules across: version 1 is 21, version 10 is 57, version 40 is 177. Add the four-module quiet zone on each side and the total width you must reserve is (4V + 17 + 8) module widths.
The second number is distance. The field rule used across the industry is that a code reads from about ten times its own width. It is a rule of thumb rather than anything in the specification, but it is a good one, and it is easy to check against your own printed piece.
| Read from | Minimum symbol width | Typical placement |
|---|---|---|
| 30 cm | 3 cm | Menu, business card, packaging in the hand |
| 1 m | 10 cm | Poster at a desk, shelf-edge label, table tent |
| 2 m | 20 cm | Shop window, exhibition panel |
| 5 m | 50 cm | Lobby wall, trade stand backdrop |
| 10 m | 1 m | Hoarding, building wrap |
Working it out from the payload
Start with the bytes, not with the design. A 42-character URL at recovery level M fits version 3 exactly, which is 29 modules across. With the quiet zone that is 37 module widths. Printed as a 25 mm square, each module is 25 ÷ 37 = 0.68 mm — comfortable for any phone at arm's length.
Now let the same link grow to 200 characters because someone appended campaign parameters. At level M that needs version 10, 57 modules across, 65 with the quiet zone. In the same 25 mm square each module is now 0.38 mm. Nothing about the design changed and the code became materially harder to read.
There are only two ways out, and both are visible in that arithmetic: print it bigger, or encode fewer bytes. At 0.5 mm per module the 200-character version needs a 33 mm square. Trimming the link back to 42 characters brings it to 19 mm.
| Version | Modules | Width at 0.5 mm/module | Capacity at level M |
|---|---|---|---|
| 2 | 25 | 16.5 mm | 26 bytes |
| 3 | 29 | 18.5 mm | 42 bytes |
| 4 | 33 | 20.5 mm | 62 bytes |
| 6 | 41 | 24.5 mm | 106 bytes |
| 10 | 57 | 32.5 mm | 213 bytes |
| 15 | 77 | 42.5 mm | 412 bytes |
Why half a millimetre is the working floor
A camera has to land several pixels on each module to decide whether it is dark or light. Two pixels per module is the theoretical floor; three to four is where decoding becomes dependable once blur, angle and noise are in the picture. That is the real content of the ten-times rule: at ten widths, a typical phone camera is still putting enough pixels on each module.
The matching floor for paper is a range rather than a single figure: between 0.4 and 0.5 mm per module you are relying on good printing, good light and a recent camera at once, and below 0.4 mm ordinary office printing and older phone cameras start losing modules outright. Every table on this site is worked at 0.5 mm, the cautious end, so that a piece designed against it has somewhere to go. Offset printing with a dedicated imager reaches 0.3 mm and industrial marking goes far smaller, but neither describes a customer holding a phone over a menu.
- A code read at an angle loses effective width by roughly the cosine of that angle; a code on a shelf edge is always read at an angle.
- A code on a bottle or a cup wraps away from the camera, so plan the width across the flat part only.
- Behind glass, reflections take modules away rather than shrink them, which no size compensates for reliably.
- Anything scanned from a moving vehicle or an escalator should be well above the ten-times figure, because the camera gets one attempt.
The quiet zone is part of the size
Four modules of clear background on all four sides are part of the symbol, not padding around it. The decoder uses that margin to find where the code ends, and cropping it is the single most common reason a technically perfect code fails on a printed piece.
It has to be the background colour of the code, clear of borders, rules, cut marks and folds, and it counts towards the space you reserve in the layout. A 20 mm symbol with no room around it is not a 20 mm symbol, it is a smaller one with its edge removed.
- Encode the real payload, not a shortened test string, and note the version the workspace reports.
- Work out the module width: symbol width ÷ (modules + 8).
- If that is under 0.5 mm, make the code wider or the payload shorter before doing anything else.
- Print a proof at final size on the real stock.
- Scan it at the distance and angle the code will actually be read from, with the oldest phone you can find.