June 1, 2026
QR Code Error Correction: Complete Technical Guide
QR codes are remarkably resilient. They can be partially damaged, obscured, or covered with a logo and still scan successfully. This resilience comes from error correction — specifically, Reed-Solomon error correction.
This guide explains how QR code error correction works and how to choose the right level for your use case.
What Is Error Correction?
Error correction is redundant data embedded in every QR code. When you scan a QR code, the scanner reads the data and the error correction information. If some parts of the code are damaged or obscured, the scanner uses the error correction to reconstruct the missing data.
Think of it like this: If you send a message with every letter written twice, the recipient can still read it even if some letters are smudged. QR code error correction works on the same principle but uses advanced mathematics.
The Four Error Correction Levels
| Level | Recovery | Best For |
|---|---|---|
| L (Low) | ~7% | Clean environments, controlled printing |
| M (Medium) | ~15% | General purpose, most use cases |
| Q (Quartile) | ~25% | Logos, moderate damage risk |
| H (High) | ~30% | Harsh environments, maximum durability |
Level L (Low)
- Recovers approximately 7% of damaged codewords
- Smallest QR code (fewest modules)
- Best for: Digital-only QR codes (not printed), controlled print environments, or when size is critical
Level M (Medium)
- Recovers approximately 15% of damaged codewords
- Default for most QR code generators
- Best for: General purpose, printed materials in good conditions, standard use cases
Level Q (Quartile)
- Recovers approximately 25% of damaged codewords
- Larger QR code than L or M
- Best for: QR codes with logos, outdoor signage, moderate wear and tear
Level H (High)
- Recovers approximately 30% of damaged codewords
- Largest QR code for a given data size
- Best for: Industrial environments, outdoor exposure, maximum reliability needed
How Error Correction Affects QR Code Size
Higher error correction requires more data modules, which means a larger QR code.
| Data Content | Level L | Level M | Level Q | Level H |
|---|---|---|---|---|
| 10 chars | 21×21 | 25×25 | 25×25 | 29×29 |
| 50 chars | 33×33 | 33×33 | 37×37 | 41×41 |
| 100 chars | 37×37 | 41×41 | 45×45 | 49×49 |
| 200 chars | 45×45 | 49×49 | 53×53 | 57×57 |
Real-World Damage Scenarios
Scenario 1: Logo Overlay
A QR code with a logo in the center covers approximately 15-20% of the code area.
- Level M: May fail (15% recovery, center damage may exceed 15%)
- Level Q: Works (25% recovery)
- Level H: Works easily (30% recovery)
Scenario 2: Outdoor Sign (Sun Fading)
UV exposure gradually degrades QR code contrast.
- Level M: May fail after 6-12 months
- Level Q: Works for 12-18 months
- Level H: Works for 18-24 months
Scenario 3: Scratched Surface
Minor scratches covering scattered areas totaling ~8%.
- Level L: Marginal (~7% recovery)
- Level M: Works (15% recovery)
- Level Q: Works easily (25% recovery)
Scenario 4: Business Card (Wallet Wear)
A QR code carried in a wallet for months.
- Level M: Marginal after 3 months
- Level Q: Works for 6-12 months
- Level H: Works for 12+ months
Creating QR Codes with Error Correction
Use a free QR code generator that lets you choose the error correction level:
- Select your content type
- Enter your data
- Choose error correction level (M for general, Q for logos, H for outdoor)
- Generate and test
Conclusion
Error correction is what makes QR codes reliable in real-world conditions. Choose level M for most cases, level Q if you need a logo, and level H for maximum durability.
Create QR codes with your chosen error correction level — generate codes with L, M, Q, or H correction for your specific needs.