QR code error correction levels: L, M, Q and H explained
Error correction lets a damaged QR code scan anyway. The four levels recover 7, 15, 25 or 30 percent of the pattern, and each step up costs density.
A QR code with a scratched corner can still scan. Error correction builds redundant data into the pattern, so a reader can rebuild whatever a scratch, a smudge or a logo covers. You choose how much redundancy when you create the code, and the choice shapes how large it must print.
What do the four error correction levels mean?
The QR standard defines four levels, each able to recover a share of damaged modules:
- L recovers about 7 percent of the pattern. Largest data capacity, least protection.
- M recovers about 15 percent. The default in most tools.
- Q recovers about 25 percent.
- H recovers about 30 percent, the ceiling the standard allows.
The percentages come from Reed-Solomon coding, the same scheme that let scratched CDs keep playing. The reader detects which modules read wrong and reconstructs them from the redundant ones, up to the level's limit. Past the limit, the scan fails outright rather than degrading.
Which level should you pick?
Match the level to what the code will endure.
Pick H when a logo sits on the pattern. The logo hides modules the same way physical damage would, so the code needs maximum headroom to reconstruct what sits underneath. When you add a logo in our designer, it moves the code to H on its own.
Pick M for clean indoor print: a flyer, a table card, a page in a brochure. The default absorbs ordinary ink spread and minor wear without inflating the pattern.
Pick Q for codes that live rough. Outdoor posters fade, packaging gets scuffed in transit, and stickers collect fingerprints. The extra redundancy covers wear you can predict without seeing it yet.
Reserve L for screen-only codes carrying a lot of data, where nothing can wear, cover or crease the pattern.
What does a higher level cost?
Density. Redundancy takes up modules, so a code at H holding the same content needs a larger version of the pattern than the same content at L, with more and smaller modules inside the same square. Smaller modules need more print size to stay readable, which pushes your minimum up. The floors in our size chart assume M; leave extra margin when you print at H.
The practical rule: pick the level your situation demands and stop. Protection you never use shows up as a denser code that must print larger, and an oversized dense code on a business card serves nobody.
Short destinations soften the trade-off. A dynamic QR code encodes a short link rather than the full destination URL, so even at H the pattern stays sparse enough for small print. The long URL lives on the server where density has no meaning.
Does error correction fix a bad print?
Within limits. It recovers covered or damaged modules, and it does nothing for low contrast, a cropped quiet zone or a code printed below its minimum size. Those failures stop the reader before it ever reaches the redundancy: a camera that can't find the pattern's edges has nothing to correct. The sizing and printing guide covers those numbers, and a single proof print catches all of them at once.
Error correction is insurance against the damage you can't prevent. Size, contrast and quiet zone remain your job; the redundancy handles the coffee stain that arrives later.
Print a code you can still edit next year
3 dynamic QR codes free, with scan analytics. They never expire, even if you never upgrade. No card needed.
Create a free QR code