QR Code Error Correction Levels Explained
Error correction is what makes QR codes resilient. Even if part of the code is damaged, obscured, or covered by a logo, it can still be scanned successfully.
The Four Levels
| Level | Recovery Capacity | Best For |
|---|---|---|
| L (Low) | ~7% damage recovery | Clean digital displays, maximum data capacity |
| M (Medium) | ~15% damage recovery | General purpose — default for most use cases |
| Q (Quartile) | ~25% damage recovery | Print materials that may get dirty or worn |
| H (High) | ~30% damage recovery | Logo embedding, harsh environments, outdoor signage |
How It Works
QR codes use Reed-Solomon error correction, the same algorithm used in CDs, DVDs, and satellite communications. The encoder adds redundant data patterns so the decoder can reconstruct missing information.
Higher error correction = more redundant data = larger QR code for the same content. It's a tradeoff between resilience and density.
When to Use Each Level
Level L — Maximum Density
Use when the QR code will be displayed on clean screens (websites, apps, digital signage) and you need to encode long URLs or large amounts of text.
Level M — Default Choice
Good balance for most applications. Works well on printed materials in normal conditions — flyers, business cards, packaging.
Level Q — Durability
Choose for materials that may be handled roughly, get wet, or accumulate dirt. Warehouse labels, construction site signs, outdoor temporary signage.
Level H — Logo Embedding
Required when placing a logo in the center of the QR code. The logo physically covers ~10-15% of the code, so you need H-level correction to maintain scannability. Our generator automatically switches to H when you upload a logo.
Impact on Size
For the same content, a QR code with H correction will have more modules (dots) than one with L correction. Example for a 50-character URL:
- Level L: Version 3 (29×29 modules)
- Level H: Version 5 (37×37 modules)
This means H-level codes need to be printed slightly larger for reliable scanning at the same distance.
Try It
Our free QR code generator uses Level M by default and automatically upgrades to Level H when you add a logo — the optimal setup for most users.