January 10, 2026
QR Code Error Correction: Why It Matters and How to Pick the Right Level
Every QR code contains built-in redundancy called error correction. This is what allows a code to remain scannable even when part of it is damaged, dirty, or covered.
Understanding error correction helps you choose the right QR code configuration for your specific use case. Use the wrong level, and your code may fail when you need it most.
What is error correction?
QR codes use Reed-Solomon error correction, a mathematical system that adds extra data to your code. This extra data allows the scanner to reconstruct missing or corrupted portions of the code.
Think of it like a puzzle with duplicate pieces. Even if a few pieces are missing, you can still see the full picture because enough pieces remain to figure out what goes where.
The four error correction levels
QR codes offer four levels of error correction, each allowing a different amount of damage:
| Level | Data Recovery Capacity | Best Used For |
|---|---|---|
| L (Low) | ~7% | Clean print, controlled environments |
| M (Medium) | ~15% | Standard use, light wear |
| Q (Quartile) | ~25% | Moderate damage, logos, wear |
| H (High) | ~30% | Heavy damage, logos, outdoor use |
The trade-off is simple: higher error correction means the QR code becomes slightly denser (more modules) and may need to be printed larger for reliable scanning.
When to use Level L (Low)
Choose Low error correction when:
- You are printing in controlled, clean environments
- The code will be digitally displayed (never touched or damaged)
- Maximum scan distance or minimal code size is critical
- The code will be used once and discarded
Examples:
- Event badges scanned once at registration
- Digital tickets displayed on phone screens
- One-time promotional flyers
- Product labels in clean retail environments
Level L gives you the smallest, least dense QR code. If you know the code will not be damaged, this is the most efficient choice.
When to use Level M (Medium)
Medium error correction is the safe default for most standard use cases.
Choose Medium when:
- You need a balance between code size and durability
- The code will see light handling or brief display
- You are not adding logos or custom designs
Examples:
- Business cards
- Standard marketing materials
- Restaurant menus (light handling)
- Office signage
Level M handles minor smudges, folded paper, or brief exposure without issues. It is what most QR code generators default to for good reason.
When to use Level Q (Quartile)
Choose Quartile error correction when:
- The code may get moderate damage or wear
- You want to add a small logo or graphic element
- Outdoor or high-traffic placement is planned
Examples:
- Product packaging that gets handled frequently
- Window signage exposed to weather
- Loyalty cards carried in wallets
- Codes with partial logo overlays (up to 25% coverage)
Level Q is the sweet spot for branded QR codes. It provides enough redundancy to handle a logo without sacrificing scannability.
When to use Level H (High)
Choose High error correction when:
- The code will face significant damage or wear
- You are overlaying a large logo (25-30% coverage)
- The code will be used in harsh environments
- Maximum durability is required
Examples:
- Equipment labels in factories
- Outdoor billboards and signage
- Codes embedded in products that may get scratched
- Vehicle-mounted QR codes
- Any code that might get dirty, torn, or partially destroyed
Level H is overkill for a clean office flyer, but it is essential when the code's survival is uncertain.
Adding logos to QR codes
One of the most common reasons to increase error correction is to add a logo or brand element to the QR code.
The key rule: your logo should cover no more than the error correction capacity allows. With Level H (30%), you can safely cover up to 30% of the code with a logo.
Best practices for logo overlays
Place the logo in the center — The three positioning squares (the larger squares in the corners) are critical for scanner recognition. Do not cover them.
Use high error correction — At minimum, use Level Q. Level H is safer for logos covering 20% or more.
Ensure sufficient contrast — The logo should not blend into the QR code modules. Light logos on dark codes or vice versa work best.
Test with multiple phones — Different camera software handles logo overlays differently. Test with various devices before going to production.
Keep the logo simple — Complex logos with fine details can interfere with scanning. Simple shapes and bold designs work best.
QRPro handles this automatically
QRPro automatically selects an appropriate error correction level based on your content type and settings. For most users, the default works perfectly.
However, Pro users have full control over error correction level selection, allowing them to optimize for specific use cases like logo overlays or outdoor signage.
Environmental factors that demand higher error correction
Dirty or dusty environments
Warehouse labels, outdoor signage, and codes on equipment in industrial settings will accumulate grime. Higher error correction compensates for obscured modules.
Repeated handling
Business cards, loyalty cards, and frequent-use items get worn. Level M is minimum for anything that changes hands regularly.
Weather exposure
Outdoor codes face rain, sun fade, and temperature cycling. Level Q or H is recommended for any permanent outdoor installation.
Printing on unusual surfaces
Code on fabric, curved surfaces, or uneven materials may have slight distortions. Higher error correction compensates.
Common mistakes with error correction
Using too low a level for logos — Adding a logo to a Level L code will likely make it unscannable.
Assuming clean conditions — Even carefully printed materials can get slight scuffs during distribution. Higher is safer.
Not testing the final product — Always scan your finished code with actual phones before printing in volume.
Ignoring the size trade-off — Higher error correction increases code density. You may need to print slightly larger to maintain scannability.
Quick decision guide
Answer these questions to pick the right level:
- Will the code be scanned only once, in perfect condition? → Level L
- Will the code be handled but not damaged? → Level M
- Will the code have a small logo or see moderate wear? → Level Q
- Will the code face significant damage, large logos, or harsh environments? → Level H
The bottom line
Error correction is not a setting to ignore. It directly impacts whether your QR code works when it matters.
For most uses, Level M is the sensible default. When in doubt, go higher — the cost is minimal, and the reliability gain is significant.
Need a QR code with the right error correction for your project? Generate one at QRPro. Pro users can fine-tune error correction levels for logo overlays and challenging environments.
Get 5 free QR templates + weekly growth tips
No spam. Just QR ideas that make the little square earn its keep.