QR error correction and how large to print

QR codes can lose part of their pattern and still decode. That spare capacity is error correction. It is why a coffee-cup stain, a centre logo or a slightly undersized print often still works — and why choosing H for a tiny business-card code is worth the extra dots.

L, M, Q and H

LevelRecovers aboutUse when
L7% damageClean screens, large prints, short URLs
M (default)15%Most posters, packs and slides
Q25%Outdoor stickers, slightly rough print
H30%Small cards, engraving, a logo in the middle

Higher correction stores the same message with more modules, so the code looks busier. For a long vCard that already looks dense, M is often clearer than H at the same physical size.

How large to print

PlaceShort side (minimum)
Business card20 mm (prefer 25 mm)
A6 flyer / table tent30–40 mm
A4 poster viewed at 1–2 m50–80 mm
Shop window across a pavement100 mm+
On-screen (slide, phone)at least 128 px, prefer 256 px

Always keep a quiet zone — a blank margin of about four modules — around the code. Cropping that white frame is a common reason a “perfectly sharp” print will not scan.

Colours and logos

  • Dark modules on a light background. Dark-on-dark and light-on-light fail.
  • Avoid red modules on black, and very pale grey on white.
  • A centre logo should cover under ~20% of the code and sit on a small light pad. The generator switches to H when you add a logo.
  • Download SVG for print: it stays sharp at 300 DPI. PNG is for screens and chat.

The QR generator exposes these options. Print one test copy and scan it in the lighting where people will actually stand.

If a test scan fails, first enlarge the print and restore the white margin. Only then raise error correction or drop the logo.

FAQ

Does a higher level make the code “stronger” on screen?

On a sharp large display, L or M is enough. H helps when pixels are few, the code is photographed from an angle, or part of it is covered.

Can I skip the white border?

You can draw it on a coloured poster, but leave a light, even margin of four modules. A busy background flush with the modules is a common scan failure.