QR Code Size Guide: Flyer, Poster, Billboard, Table Tent

The flyer goes to print on Friday. Someone asks how wide the QR code should be. Nobody in the room knows, so a number gets picked.
Take the distance people will scan from and divide it by 10. A code read from 30 cm wants about 3 cm. A poster read from 2 m wants about 20 cm. QR code size is a printing decision, not a rule handed down by the standard.
That rule of thumb is useful. It is also not official, and it breaks in one very common case. Every number below is labelled with where it came from.
Is there an official minimum QR code size?
No. The standard behind QR codes is ISO/IEC 18004. It defines modules — the small dark and light squares — and how data is packed into them. It sets no physical size at all: not in millimetres, not in inches, not in pixels.
A QR code has a module count, not a width. Version 1 is 21 modules a side. Version 40 is 177. How wide you print each module is your call.
You will see "1 cm × 1 cm" quoted as the official minimum. It is not official. The figure is repeated everywhere, including by Nielsen Norman Group, and no standard states it.
The only floor that traces back to the inventor is smaller and stranger. Denso Wave's FAQ puts the minimum at "0.17 mm x 21, that is, 3.57 mm or so". That is the smallest module a laser printer can lay down, times the 21 modules of a version 1 code. It is a printing limit for lab conditions. Do not design a menu around it.
Where does the divide-by-10 rule come from?
Nielsen Norman Group. It appears in their QR-code usability guidelines, written by Tanner Kohler and published in February 2024. Their wording: "for every 10 cm of distance to the code, add an extra 1 cm to the length and width of the code."
NN/g present it as a rule of thumb, and that is exactly what it is.
It is not in ISO/IEC 18004, which sets no sizes. It is not in Denso Wave's page on module size either. That page covers printer dots and scanner limits, and gives no distance formula at all.
So the 10:1 rule is a sensible starting point from a respected research firm. It is not a standard, and nobody should cite it as one.

How wide for a flyer, poster, billboard or table tent?
Every row below assumes the same code: a short link, version 3, which is 29 × 29 modules, at error correction level H. Change the payload and the numbers move.
| Where it goes | Scanned from | 10:1 width (rule of thumb) | What we would print (rule of thumb) | Module size at that width (arithmetic) |
|---|---|---|---|---|
| Table tent | about 30 cm | 3 cm | 4–5 cm | 1.4–1.7 mm |
| Flyer or menu | about 30 cm | 3 cm | 3–4 cm | 1.0–1.4 mm |
| Poster, indoors | about 2 m | 20 cm | 20–25 cm | 6.9–8.6 mm |
| Shop window | about 3 m | 30 cm | 30–40 cm | 10–14 mm |
| Billboard | 20 m or more | 2 m | 2 m or more | 69 mm or more |
Three of those five columns are estimates, one is arithmetic, and none of them is a standard. The module sizes are just the printed width divided by 29.
A table tent sits above the 10:1 line on purpose. People approach it from odd angles, and the card gets creased and greasy within a week. A poster behind a counter is really a 4 m code, so measure where people can actually stand. For per-setting advice, the QR codes for business guide covers restaurants, retail and events.
The billboard row needs a warning, and this part is our opinion rather than a finding. At 20 m the viewer is moving, often in a car, and cannot hold a phone steady against sky glare. Most billboard codes fail for human reasons long before they fail optically. A short, memorable web address does that job better.
The flaw in the 10:1 rule
The rule takes a distance and hands you a width. It never asks how much data the code carries. That is the part that bites.
Module size is what the camera actually has to resolve:
module size = width ÷ (17 + 4 × version)
Follow the rule and print at distance ÷ 10:
- Version 3, at 29 modules a side, gives you modules of distance ÷ 290.
- Version 10, at 57 modules a side, gives you modules of distance ÷ 570.
Same width, same rule, half the module size. The 10:1 rule is quietly calibrated for a short payload. Pack a long URL into the same square and you have halved your resolution, while the rule still says you are fine.
Why a short link prints bigger than a long one
This is the real reason to shorten a URL before printing it, and it has nothing to do with looking tidy.
QR capacity comes in steps called versions. They run from 1 to 40, and each side holds 17 + 4 × version modules. More characters push you up a version, and a higher version packs more modules into the same printed square.
Take two addresses, both at error correction level H:
https://clik.so/xY7kP2is 22 characters. That fits version 3: 29 modules a side.- A 100-character campaign URL, the kind UTM tags produce, lands on version 10: 57 modules a side.
Print both of them 30 mm wide. The short one gets 1.03 mm modules. The long one gets 0.53 mm modules. Each module in the dense code is about half the width and about a quarter of the area.
That is a resolution argument, not a taste one. It is also the whole case for a dynamic QR code. The printed square holds a short redirect, and the long URL sits on a server where its length costs nothing.

