Scanning distance sets the practical minimum for a QR code's size, more than any single rule of thumb does. A phone can read a code from about ten times its own width, so a code held at arm's length can be much smaller than one meant to be read across a room, and a business card follows different rules than a storefront window even from the same file.
Content length raises that minimum too: a short link needs fewer modules than a long URL or a full WiFi password. As a starting point, print a close-range code no smaller than about 20 mm (0.8 in) on a side, then scale up from there.
Working out the right minimum for your use
Estimate the real scanning distance
Arm's length on a business card is roughly 25–30 cm; a poster or sign might be scanned from 1–3 meters away.
Apply the ten-to-one rule
Divide the scanning distance by ten to get a rough minimum code width — a 2-meter scan distance suggests a code around 20 cm across.
Check the floor for close-range printing
Regardless of the math, don't go below about 20 mm on a side for anything printed, since phone cameras struggle to focus at extremely small physical sizes even up close.
Account for how much data the code holds
A short URL keeps the module count low even at a small size; a long link or a WiFi password with a complex key adds modules, which needs a larger printed size to stay scannable.
How module count changes the real minimum
A QR code is built from a grid of square modules — the smallest version holds a 21×21 grid, and the grid grows in steps of four per side (25×25, 29×29, and so on) as more data is packed in. A short link might fit comfortably in a smaller grid, while a long URL, a full WiFi credential string, or a vCard with several fields pushes the code into a denser grid with more, smaller modules at the same overall physical size — which is why two codes printed at an identical size can have very different real-world minimums.
The quiet zone is part of the size, not extra space around it
Every QR code needs a clear margin around its outer edge — at least four modules wide on each side — for a scanner to reliably detect where the pattern starts and stops. That margin isn't optional whitespace to be trimmed for a tighter layout; cropping into it is one of the most common reasons a code that looks fine fails to scan.
Error correction trades size for damage tolerance
A QR code can be built with one of four error correction levels — L (about 7% of the code can be damaged or obscured and still scan), M (about 15%), Q (about 25%) and H (about 30%) — and a higher level adds more redundant data to the same grid, which either increases the module count or requires a larger physical size to keep each module clearly readable. A logo placed in the middle of a code needs the added redundancy of level H, which is why adding one raises the effective minimum size.
What actually determines the module grid
The amount of text encoded — a short link versus a long one, a WiFi password versus a plain URL — sets the base module count before error correction is even applied, which is why the same physical print size can hold a comfortably large module for one code and a cramped one for another.
https://example.com/short-linkMatching size to where the code will actually be scanned
A business card or product label gets scanned close up and needs the roughly 20 mm floor; a poster or storefront window is read from farther away and should scale to keep pace with the ten-to-one distance rule rather than staying at the printed minimum.
Print it at least 20 mm (2.0 cm) wide
Where printed codes fall below a working size
Using the same size for every application
A size that works on a business card scanned up close will be far too small on a sign meant to be read from several meters away.
Cropping into the quiet zone to fit a layout
Trimming the clear margin around the code to save space is one of the most reliable ways to break an otherwise correctly sized code.
Not accounting for a long URL or WiFi password
A code with more data packed into it needs to be printed larger than a simple short-link code at the same scanning distance.
Shrinking a code that already has a logo
A logo raises the required error correction level, which adds density to the grid — shrinking the code further on top of that compounds the risk of a failed scan.
Size math doesn't change between static and dynamic
A dynamic code's short link is typically shorter than the original destination URL, which can slightly reduce module count compared to encoding a long link directly — but the sizing rules above apply the same way regardless of whether the code is static or dynamic.
How dynamic QR codes workTypical minimums for common print pieces
- A business card, scanned from about 25 cm: roughly 20 mm.
- A restaurant table tent, scanned from about 40 cm: roughly 40 mm.
- A retail shelf label, scanned from about 30 cm: roughly 25–30 mm.
- A storefront window or poster, scanned from 2–3 meters: roughly 20–30 cm.