Every QR code includes built-in redundancy — error correction — that lets it still scan correctly even if part of it is damaged, dirty, or covered. Four levels control how much: here's what each one does and why it matters for design.
The four levels
| Level | Recovery | Best for |
|---|---|---|
| L (Low) | ~7% | Clean digital display, no logo, max data capacity |
| M (Medium) | ~15% | General-purpose default for most codes |
| Q (Quartile) | ~25% | Codes exposed to some wear or minor damage |
| H (High) | ~30% | A logo or design element covering part of the code |
Higher levels recover more damage but use more of the code's data capacity for redundancy rather than your actual content — which is why very high error correction on a code encoding a lot of data can require a physically larger code.
Why this matters for design, specifically
Error correction is the entire reason you can put a logo in the center of a QR code without breaking it. At High (H), the code can recover roughly 30% of its data — a centered logo covering part of the code is functionally similar to that much damage, and the scanner reconstructs the missing information from the redundancy. See adding a logo to your QR code for exactly how big that logo can safely be.
How to choose in practice
- No logo, digital-only, max data: Low (L) is fine — nothing covering the code, no physical damage risk.
- General-purpose default: Medium (M) — a solid balance for most real-world use.
- Print exposed to wear: Quartile (Q) — packaging or signage that might get scuffed or dirty over time.
- Adding a logo or design element: High (H) — required for anything covering part of the code.
Build yours in the editor → capyqr.com
- Capy QR automatically applies high error correction when you add a logo, so this isn't something you need to configure manually.
A logo-ready, high-error-correction code
Here's a Capy QR styled with high error correction, ready for a logo:
Frequently asked questions
- What is QR code error correction?
- Built-in redundancy that lets a QR code still scan correctly even if part of it is damaged, dirty, or obscured. Four levels — L, M, Q, H — trade off how much damage the code can tolerate against how much data it can hold at a given size.
- What do L, M, Q, and H actually mean?
- They're error correction levels, each recovering a different percentage of the code if damaged: L recovers about 7%, M about 15%, Q about 25%, and H about 30% — the highest level, using the most redundancy.
- Which error correction level should I use?
- Medium (M) is a solid general default. Use High (H) specifically when adding a logo or design element that covers part of the code — it's the level that makes that possible without breaking the scan.
- Does higher error correction make a QR code bigger?
- Yes — more redundancy means more data encoded for the same information, which can require a larger module grid at a given size, or a physically bigger code to keep each module easily scannable.
- Why does high error correction let me add a logo?
- Because the code can recover a large percentage of missing or obscured data at that level, a logo covering the center effectively 'damages' the code in a way the error correction can recover from — as long as the logo stays within the recoverable percentage.
Bottom line: error correction is what makes a QR code forgiving — use High whenever you're adding a logo, and Medium as a solid default otherwise. Ready to try it? Open the editor or browse more QR guides.
