← Blog

QR Code Size and Error Correction: Scans That Work

Most Failed Scans Are Size and Contrast Problems

A phone camera reads a QR code by resolving a grid of dark and light modules. When modules are too small, the colors too faint, or the surface too reflective, the camera can't find clean edges. Most codes that "won't scan" are perfectly valid — just too small or too low-contrast.

Sizing: One Millimeter per Module

The working rule: each module (little square) needs at least 1 mm. A 25×25-module code then measures 25 mm across. For distance, scale up: a table menu needs 2–3 cm, standing signs and posters 5 cm or more, and outdoor boards roughly 1 cm of extra edge length per meter of viewing distance.

📱 Handheld (10–20 cm): 2×2 cm minimum

📋 Tabletop / business card (30–50 cm): 3–4 cm

🖼️ Poster / sign (1 m+): 5 cm and up

📺 Outdoor / large screen: add ~1 cm of edge length per meter of distance

Choosing an Error Correction Level

QR codes rebuild damaged data automatically — part of the pattern can be smudged, folded, or covered by a logo and still scan. The four levels trade size for resilience:

🟢 L: recovers 7%, smallest code, clean digital screens

🟡 M: recovers 15%, the default recommendation — best balance of size and reliability

🟠 Q: recovers 25%, print that might scuff or fold

🔴 H: recovers 30%, logos in the center, curved surfaces, outdoor conditions

Higher levels mean more modules and a bigger code for the same data. If the payload is long — say a full article URL — shorten the link before jumping to H.

Four Printing and Material Traps

The Pre-Print Check

Before anything goes live, scan the code with two different phones — an iPhone and an Android — at the real usage distance. If either fails, change the material or increase the size. For bulk print runs, order a proof first; it's the cheapest insurance you'll ever buy.

FAQ

Smallest QR code for a business card?
2×2 cm is the handheld floor; 3×3 cm is safer. When card space is tight, protect contrast and the quiet zone first.
Can I put a logo in the center?
Yes, with level H error correction and a logo covering no more than about 20% of the code area. Build the logo into the generation step rather than pasting it on afterward.
→ Set size and error correction before you generate