QR Code Error Correction Explained (Levels L, M, Q, H)
What is QR code error correction?
QR codes have a remarkable feature: they keep scanning even when part of the code is dirty, damaged or covered. That's thanks to error correction — extra data (using Reed–Solomon coding) built into the code that lets a scanner reconstruct missing information.
The four levels
There are four error-correction levels, each recovering a different amount of the code:
- L (Low) — recovers up to ~7% of data. Smallest, densest code.
- M (Medium) — up to ~15%. A common default.
- Q (Quartile) — up to ~25%.
- H (High) — up to ~30%. Most robust, but holds less data at a given size.
The trade-off
Higher error correction means more resilience — but also more modules, so the code looks busier and needs to be printed larger to stay scannable. Lower levels give a cleaner, simpler code but less tolerance for damage.
Which level should you use?
- Clean digital use (websites, screens): L or M is fine.
- Print that may get scuffed (packaging, outdoor signage): Q or H.
- Adding a logo: use H — the higher correction lets the code tolerate a logo over the center. See how to add a logo safely.
Why logos work at all
When you drop a logo into the middle of a QR code, you're effectively "damaging" part of it. Error correction fills in the gap — which is exactly why branded QR codes with a center logo still scan, as long as the logo isn't too large.
Make a resilient QR code
Our generator builds codes with solid error correction so they scan reliably, logo and all. Create one now or browse all generators.
Make your QR code now
Free, with your logo and colors. No sign-up required.