QR code error correction levels explained
QR codes have four error correction levels — L, M, Q and H — that can rebuild roughly 7%, 15%, 25% and 30% of a damaged or obscured code. Higher levels survive more damage but make the code denser. For most printing, M is the sensible default; choose H only when you’re placing a logo or printing for harsh conditions.
Error correction is the reason a QR code still scans with a coffee ring across it or a logo in the middle. It’s built into the standard, and understanding the four levels helps you choose between durability and a cleaner, easier-to-scan grid.
How error correction works, briefly
When a QR code is created, extra data is woven in using Reed–Solomon coding — the same family of maths that protects CDs and broadcast signals. This redundancy lets a scanner reconstruct missing or damaged modules from what remains. The more redundancy you add, the more damage the code tolerates, but the more modules it needs, so the grid gets denser at the same physical size.
The four levels
| Level | Recovery capacity | Best for |
|---|---|---|
| L (Low) | ~7% | Clean digital display, screens, very long data where size matters |
| M (Medium) | ~15% | General-purpose printing — the common default |
| Q (Quartile) | ~25% | Industrial or outdoor use with expected wear |
| H (High) | ~30% | Codes with a logo, or harsh environments |
The percentages are of the total codewords that can be restored, not a precise share of the printed area, but as a working mental model: at level H, you can lose nearly a third of the code and still scan it.
Why higher isn’t automatically better
It’s tempting to pick H for everything “just in case”. The catch is density. Adding redundancy adds modules, so an H code carries a finer grid than an L code holding the same data. At a fixed print size, finer modules are harder for a camera to resolve — which means a maxed-out error correction level can, perversely, make a small code less reliable than a lower level would. Our print size guide explains the module-resolution trade-off in detail.
The rule of thumb: match the level to the real risk. No damage expected and a clean surface? L or M keeps the grid coarse and forgiving. Logo in the middle, or a code destined for a warehouse floor? H buys back the margin you’re about to spend.
Error correction and logos
Placing a logo over the centre of a QR code works precisely because of error correction — the logo is “damage” the code can recover from. To do it safely:
- Use level H, and keep the logo well under the 30% budget — aim for 15–20% of the area at most.
- Keep it central. Never cover the three large corner squares (the finder patterns) — those are how a scanner locates and orients the code, and no error correction can replace them.
- Test on several phones before printing. A logo that scans on a new iPhone may defeat an older Android.
Outdoor and industrial use
For codes exposed to weather, abrasion or partial obstruction, Q or H gives a real durability margin. Pair the higher level with practical protection: laminate or UV-resistant material, a generous quiet zone, and a larger print size than the distance rule strictly requires. Error correction is a safety net, not a substitute for printing the code well in the first place.
What about very large data?
A single QR code can hold up to about 4,296 alphanumeric characters at the lowest error correction level. Push toward that limit and the grid becomes extremely dense; raising the error correction level reduces the usable capacity further. If you’re encoding a lot of text, keep error correction at L or M and, better still, shorten the data — a link to a page almost always beats cramming the content itself into the code.
Generate a clean QR code with reliable error correction — free, no sign-up, never expires.
Generate a QR codeFrequently asked questions
Level M (about 15% recovery) suits most printed codes. It balances durability against a grid that stays easy to scan. Move up to H only for logos or harsh conditions.
At a fixed amount of data, yes — it adds modules, so the grid is finer. At a fixed physical size that means smaller modules, which can be harder to scan. Match the level to the actual risk of damage.
Up to roughly 30% at level H, around 25% at Q, 15% at M and 7% at L — provided the three corner finder patterns stay intact.
No. The three large corner squares are how a scanner locates the code. If a logo or damage covers one, no error correction level can recover it.
Not noticeably. Decoding is near-instant at every level. The practical difference is durability versus density, not speed.