Does level H make a code easier to scan?
Not always. This one catches out a lot of designers.
ISO/IEC 18004 gives four error correction levels. They allow recovery of 7% (L), 15% (M), 25% (Q) and 30% (H) of the code's codewords. A codeword is a block of 8 modules, so the budget is spent in blocks, not in square millimetres.
Here is the catch. More error correction means more codewords. More codewords can push you up a version. A higher version means smaller modules at the same printed width.
That same 22-character short link sits on version 2 at level M, and version 3 at level H. Printed 30 mm wide, that is 1.20 mm modules against 1.03 mm. Level H buys damage tolerance and pays for it in module size.
Denso Wave notes that level M is the one most people select. Reach for H when the code carries a logo, or lives on a rough, greasy or weathered surface.

The quiet zone is part of the size
A QR code needs clear space around it. ISO/IEC 18004 says the symbol "shall be surrounded on all four sides by a quiet zone border". Denso Wave's FAQ gives the width. Their words: "A white space worth 4 modules is needed around it if you actually want to put it to use."
Four modules on each side adds 8 modules to the total. A 29-module code becomes a 37-module footprint. So the space you clear in the layout is about 1.28 times the width of the code.
A 4 cm code needs roughly a 5.1 cm gap. Squeeze that border and the scanner can fail to find the code at all. It is the first thing to check when a QR code will not scan.
A lower-case slug costs you capacity
Almost nobody mentions this one, and it can move you up a version on its own.
ISO/IEC 18004 has a compact alphanumeric mode. It holds digits, upper-case A to Z, and nine other characters: space, $, %, *, +, -, ., / and :. There is no lower-case letter in it.
So a single lower-case letter forces that part of the link into byte mode. Alphanumeric mode packs a character into 5.5 bits. Byte mode spends 8 bits. Lower case costs you about 45% more bits for the same text.
Do not fix this by shouting an existing link. The domain is case-insensitive, but the path after the slash is not. So /XY7KP2 is a different page from /xY7kP2, unless your shortener is built to serve both. Ask for an upper-case slug when you create the link, or leave it alone.
FAQ
What is the smallest QR code that still scans?
There is no official minimum. Denso Wave's printing floor works out at about 3.57 mm, but that is an industrial figure for a perfect version 1 code. For print, Nielsen Norman Group recommend 2 cm × 2 cm as a practical minimum. Treat that as advice, not as a rule.
Does a bigger QR code always scan better?
Up to a point. Very large is fine, because people simply step back. The trap is the other end. Some phone cameras need about 12 to 15 cm before they can focus. A small code makes people lean in, and then the image blurs. The fix is a bigger code, not a closer phone.
Does the white border count in the size I give the printer?
Give the printer both numbers. The widths in the table above are the code itself. The clear space is four modules on every side, which adds roughly 28% to the footprint. Designers who size the gap in the layout to the code width cause a lot of failed scans.
What file should I send to print?
Send vector art, such as SVG, PDF or EPS, so nothing gets resampled on the way. If it has to be a raster file, export at 300 DPI or more at the final printed size. Denso Wave's own guidance is four or more printer dots per module.
Try it before it goes to print
Make the code, print one copy at the real size, and tape it where it will actually live. Then scan it with a new phone and an old one, in the light that room really has. The free QR code generator from clik.so makes one in the browser, with no account needed.

