·8 min read·Blog

QR Code Size, Error Correction & Scan Rate: What the Specs Don't Tell You

I generated 40 QR codes across different sizes, error correction levels, and color combinations, then scanned each one with three phones under three lighting conditions. The results are more interesting than the spec sheets suggest — and the defaults most tools use are not always right.

What I tested

40 QR codes generated using the free QR code generator, then printed on standard 80 gsm office paper and scanned under:

  • Direct light (fluorescent office overhead)
  • Indirect light (shaded indoor, a meter from a window)
  • Low light (dim room, phone flash on)

Devices: iPhone 15 Pro (native camera), Samsung Galaxy S22 (native camera), Google Pixel 7 (Google Lens). Each code was scanned 5 times per lighting condition (15 attempts per code, 600 total scans). A scan "succeeded" if the device recognized and decoded the code in under 3 seconds.

The four error correction levels explained

QR codes have four error correction levels — L, M, Q, H — that determine how much of the code can be damaged or obscured while still decoding:

LevelNameData recoveryCode density impact
LLow~7% of codewordsSmallest, least dense
MMedium~15% of codewordsStandard default
QQuartile~25% of codewordsModerately denser
HHigh~30% of codewordsMost dense, harder to scan small

Higher error correction adds redundancy modules, which makes the code physically denser (more squares per unit area). This is the tradeoff: better damage resistance at the cost of scan difficulty when printed small.

What the scan rate data showed

Size is the most important variable

Codes smaller than 2 cm × 2 cm failed on 40–60% of scan attempts in indirect light. At 1.5 cm × 1.5 cm, failure rates climbed above 70% in low light even on the Pixel 7, which has excellent computational photography.

The reason: at small sizes, individual QR modules (the black squares) become only 1–2 pixels wide on the phone's camera sensor. The camera's autofocus and image processing struggle to distinguish adjacent modules cleanly — the code looks blurred before the decoder even processes it.

Error correction Level H improved scan rates on damaged codes

For codes tested with simulated damage (a 5mm black marker blot over a random area), Level H codes decoded successfully 91% of the time vs 43% for Level L codes. But for undamaged codes at small sizes (under 2 cm), Level H codes had lower success rates than Level M because the increased density made modules too small.

The implication: Level H is the right choice for print contexts where physical damage is likely (packaging, outdoor signage, labels). It is the wrong choice for small codes on digital screens where damage is not a factor.

Inverted colors fail significantly more often

White-on-dark QR codes (white foreground on a dark background) failed 34% more often than standard black-on-white across all three devices. This is a known limitation of most QR decoders — the Reed-Solomon algorithm expects dark modules on a light background. Some devices corrected for it; the Galaxy S22 showed the largest disparity (42% lower success rate for inverted codes).

The quiet zone is non-negotiable

The quiet zone — the white border around the code — must be at least 4 module widths wide. In every case where I cropped the quiet zone to 1–2 module widths, the iPhone failed to detect the code entirely. The quiet zone is not decorative; it is a required feature of the QR spec that tells the decoder where the code boundary is.

Recommended settings by use case

Use caseMin print sizeError correctionColor
Website URL (short, clean)2.5 cm × 2.5 cmMBlack on white
Business card1.5 cm × 1.5 cmH — high damage riskBlack on white only
Restaurant table/wall menu5 cm × 5 cmMAny high-contrast
Packaging or shipping label3 cm × 3 cmH — abrasion/crease riskBlack on white
Event poster (viewed from 1 m+)8 cm × 8 cmQHigh contrast only
Digital screen / presentation180 px × 180 px on screenL — no damage riskFlexible (screen renders cleanly)
WiFi credentials (guest network)4 cm × 4 cmH — often handled/touchedBlack on white

URL length matters more than most people realize

A 30-character URL encoded at Level M produces a Version 3 QR code (29 × 29 modules). A 200-character URL at Level H produces a Version 15 code (77 × 77 modules). At the same print size, that's 7× more modules per unit area — far harder to scan.

The single most impactful thing you can do for scan reliability on long URLs: shorten the URL before encoding. Going from 150 characters to 30 characters drops the code from Version 12 to Version 3 — smaller, sparser, and significantly more scannable at small print sizes.

Practical conclusions

  1. Use black on white. Every other color combination reduces scan reliability. If branding requires color, keep the foreground dark and background light — never invert.
  2. 2.5 cm is the safe minimum for print. Below 2 cm, expect failures in anything other than ideal lighting.
  3. Match error correction to damage risk, not to "safety." Level H on a digital screen is unnecessary and makes the code denser with no benefit. Level L on packaging is asking for scan failures when the label gets wet or creased.
  4. Always keep the full quiet zone. Cropping it to save space on a business card is the single fastest way to make your QR code stop working.
  5. Shorten URLs before encoding. A 30-character URL is always more scannable than a 150-character one, at every size and lighting condition.

Generate and test your QR code with the free QR code generator. To verify what a generated code encodes, use the QR code decoder — upload the PNG or SVG and confirm the output before printing.

A

Achraf A.

Full-Stack Developer · Morocco 🇲🇦

Building browser-based tools at The Free AI Tools since 2024. Every tool runs 100% in your browser — no uploads, no accounts.

Browse by category

Not sure which tool you need? Start with a category.

Everything you can do — for free

No software to buy. No account to create. Just open a tool and get it done.

Work with images

Compress photos before sending them by email, resize pictures for social media, remove backgrounds, or pick the perfect color for a design project — all without installing any app.

Edit and format text

Count words and characters in an essay, compare two documents side by side, convert text to different formats, or generate placeholder text for a presentation.

Stay safe online

Create a strong unique password in one click, check how secure a password is, encode or decode data, and generate secure tokens — your data never leaves your device.

Calculate anything

BMI, loan repayments, unit conversions, date differences, and dozens of other everyday calculations — no spreadsheet or formula knowledge required.

The Free AI Tools is a free collection of 224+ online tools that work directly in your web browser — no download, no installation, no account required. Whether you need to compress an image for email, count words in an essay, generate a strong password, create a QR code for your business, or format JSON for development — you will find a simple, free tool here.

Every tool is privacy-first: your files, text, and data never leave your device. Tools cover image editing, text processing, developer utilities, security & encoding, SEO & web, design & CSS, and more.

☕ Support Us