QR error correction explained
How QR code error correction works, why a center logo and artistic styling still scan, and the four correction levels (L, M, Q, H).
QR error correction explained
QR codes can be partly dirty, damaged, or covered by a logo and still scan perfectly. That's not luck — it's error correction built into the QR standard. Understanding it helps you design codes that survive the real world.
How it works
QR codes use Reed–Solomon error correction, the same family of math used on CDs and in satellite transmission. Extra redundant data is woven into the code so that if some modules are unreadable, a scanner can reconstruct the original content from what's left.
The four correction levels
The QR standard defines four levels, trading data capacity for resilience:
| Level | Recovers up to | Trade-off | |---|---|---| | L (Low) | ~7% | Most data capacity, least resilient | | M (Medium) | ~15% | Balanced | | Q (Quartile) | ~25% | More resilient, less capacity | | H (High) | ~30% | Most resilient — survives logos and wear |
Source: the official QR specification, summarized by Denso Wave's QR error-correction page.
Why logos and art QR codes still scan
At the higher correction levels (especially H, ~30%), a chunk of the code can be covered or restyled and the data still recovers. That's exactly why:
- A center logo that covers a modest area doesn't break the scan (see How to add a logo).
- Artistic / AI-generated QR codes can blend an image into the pattern and remain scannable, because the generator preserves enough structure and contrast (see AI-art QR codes that still scan).
Practical takeaways
- Don't rely on error correction as an excuse to over-style — it's a buffer for real-world wear (smudges, low light, odd angles), and a big logo eats into that buffer.
- Keep the three corner eyes clean and high-contrast — error correction can't recover a code whose finder patterns are destroyed.
- Maintain the quiet-zone margin and strong contrast; those matter as much as the correction level.
FAQ
Can I set the correction level myself? QRhubly chooses sensible defaults that keep logos and styling scannable. Your job is to keep contrast high, the eyes clean, and logos modest.
If 30% can be covered, can I cover 30% with a logo? In theory, but don't — leave headroom for real-world damage. A center logo around 15–25% of the width is a safe target.
Does more data lower resilience? More encoded content means a denser code; combined with heavy styling it can get harder to scan at small sizes. Keep URLs short (dynamic codes help) and print large.
Next: Why did my QR code stop working? · Scannability best practices
Ready to make one? Open the QRhubly generator — free, no account needed.