How Big Should a QR Code Be When Printed? Real Numbers

Someone hands you a flyer with a QR code the size of a postage stamp, you point your phone at it, and nothing happens. Or the code on a shop window looks huge but nobody can scan it from the pavement. Print size is the single most common reason a QR code that worked fine on screen fails on paper — and it is easy to get right once you know the two numbers that matter.

The 10:1 rule of thumb

The distance a phone can scan from is roughly ten times the width of the code. Turn it around and you get your minimum size:

code width = scanning distance ÷ 10

This is a floor, not a target. Modern phone cameras with good light often beat it; a cheap phone in a dim restaurant will not. If you have room on the page, go 20–30% bigger than the rule says. Nobody has ever complained that a QR code was too easy to scan.

The number that actually matters: module size

The little black squares are called modules. A scanner needs each one to be big enough for the camera to resolve, and for the printer to reproduce cleanly. For offset or laser printing, keep modules at 0.4 mm or larger. For inkjet, thermal receipt printers, screen printing on fabric, or anything that bleeds, give yourself 0.5–0.6 mm.

Here is why this bites people: the more data you encode, the more modules you get, and at a fixed physical size those modules shrink.

| What you encode | Typical grid | Module size at 3 cm wide | |---|---|---| | Short URL (~25 characters) | 25 × 25 | 1.2 mm — very safe | | WiFi network with a 20-char password | 37 × 37 | 0.8 mm — fine | | Full vCard with name, two phones, email, address | 57 × 57 | 0.53 mm — borderline on cheap printing | | Long vCard plus a note field | 77 × 77 | 0.39 mm — expect failures |

So a vCard QR code on a business card genuinely needs more physical space than a URL does. If yours is coming out dense, trim the data: drop the fax number, the second address, the company slogan. Every field you remove makes the pattern coarser and the print more forgiving.

The same applies to WiFi QR codes — a 63-character random password produces a noticeably denser code than a 12-character one. That is fine on an A5 table tent card, less fine on a 2 cm sticker on the back of a router.

Don't forget the quiet zone

The spec calls for a clear margin of four modules on all sides — white, empty, nothing in it. Designers crop this off constantly because it looks like wasted space. It isn't; it is how the scanner finds the edges of the symbol.

On a 3 cm code with 0.8 mm modules that is about 3 mm of clear space all round. Do not run text, a border, a fold line or a photograph into it. If your code sits on a coloured background, the quiet zone should be the same light colour as the code's background, not the page colour.

Contrast, colour and logos

Dark code on a light background, always. Scanners read luminance contrast, not hue — so a mid-blue code on a mid-grey background can fail even though it looks perfectly readable to you. If you're customising colours in the generator, squint at the result: if the two tones look similar in greyscale, they're too close.

Inverted codes (light modules on dark) work in some scanning apps and not others. Avoid them on anything you can't reprint.

Adding a logo covers modules. Error correction can recover from that — but the recovery budget is shared with dirt, creases, ink spread and bad lighting. Keep the logo small (roughly a fifth of the code's width or less), centred, and always test the printed version, not the screen version.

Test before you print 5,000 of them

Print one at final size on the actual stock, at the actual printer. Then:

  1. Scan it with a cheap Android phone, not just your own.
  2. Scan it in the light the code will actually live in — a dim bar, a car park at dusk.
  3. Scan it from the distance a real person will stand at.
  4. Fold, scuff or wet it slightly if it's going somewhere rough.

One more thing worth saying plainly: QR codes generated by QRafty are static. The URL, network password or contact details are encoded in the pattern itself — there is no server in the middle, and there is no way to change where a printed code points once it is on paper. That is a privacy win (nothing is logged, nothing expires), but it means a typo in the URL costs you a reprint. Check the destination on the screen and on a test print before the job goes out.

Get the size and the quiet zone right, keep the data short, and the code will still scan in two years when it's faded and someone's coffee has been on it.

How Big Should a QR Code Be When Printed? Real Numbers | QR generator