QR code size for print: the numbers that actually matter

Overall size is the number everyone looks at. Module size is the number that decides whether it scans.

· 6 min read

Two numbers, not one

People size QR codes by how big the square looks. The decoder does not see a square — it samples individual modules, and what matters is how large each of those is in millimetres.

Module size = printed width ÷ module count.

Two codes printed at an identical 25mm can behave completely differently. A short URL produces a 25×25-module code with 1.0mm modules. A long URL with campaign parameters produces a 53×53-module code with 0.47mm modules. Same size, same printer, and only one of them reliably scans.

The distance rule

The widely used guideline is that a code should be about one tenth of the distance it is scanned from. It is a rule of thumb rather than a specification, and it is conservative enough to be useful.

PlacementTypical distance Minimum size
Business card20–25cm20mm
Table tent, menu30–50cm30–40mm
Product packaging20–30cm20–30mm
Flyer or poster (handheld)30–60cm30–60mm
Window decal1–2m10–20cm
Van or vehicle2–4m20–40cm
Yard sign3–5m30–50cm
Billboard10m+1m+

Yard signs are where this rule bites hardest. Almost nobody prints a 40cm code on a sign, which is why so many of them go unscanned.

Module size floors

Having picked a size from distance, check the module size holds up:

  • 0.5mm — absolute floor, clean indoor print on coated stock, scanned carefully at close range.
  • 0.75mm — anything handled, outdoors, or on uncoated card.
  • 1.0mm or more — vehicle graphics, signage, anything scanned in motion or in poor light.

If the distance rule and the module floor disagree, take the larger. If that is impossible, shorten the content rather than shrinking the modules.

Shortening the content

The most effective size optimisation is encoding less. A dynamic code's address stays around 30 characters regardless of how long the destination is, which keeps the code at a low version with large modules.

If you must use a static code, point it at a short URL on your own domain (yoursite.com/menu) rather than a long path with parameters. The gain is real: dropping from 180 characters to 25 can take a code from version 9 down to version 2, roughly doubling the module size at the same printed dimensions.

Print production details

  • Use vector. SVG, EPS or PDF. A raster PNG scaled up in a layout tool produces soft module edges.
  • Mind dot gain. Flexographic and offset printing spread ink, which thickens dark modules and effectively shrinks the light ones. Print larger than the digital proof suggests and talk to the printer.
  • Matte over gloss anywhere there is direct light.
  • Keep it off folds and curves. A code across a carton crease will crack along it.
  • Raise error correction outdoors — Q or H buys tolerance for dirt, rain and scuffing.

Working it out in practice

Our generator shows version, module count and a recommended minimum size for the exact code you are making. If you are sizing a code by eye and it is failing at what looks like a generous size, calculate the module size first — the answer is almost always there.

Related questions

What resolution should I export at?

Use vector (SVG, EPS, PDF) and resolution stops being a question. If you must use PNG, export at a pixel size at least 10× the printed millimetre dimension, so a 30mm code wants 300px minimum — and prefer more.

Can a QR code be too big?

Practically, no. Very large codes scanned from very close can fall outside the camera's frame, but the fix is simply stepping back. Too small is the failure mode that actually happens.

Related reading