← Blog · Print · 4 min read
How Big Should a Printed QR Code Be?
There is a working answer to this question, a rule of thumb you can measure rather than a matter of taste: one tenth of the distance the code will be scanned from. Everything else in this guide is that rule applied to real objects.
The one-tenth rule
The working ratio usually quoted is simple: a code is comfortable to read when its printed width is at least one tenth of the scanning distance. Read at arm’s length — say 40 cm — a code wants 4 cm. Read across a room at 3 m, it wants 30 cm. Round up, always: phone cameras vary wildly, older ones focus slowly, and real lighting is worse than your desk.
Worked examples
Business card — scanned in hand at 25–30 cm: 2.5–3 cm. That fits, which is why card codes work at all.
Table tent or counter card — 30–50 cm: 3–5 cm, standing upright so it faces the camera rather than the ceiling lights.
Wall poster — first scan attempt from 1–2 m: 10–20 cm of code, not the 4 cm square left over after the designer finished.
Vehicle or shopfront — 3 m and up: 30 cm minimum, and question whether a URL in large type would serve better.
Why data density moves the answer
The rule assumes a typical short URL. Every extra character adds modules to the grid, and at a fixed print size more modules means smaller modules — which is the same as printing smaller. A 250-character link at 3 cm is far harder to read than a 30-character link at the same size. Shorten what you encode before you enlarge what you print; the bulk generator names the densest row in a batch, and the version it needs, before anything is printed. The size reference tables give the module count and printed width for each QR version.
Measured: what your content does to module size
The rule is easier to apply with numbers in front of you. Each row below was encoded by this site's generator at error-correction level H, which the single generator always uses (the bulk generator lets you choose the level). The module width is the printed width divided by the modules across plus eight, for the four-module margin on each side.
| What the code holds | Modules across | Module at 2.5 cm | at 4 cm |
|---|---|---|---|
| Short link, 25 characters | 33 | 0.61 mm | 0.98 mm |
| Typical page address, 47 characters | 41 | 0.51 mm | 0.82 mm |
| Address with tracking tags, 126 characters | 61 | 0.36 mm | 0.58 mm |
| WiFi login, 66 characters | 49 | 0.44 mm | 0.70 mm |
| Contact card, 203 characters | 77 | 0.29 mm | 0.47 mm |
Read one row's last column against another row's first. The 126-character address printed at 4 cm has smaller modules (0.58 mm) than the 25-character link at 2.5 cm (0.61 mm). Shortening what you encode does the same job as printing larger, and costs nothing. Tracking tags are the usual culprit: an address that is mostly utm_ parameters can often lose them for print.
Sizes are in millimetres for a reason
Screens lie about size, so the print-sheet mode on the batch pages lays codes out in real millimetres on A4 or US Letter, with cut marks. One more print rule that outranks all of this: a printed code can never be edited afterwards, so make sure the address it carries is one you own — the static-versus-dynamic choice matters most at the moment of printing.
The print sheet lays codes out in real millimetres, with cut marks.
Open the bulk generator →