Skip to content

Guides

What size should a QR code be for print?

Almost every “minimum QR code size” answer gives you one number. There are really three constraints — how far away it is read, how much data you crammed in, and whether the file has the resolution to survive the printer — and the largest of the three wins.

Start with distance: the one-tenth rule

The working rule, and the only one most codes ever need, is that a QR code should measure at least one tenth of the distance it is scanned from. Read from 30 cm, print it 3 cm. Read from 2 metres, print it 20 cm. The ratio holds because it is really about how many pixels of the pattern land on the camera sensor, and that scales with the angle the code subtends, not with the paper it sits on.

Which means the size of your artwork tells you nothing. Ask instead where the reader’s phone will be:

  • Business card — read from 20–25 cm → 2–2.5 cm
  • Table tent or menu — read from 30–40 cm → 3–4 cm
  • A5 flyer, in the hand — read from 25–30 cm → 2.5–3 cm
  • Product packaging on a shelf — read from 30–50 cm → 3–5 cm
  • A2 poster on a wall — read from 1–2 m → 10–20 cm
  • Shop window, from the pavement — read from 2–3 m → 20–30 cm
  • Billboard — read from 20 m → 2 m, which is why most billboard codes are decorative rather than functional.

Treat every number above as a floor, not a target. Nothing breaks if a code is too big, and the failure mode of too small is invisible until the run is printed.

Then check density: the 0.4 mm module floor

A QR code is a grid of black and white squares called modules. The more you encode, the more modules the grid needs — and if the printed code stays the same size, each module gets smaller. That is the constraint the one-tenth rule quietly ignores, and it is why two codes at identical physical size can behave completely differently.

On ordinary print, keep each module at or above roughly 0.4 mm. Work it out by dividing the printed width by the number of modules across. A short URL might produce a 33 × 33 grid: at 2 cm that is 0.6 mm per module, comfortably fine. A full vCard can reach 77 × 77, and the same 2 cm gives 0.26 mm — below the floor, and it will scan on a good phone in good light and fail on a cheap one in a dim restaurant.

Two levers fix a code that comes out too dense. Cut the data — shorter URL, trimmed contact fields — or lower the error correction level, since level H reserves about 30% of the code for redundancy and pushes the grid up a size or two. Keep H only when you are placing a logo in the centre; otherwise Q or M leaves the pattern sparser and the modules bigger. The data-limit guide has the character budget for each grid size, read in either direction.

Leave the quiet zone alone

Every QR code needs four modules of blank margin on all four sides. Scanners use that border to locate the edges of the pattern, so a correctly sized code pressed up against a logo, a photograph or a block of colour can still fail. On a 3 cm code that margin is around 3–4 mm, and it has to match the code’s background colour — a white code on a dark card needs a white border, not a dark one.

This is the single most common cause of a code that looks right in the layout and does not work on paper. If yours is already printed and failing, the diagnosis ladder in why your QR code isn’t scanning walks the six causes in the order worth checking.

Export at a resolution the printer can use

Size on paper is only half the file question. A QR code is hard-edged geometry, which is exactly what suffers when a raster image is scaled up: the module borders go soft, and a scanner that cannot find a clean edge cannot rebuild the grid.

  • Vector (SVG or PDF) is the right answer whenever the printer accepts it. There is no resolution to get wrong, and the same file prints a business card and a shop window.
  • If it must be raster, export at 300 DPI of the final printed size. That is about 350 px for a 3 cm code, 1,200 px for 10 cm, and 2,400 px for a 20 cm poster.
  • Never upscale. Blowing a 300 px download up to poster size is the classic way to turn a valid code into a grey smudge. Regenerate at the size you need instead.
  • Avoid JPEG. Its compression invents soft artefacts exactly on the high-contrast edges the scanner depends on. PNG or vector only.

Proof it before the run

  1. Print one proof at final size on the actual stock. Gloss and spot varnish throw glare that matte does not, and glare defeats codes that pass on plain paper. If the run is a sheet of labels off a desktop printer, size survives the file and then dies in the print dialog — printing QR code labels covers the scaling setting that quietly shrinks every code on the page.
  2. Scan from the real distance, not from 10 cm away at your desk. Distance is the whole variable.
  3. Test one iPhone and one Android, in the light the code will actually live in — dim restaurant, bright pavement, whatever applies.
  4. Confirm the code goes somewhere permanent. Size is wasted effort if the destination is a redirect that expires; that trade-off is laid out in do QR codes expire?
  5. Keep the vector file. The next print run is free if you still have the SVG, and an afternoon of guesswork if you do not.