How small can a QR code be?
About 2 × 2 cm (0.8 × 0.8 in) for short content read at arm’s length. Below that, the individual squares approach the limits of both printer resolution and phone camera focus, and reliability falls away quickly.
That is a practical floor, not a specified one — and it only holds for short content. This is a spoke off the print guide, which covers the other five things that decide whether a printed code scans.
The one-tenth scan-distance rule
Size the code at roughly one tenth of the distance it will be scanned from. Read from one metre, make it ten centimetres; read from ten metres, make it a metre.
The rule is conservative by design. It assumes a mid-range phone camera rather than a good one, imperfect lighting, and a person who will not hold still — all of which are the normal case in a shop, a lobby or a car park.
A printable distance-to-size table
Applying the rule to the distances that actually come up:
| Where it lives | Scan distance | Minimum size | Comfortable size |
|---|---|---|---|
| Business card, product label | 20–30 cm | 2 cm | 2.5–3 cm |
| Table tent, menu, flyer | 30–50 cm | 3 cm | 4–5 cm |
| Shelf talker, counter sign | 50 cm–1 m | 5 cm | 8–10 cm |
| Poster | 1–2 m | 10 cm | 15–20 cm |
| Window display, wall graphic | 3–5 m | 30 cm | 40–50 cm |
| Trade show banner | 5–8 m | 50 cm | 70–80 cm |
| Billboard | 20 m+ | 2 m | 2.5 m+ |
Two adjustments. Scan distance is not viewing distance — a billboard is seen from 200 m and scanned from perhaps 20, often from a moving vehicle, so size up. And every figure above assumes short content; the next two sections explain why that matters more than anything else in the table.
The number that actually matters: module size
Everything above is a proxy for one real variable: the width of a single module — one small square in the grid. A scanner has to resolve individual modules, so module width is what decides whether a code works.
Below roughly 0.4 mm per module, two independent things start to fail: ink spread on press begins to close the gaps between modules, and many phone cameras cannot focus close enough to resolve them. A 2 cm code with a 25 × 25 grid gives you 0.8 mm modules, which is comfortable. The same 2 cm code with a 49 × 49 grid gives you 0.41 mm, which is on the edge.
0.254 mm
The module size in Denso Wave’s own worked print example — a 400 dpi printer at four dots per module. It is the only module-size figure the inventor of the format publishes, and it assumes a printing process considerably better than an office laser.
Why content length changes the answer
A QR code is a fixed grid, and the grid grows in steps as you add data. At medium error correction:
| Content length | Grid | Module size in a 3 cm code |
|---|---|---|
| 25 characters | 25 × 25 | 1.2 mm — comfortable |
| 100 characters | 41 × 41 | 0.73 mm — fine |
| 150 characters | 49 × 49 | 0.61 mm — getting tight |
| 300 characters | 65 × 65 | 0.46 mm — risky at this size |
So the cheapest way to make a code scannable is almost never to enlarge it. It is to shorten what you put in it:
- Drop
https://andwww., and use a short path —example.com/menurather than a full parameterised URL. - Move UTM parameters to a redirect on your own domain.
- For contact details, consider MECARD instead of a full vCard — see the vCard guide.
Raising error correction has the same effect in reverse: it adds redundant data, growing the grid and shrinking the modules. The error correction guide covers that trade-off properly.
How to test before you commit
Print at final size, on the real stock, and scan it from the real distance with at least two phones — one iPhone, one Android, and ideally one that is a few years old. A code that only scans on a current flagship is not finished.
Test in the lighting the code will actually live in, not at your desk. Specifically:
- A restaurant table in the evening is far darker than a design studio.
- A shop window gets glare across it for half the day.
- A warehouse label gets scanned at an angle, by someone holding a box.