On this page

A QR code that works on screen can still fail on paper. The screen is backlit, flat and always at full contrast. Paper is none of those things, and a print run locks in every mistake at once: too small, too dense, pale ink, no margin around the pattern. This guide gives you the print specification before you pay the printer.

How big should a printed QR code be?

Use the 10 to 1 rule: the code should be at least one tenth of the distance people scan it from. A code scanned from 30 cm away should be at least 3 cm wide. A code scanned from 2 metres away should be at least 20 cm wide. And never print smaller than 2 by 2 cm, whatever the distance, because phone cameras cannot resolve the pattern reliably below that size.

That minimum comes from the people who print codes for a living. QR Code Generator recommends 2 by 2 cm as the minimum for dynamic codes and 3 by 3 cm for static codes, and the size guides from QRolling, QRMake and QRTrac all converge on the same 2 cm floor for close range scanning (sources consulted 27 October 2026, see Sources and method below).

Where you print itTypical scan distanceMinimum printed sizeComfortable size
Business card15 to 20 cm2 by 2 cm2.5 by 2.5 cm
Table card or receipt20 to 40 cm2.5 by 2.5 cm3 to 4 cm
Flyer or brochure30 to 50 cm2.5 by 2.5 cm4 cm
Shop window sign50 cm to 1 m5 by 5 cm7 to 10 cm
Poster (A3)50 cm to 1 m3 by 3 cm5 cm
Van livery or banner2 to 5 m20 by 20 cm30 to 50 cm

Why do some printed codes refuse to scan?

Size is the first suspect, but four other causes fail just as often. Check them in this order, because each one is cheaper to fix than a reprint.

First, the quiet zone is missing. The quiet zone is the blank margin around the pattern, and scanners need it to find where the code starts. The standard requires four modules of clear space on all four sides, which works out at roughly 3 to 4 mm on a normal print. Designers shrink it to fit a layout, printers trim it off at the sheet edge, and the code stops scanning. Leave more margin than you think you need.

Second, the contrast is too weak. A scanner reads dark modules on a light background. Black on white always works. Dark grey on cream usually works. White on black works if the reader app supports inverted codes, but many older phones struggle, so avoid it on print. Brand colours are the classic failure: a pale terracotta code on a beige card looks elegant and scans never. If you colour the code, keep it dark and keep the background light and plain.

Third, the code is too dense for its size. A short web address produces a loose pattern with big squares. A long address, a vCard with five fields, or a paragraph of encoded text produces a dense grid of tiny squares that need more size to stay readable. If your code looks visibly denser than others you have printed, add 30 to 50 percent to every size in the table above, or shorten what the code contains. Pointing the code at a short page you control, the way a dynamic QR code on every table does, keeps the pattern loose.

Fourth, the material fights the phone. Glossy lamination reflects the ceiling lights straight into the camera. Curved surfaces, a van door rib or a coffee cup sleeve, distort the grid. Textured card soaks up ink and softens the edges of each square. None of these is a reason to abandon the print, but each is a reason to test on the real material, not on a laser print on office paper.

What resolution should the file be?

For anything up to A3, export the code at 300 DPI at its final printed size, or simply export it as SVG and let it scale without loss. A PNG grabbed from a screen preview, typically 72 to 96 DPI, looks fine on your monitor and prints as a soft blur where the scanner expects crisp square edges. This matters most for small codes: at 2 cm wide, every blurred edge eats into modules that are already tiny.

Keep the file in a vector format (SVG, PDF or EPS) from the generator to the printer, with no JPEG step in between. JPEG compression adds speckles inside the white modules, and a picky scanner reads speckle as data. If your printer asks for a specific format, convert at the end, not at the start.

How do you test a code before the full print run?

Test at the final size, on the final material, with ordinary phones. A test on screen proves nothing about print.

  1. Print one proof at exactly the size you will order. Not enlarged for convenience. If the table card will carry a 3 cm code, the proof carries a 3 cm code.
  2. Scan it with three different phones. A recent iPhone, a mid range Android, and the oldest phone you can borrow. If the oldest phone reads it in daylight and in warm indoor light, the print will survive your customers.
  3. Scan from the real distance and angle. Hold the table card on the table, stand where customers will stand for the window sign, walk past the van. Scan with the code under the actual lighting, including the evening spots if the sign stays up after dark.
  4. Check the quiet zone survived the layout. Look at the proof next to its neighbours: no text, logo or border should intrude into the margin, and the printer's trim marks should not eat into it either.
  5. Only then approve the run. Keep one proof from the delivered batch and scan it again, because printers sometimes shrink artwork to fit a sheet without telling you.

What if the code still fails after printing?

Do not reorder the same file and hope. First confirm the failure is real by scanning with two phones in good light, then work down the list: measure the printed size against the table, check the margin with a ruler, photograph it and zoom in to see whether the edges are crisp or blurred, and try a high contrast black on white reprint of the same file on plain paper. If the plain paper version scans, the problem is the material or the colours, not the size. If it still fails, the code is too dense for its size, so shorten the destination or print bigger.

One structural fix avoids most reprints entirely. A dynamic code points at a short link you own, so a mistake in the destination or a changed menu is fixed by editing the page, not by reprinting the card. That is the setup described in the table QR code guide, and the same logic covers a review QR code at the counter: print once, carefully, then never reprint for a content change.

Sources and method

Size minima, the 10 to 1 distance rule, the four module quiet zone and the 300 DPI export advice are the published recommendations of QR Code Generator (support article, minimum 2 by 2 cm dynamic and 3 by 3 cm static), QRolling, QRMake (citing ISO 18004:2015 for the 0.264 mm module minimum), QRTrac and the QR Code Handbook, all consulted on 27 October 2026. The table above merges their overlapping ranges into one practical chart; where they differ by half a centimetre, the larger value is shown. Fastpage pricing and product claims are deliberately absent from this article; the starting point for a page behind the code is the Fastpage home page.

Frequently asked questions

What is the minimum size for a printed QR code?
Never print smaller than 2 by 2 cm, and use the 10 to 1 rule above that: the code should be at least one tenth of the distance people scan it from. A code scanned from 30 cm needs 3 cm, a window sign read from a metre needs 10 cm. Dense codes holding long addresses need 30 to 50 percent more.
What is the quiet zone of a QR code?
The quiet zone is the blank margin around the pattern that scanners need to find where the code starts. The standard requires four modules of clear space on all four sides, roughly 3 to 4 mm on a normal print. Leave more rather than less, and check the printer does not trim into it.
Why is my printed QR code not scanning?
Work down the list: too small for the distance, missing quiet zone, weak contrast such as pale ink on a coloured card, a pattern too dense for its size, or a glossy or curved material that distorts the grid. Reprint the same file in black on plain paper: if that scans, the fault is the material or the colours, not the size.
What resolution should a QR code be for print?
Export at 300 DPI at the final printed size, or as SVG so it scales without loss. Never use a screen-resolution PNG or a JPEG: blurred edges and compression speckles are the most common cause of small codes failing. Keep the file vector from the generator to the printer.