QR Code Error Correction Levels Explained (L, M, Q, H)
What Is Error Correction?
QR codes include redundant data so they can still be read even if part of the code is damaged, dirty, or obscured. This is called error correction, and it's one of the reasons QR codes are so reliable.
There are four levels:
| Level | Recovery Capacity | Best For |
|---|---|---|
| L (Low) | ~7% damage | Clean digital displays |
| M (Medium) | ~15% damage | Standard print materials |
| Q (Quartile) | ~25% damage | Outdoor/warehouse use |
| H (High) | ~30% damage | Codes with logos, rough environments |
How It Works
QR codes use Reed-Solomon error correction — the same math used in CDs, DVDs, and satellite communications. The encoder adds extra data modules that allow the decoder to reconstruct missing information.
Higher error correction = more redundant data = denser QR code pattern = needs to be printed larger.
Which Level Should You Use?
Level L (7%) — Digital Only
Use for QR codes displayed on screens where damage is impossible. Produces the simplest (least dense) code.
- Website embeds
- App displays
- Digital signage (indoor, controlled)
Level M (15%) — Default/Standard
The best balance for most use cases. QRbuild uses M as the default.
- Flyers and brochures
- Business cards
- Product packaging (indoor)
- Menus
Level Q (25%) — Outdoor/Industrial
Use when codes face moderate wear.
- Outdoor signage
- Warehouse labels
- Construction site materials
- Shipping labels
Level H (30%) — Logos and Harsh Conditions
Required when you embed a logo (which physically covers part of the code). Also good for extreme environments.
- QR codes with logos (QRbuild auto-switches to H)
- Real estate yard signs (weather exposure)
- Factory floor labels
- Codes on textured surfaces
The Trade-Off
Higher error correction makes the QR code denser (more modules in the same space). This means:
- The code needs to be printed larger to remain scannable
- More data modules = more complex pattern
- Level H codes with long URLs can become very dense
Rule of thumb: Use the lowest level that's safe for your environment. Don't use H everywhere "just in case" — it makes codes unnecessarily complex.
Logo Impact
When you add a logo to a QR code, you're physically covering ~15-22% of the data area. That's why Level H (30% recovery) is essential — it gives enough headroom for the logo plus some additional damage tolerance.
QRbuild automatically switches to Level H when you upload a logo. You don't need to configure this manually.
Testing Matters
Regardless of error correction level, always test your printed QR codes:
- Scan with iPhone and Android
- Scan from the intended distance
- Scan in the actual lighting conditions
- Scan after any finishing (lamination, UV coating)
Create your QR code with the right error correction. Free generator — auto-optimizes for logos and content length.
About the author
QRbuild Team
The QRbuild team writes practical guides on QR codes, scan tracking, and print marketing. We build free tools that help businesses connect physical materials to digital experiences.