What size should a QR code be?
There’s one number that answers this question for almost any printed QR code: divide the distance someone will stand from it, in the same units you’re designing in, by ten. That gives the minimum width the code needs to be. Once the viewing distance exceeds ten times the code’s width, a phone camera’s autofocus and the resolution of a typical sensor start struggling to resolve individual modules cleanly, and scans get unreliable in a way that feels random but isn’t — it’s a direct, predictable consequence of size versus distance.
The rule, worked through
Minimum width = viewing distance ÷ 10. It scales in either direction: closer viewing allows a smaller code, and a code viewed from further away needs to grow proportionally, not by a fixed amount. It’s also a floor, not a target — printing exactly at the minimum leaves no margin for a slightly worn phone camera, dim lighting, or a viewer standing a bit further back than you planned for. Where layout space allows, size up from the floor rather than to it.
Business card: roughly 15-20cm viewing distance
Someone holding a card up to scan it is typically 15-20cm away, which puts the minimum width at 1.5-2cm. In practice, printer dot gain at very small sizes makes 2cm a more comfortable floor than the raw arithmetic suggests — modules that small are sensitive to how cleanly your printer reproduces sharp edges, and a slightly blurred edge between modules is exactly what a scanner struggles with. This is one of the few placements where the rule and print-quality reality point to almost the same number, so 2cm square is a safe default — see our business card generator for the full sizing and quiet-zone detail specific to that layout.
Table tent: roughly 30-40cm viewing distance
A diner reading a table tent from where they’re sitting is usually 30-40cm away, giving a minimum width of 3-4cm. This is comfortably larger than a business card code and gives you real room to add a short label — “Scan for the menu” — without the code itself feeling cramped. It’s also large enough to tolerate a modest logo without needing to push right up against any error-correction ceiling, which matters if the table tent carries a restaurant’s branding — our table tent generator walks through the glare and lamination choices that matter at this size too.
Poster: roughly 1-3 metres viewing distance
Posters are where the rule earns its keep, because the natural instinct — keep the code a similar physical size to how it looked on a business card — is exactly wrong at this distance. At 2 metres, minimum width is 20cm; at 3 metres, it’s 30cm. A code that looks generously sized on a laptop screen while you’re designing the poster can be badly undersized once printed and viewed from across a room, which is precisely the gap between how something looks in a design tool and how it behaves in the environment it’s meant for.
Billboard: 10+ metres viewing distance
At highway or roadside distances, the rule produces numbers that feel almost absurd until you do the arithmetic: a billboard read from 15 metres needs a code at least 1.5 metres wide. Billboard QR codes fail constantly in the wild precisely because designers treat them as a small logo-sized element rather than running this calculation, and a code that looks proportionate in a mockup at normal viewing distance is nowhere near large enough once it’s scaled up onto an actual billboard and viewed from a moving car.
Why more data needs a physically bigger code, not just a bigger box
A QR code doesn’t just get printed bigger when you enlarge its box — the module count itself is fixed by how much data it holds, so a longer URL or a payload like a full vCard produces more modules packed into the same nominal size, meaning each individual module is smaller unless you also enlarge the code. This compounds with the distance rule rather than replacing it: a dense code carrying a long tracking URL, viewed from the same distance as a short one, needs to be larger still, because each module has less room to be resolved by the same camera at the same distance. If a code seems to need shrinking to fit a layout, shortening the underlying data — a short link instead of a long one — is often the better fix, since it reduces module count without touching the minimum-width calculation at all.
Applying it
Measure or estimate the real viewing distance before choosing a size, not the other way round. If you’re unsure, err toward the next size up rather than the exact minimum, and check the result with a validator that decodes the rendered code at a size close to its printed dimensions rather than trusting how it looks zoomed to fill a screen — a QR code that appears crisp at 100% browser zoom on a monitor tells you very little about how it will behave printed at 3cm and viewed from across a table.
Make a free QR code with QRCodeForge — every format free, no signup, and every code checked before you download it.