QR code error correction is one of the most important features of QR codes. It allows QR codes to remain scannable even when they're partially damaged, dirty, or covered by a logo.
In this guide, we'll explain QR code error correction levels L, M, Q, and H, their recovery capacities, when to use each, and how to choose the right level for your needs.
Key fact: QR codes can recover up to 30% of damaged data — making them remarkably resilient compared to barcodes.
Table of Contents
1. What is QR Code Error Correction?
Error correction is a built-in feature of QR codes that allows the code to be read correctly even when part of it is damaged, obscured, or dirty. It works by adding redundant data (Reed-Solomon error correction) to the QR code.
Think of it like a backup system — if some data is lost or corrupted, the QR code can rebuild the missing information using the redundant data.
Why does this matter?
- QR codes on printed materials can get scratched or dirty
- QR codes on packaging can be partially covered
- QR codes with logos have part of the code covered
- QR codes on curved surfaces can be distorted
Pro tip: Error correction is what makes QR codes reliable in the real world. Without it, QR codes would be as fragile as barcodes.
2. Error Correction Levels Explained
QR codes have four error correction levels. Each level offers a different recovery capacity:
Level L — Low (7% Recovery)
- Recovery: ~7% of the code can be damaged
- Best for: Clean printing, large codes, minimal damage
- Data capacity: Highest (most data storage)
- Use case: Digital QR codes, clean indoor printing
Level M — Medium (15% Recovery)
- Recovery: ~15% of the code can be damaged
- Best for: General use, good balance
- Data capacity: Medium
- Use case: Most everyday QR code applications
Level Q — High (25% Recovery)
- Recovery: ~25% of the code can be damaged
- Best for: Codes with logos or moderate damage
- Data capacity: Lower
- Use case: Branded QR codes, outdoor printing
Level H — Highest (30% Recovery)
- Recovery: ~30% of the code can be damaged
- Best for: Maximum protection, logos
- Data capacity: Lowest
- Use case: Heavy customization, logos, extreme conditions
Pro tip: Higher error correction = more reliable scanning but less data storage. Choose the right balance for your use case.
3. Comparison Table
| Level | Recovery Capacity | Data Capacity | Best For |
|---|---|---|---|
| L Low | ~7% damage recovery | Highest | Clean printing, digital use |
| M Medium | ~15% damage recovery | Medium | General use, good balance |
| Q High | ~25% damage recovery | Lower | Codes with logos, outdoor use |
| H Highest | ~30% damage recovery | Lowest | Maximum protection, heavy logos |
Quick guide: L = Most data, least recovery. H = Most recovery, least data. Choose based on your priority.
4. When to Use Each Level
Use Level L When:
- You need maximum data capacity
- The QR code is digital (not printed)
- The QR code is on clean, flat surfaces
- There's no risk of damage or obstruction
Use Level M When:
- You need a good balance of data and recovery
- Everyday use cases
- Printing on paper or posters
- Moderate risk of damage
Use Level Q When:
- You're adding a small logo to the QR code
- Printing on packaging or labels
- Outdoor or rough conditions
- You need good protection
Use Level H When:
- You're adding a large logo to the QR code
- Maximum protection is required
- Printing in harsh conditions
- Scannability is critical
Warning: Using Level H reduces data capacity significantly. For long URLs, you may need Level L or M.
5. Error Correction for Logo Embedding
When you add a logo to the center of a QR code, you're covering part of the data area. This is where error correction becomes essential.
For QR codes with logos, we recommend Level H:
- Level H gives you 30% recovery capacity
- This allows your logo to cover up to 30% of the code
- The code remains scannable even with the logo
Best practice: Always use Level H when embedding a logo. This gives your QR code the best chance of scanning successfully.
Logo Size Guidelines
- Logo should be no larger than 20-25% of the QR code size
- Use a transparent background for your logo
- Avoid covering the three finder patterns (corners)
- Test with multiple devices before printing
6. FAQs About QR Code Error Correction
What is QR code error correction?
QR code error correction is a built-in feature that allows QR codes to remain scannable even when partially damaged, dirty, or covered.
How many error correction levels are there?
There are four levels: L (low, 7% recovery), M (medium, 15% recovery), Q (high, 25% recovery), and H (highest, 30% recovery).
Which error correction level should I use?
Use Level L for digital codes, Level M for most printing, Level Q for small logos, and Level H for heavy logos or maximum protection.
Does error correction affect data capacity?
Yes. Higher error correction levels reduce data capacity. Level L stores the most data, Level H stores the least.
Can I add a logo to a QR code with Level L?
Not recommended. Level L offers only 7% recovery, which is insufficient for logo coverage. Use Level H for logos.
Can I choose error correction when generating QR codes?
Yes. QRastra allows you to choose the error correction level when generating QR codes — including Level H for logos.
Conclusion
QR code error correction is a powerful feature that ensures reliability in the real world. By choosing the right level — L, M, Q, or H — you can balance data capacity and damage recovery for your specific use case.
Ready to generate QR codes with the right error correction? QRastra lets you choose your error correction level — completely free, no login required.
Generate QR codes with error correction: Launch QRastra's QR generator and choose the right error correction level for your needs — completely free and private.