The short answer
- Width ≈ scanning distance ÷ 10. Scanned from 30 cm (a table card): 3 cm. From 1 m (a shop window): 10 cm. From 3 m (a poster across a room): 30 cm.
- Never below about 2 cm (0.8 in), even for a short link on a business card.
- Leave a light margin of at least four modules (the code’s small squares) on every side.
- Less content means fewer, bigger squares, so the same space holds a code that scans more easily.
- Print one proof and scan it with two phones before printing the batch.
Why the content changes the minimum size
A QR code is a grid of modules. The smallest, version 1, is 21 × 21. Each version adds four modules per side, up to 177 × 177 at version 40. The more text you encode, the higher the version, and at the same printed width each module gets smaller. A phone camera needs modules big enough to resolve, so the real limit is the size of a module, not of the code.
Our studio uses a rule from print tests (simulated office prints, read from simulated phone photos taken 15–30 cm away): at least 0.5 mm per module for codes up to 53 modules wide (version 9), at least 0.75 mm per module above that, and never less than 2 cm overall. Here is what that means for typical content at error correction level Q, the level the studio uses for codes without a logo:
| Content | Characters | Version (modules) | Smallest print |
|---|---|---|---|
| Short link (https://qrisland.com/r/AB12CD34) | 31 | 3 (29 × 29) | 2 cm |
| Wi‑Fi network, short name and password | 47 | 4 (33 × 33) | 2 cm |
| A typical page link | 54 | 5 (37 × 37) | 2 cm |
| A long link with tracking parameters | 121 | 9 (53 × 53) | 3 cm |
| Contact card: name, company, phone, email, website | 162 | 11 (61 × 61) | 5 cm |
| Calendar event with a location and a line of details | 264 | 14 (73 × 73) | 5.5 cm |
Sizes are for the code itself; the margin is extra. They assume a sharp print at 100% scale. The jump from 3 cm to 5 cm between the long link and the contact card is the 0.75 mm rule taking over at 57 modules. If a code has to be small, shorten what it holds: a short link instead of a long one with tracking parameters, or a link to a contact page instead of a full contact card.
The distance rule
Dividing the scanning distance by ten keeps the code a comfortable size in the camera’s view. Some printers use 8 or 12 instead of 10; it’s the same idea, and 10 is easy to work out in your head.
| Where | Typical distance | Code width |
|---|---|---|
| Business card, product label | 15–25 cm | 2–2.5 cm |
| Table tent, printed menu | 30–50 cm | 3–5 cm |
| Counter sign, door | 0.5–1 m | 5–10 cm |
| Shop window, wall poster | 1–2 m | 10–20 cm |
| Banner across a room | 3–5 m | 30–50 cm |
Use whichever is bigger: the distance rule or the module minimum. A contact card on a door read from a metre away needs 10 cm by distance, which is plenty. The same contact card on a business card can’t go below about 5 cm, which is most of the card, so link to a contact page instead.
Angle and light matter too. People scan posters from below and shop windows through reflections. If they’ll be at an angle, add a little. Glossy paper and lamination throw glare from ceiling lights, so matte is safer.
The quiet zone
The QR standard (ISO/IEC 18004) asks for a clear margin four modules wide on every side. Scanners use it to find where the code starts. A code printed edge to edge on a busy background, or with text right up against it, is one of the commonest reasons a print fails when the same file scans fine on screen.
For a 37-module code printed 3 cm wide, each module is about 0.8 mm, so the margin is about 3.2 mm on every side. Keep it the same colour as the code’s background, and don’t let crop marks, a frame or the edge of a table tent cut into it. Most generators include the margin in the downloaded file; check before you trim.
Error correction: L, M, Q and H
Every QR code carries spare data so it still reads when part of it is dirty, creased or covered. There are four levels:
| Level | Can restore about | Good for |
|---|---|---|
| L | 7% of the code | Screens and clean prints where small size matters most |
| M | 15% | A common default for general printing |
| Q | 25% | Codes that get handled, scuffed or printed on textured card |
| H | 30% | Codes with a logo over the middle, and rough outdoor use |
More correction means more modules for the same content, and so a bigger minimum print. The typical page link above is version 3 at level L but version 6 at H (41 modules). The long tracking link goes from version 6 at L to version 11 at H, which takes it past the 57-module line and from about 2.5 cm to 5 cm. A logo needs H, because it covers modules. Without one, Q is a good balance.
Send the printer the right file
Use a vector file (SVG or PDF) when you can: it stays sharp at any size. For a PNG, work out the pixels you need. At 300 dpi, a 5 cm code needs about 590 pixels across (5 ÷ 2.54 × 300). Never enlarge a small PNG: soft module edges are harder for cameras, and some programs smooth them further.
Watch for “fit to page” in print dialogs, which quietly shrinks or stretches your layout. Print at 100% or “actual size”, and measure the code with a ruler.
Test before the print run
- Print one proof on the real paper, at the real size.
- Measure it. If it came out smaller than planned, fix the scaling first.
- Scan it with at least two phones, an iPhone and an Android phone, one of them a few years old.
- Scan from the distance and angle people will use, in the real light: a dim restaurant, a sunny window.
- Check where it goes: a link should open the right page, a Wi‑Fi code should join the network.
Five minutes of this costs less than a reprint, and it catches what no size rule can, such as glare on a laminated menu.
Make it in QR Island
The studio works out the smallest safe size of your code as you type. The size hint beside the message bar shows it, allowing for the content, the error correction and the module shape you choose: dots, stars and other airy shapes need about a centimetre more than squares. The free print sheet lays the code out at true sizes on US Letter or A4, from that minimum up, and says roughly how far away each size scans from. Downloads keep the four-module margin, and the SVG scales to any size.



