QR Code Free Forever QR Code Free Forever Create QR codes. 100% free. Forever. Make a QR code

Home · Guides

How Small Can a QR Code Be?

There is no minimum size for a QR code as such. There is a minimum size for one module — the smallest square in the grid — and everything else follows from how many modules your message needs.

The unit that matters

Ask "how small can a QR code be" and the honest answer is a question back: how many modules does it have? A 21×21 version 1 code and a 57×57 version 10 code printed at the same width are not the same problem at all. The second has modules less than half as wide, and it is module width that a camera either resolves or does not.

So the chain is: message length and error-correction level decide the version; the version decides the module count; the module count plus the minimum module size decides the printed width. Work it in that order and the answer stops being guesswork.

What we measured: five pixels per module

We generated the same code at a range of resolutions and put each one through a simulated camera — a fixed optical blur, sensor noise, and a small perspective error, repeated 40 times per setting with different noise seeds.

Six QR codes at increasing pixel resolutions with their measured decode success rates
The same symbol saved at six resolutions, shown at actual size. Below five pixels per module the decode rate falls off a cliff: four pixels read 78% of the time, three pixels never read at all.
5 pxper module for reliable reading
4 pxread 78% of attempts
3 pxnever read

Five pixels per module is the number worth remembering. It is not a property of QR codes; it is roughly what any sampling system needs to recover a square wave with confidence once blur and noise are in play. Different decoders will move it by a pixel in either direction.

From pixels to millimetres

To turn that into physical size, you need to know how many pixels of camera land on each millimetre of paper.

Take an ordinary phone main camera: about 4,000 pixels across the frame and a horizontal field of view near 65°. At a distance d, the frame is about 1.27 × d wide. Held 30 cm away, that is a frame roughly 38 cm across, so about 10.5 pixels land on every millimetre.

Five pixels per module then means a module of about 0.48 mm at that distance. For a 29×29 code, that is a symbol about 14 mm wide, plus the quiet zone.

Rounded for use: at reading distance, a module of half a millimetre is the floor and 0.6–0.8 mm is comfortable. Below about 0.3 mm you are into industrial scanners and macro lenses, not phones.

Why the usual rule is three times more cautious

The rule of thumb everyone quotes is 10:1 — the code should be a tenth as wide as the distance it is read from. At 30 cm that demands a 30 mm code, more than twice what the pixel arithmetic above allows.

The gap is not an error. The 10:1 rule is buying margin for everything the arithmetic ignores:

So: use 10:1 for anything you are printing and cannot re-print. Use the arithmetic when you need to argue with a designer about whether 12 mm can possibly work — it can, in a controlled setting, and it will fail in a car park.

Practical minimums

Where it livesRead fromMinimum widthComfortable
Business card20 cm20 mm25 mm
Product label20 cm20 mm25 mm
Restaurant table card30 cm30 mm40 mm
A5 flyer30 cm30 mm40 mm
Shop window1 m100 mm130 mm
Estate agent board3 m300 mm400 mm
Roadside sign10 m1 m1.3 m

Two corrections people forget. The quiet zone is outside these numbers: a 20 mm symbol needs 20 mm of clear space plus four modules of margin all round, so budget about 25 mm of layout. And the distance that matters is the distance someone will actually stand at, not the one in the design brief — people walk up to a poster to scan it, and nobody climbs a lamp post.

Shrink the payload, not the code

If a code is too big for the space, the productive move is almost never to shrink the square. It is to reduce how many modules the square has to contain.

How the payload maps to grid size is set out in how much data fits in a QR code, and the size-versus-damage trade in error correction explained.

Written by Manuel Llovet, who builds and maintains QR Code Free Forever. Published 2026-08-31, last checked 2026-09-08. Figures and measurements on this page were produced for this site; the method is described in each caption.

Make this code now

Free, no sign-up, and it never expires. Everything runs in your browser.

Open the generator

Keep reading