QR error correction levels, and why the default is usually right
Higher correction means a denser code, not a better one. Here is how to choose between L, M, Q and H.
By ShortFreeURL Team · 14 August 2026
What error correction actually does
A QR code stores redundant data so it can still be decoded when part of it is unreadable. Four levels exist: L recovers roughly seven percent of the code, M about fifteen, Q about twenty-five and H about thirty. That redundancy is not free — it occupies space, so the same content at level H needs a physically denser code than at level L.
The trade-off nobody mentions
Denser codes have smaller modules at the same printed size, and smaller modules are harder for a camera to resolve at a distance or in poor light. So raising the correction level to make a code more robust can make it less scannable, because you traded damage tolerance for resolution. This is why the highest level is not the safe default.
When to use M
Level M is the sensible default for almost everything: screens, flyers, business cards, email, packaging that will not be abused. It tolerates ordinary printing imperfection and a small smudge without inflating the code.
When to go higher
Choose Q or H when part of the code will be deliberately covered — a logo in the centre — or when the surface is genuinely hostile: outdoor signage that weathers, labels on curved bottles, anything that will be scuffed in transit. If you overlay a logo, the logo must not exceed the redundancy you added, and you must test the result rather than assume it works.
Keep the payload short and the code stays sparse
The most effective way to make a code robust is to encode less. A short link of twenty characters produces a far sparser grid than a URL with three tracking parameters, and a sparse grid at level M outperforms a dense grid at level H in nearly every real-world condition. This is the practical argument for always encoding a short link rather than a raw campaign URL.
Quiet zone and contrast still dominate
No correction level compensates for a missing margin or low contrast. Keep at least four modules of blank space around the code, use dark on light rather than the reverse, and avoid placing a code over a photograph. These three things affect scan success more than the correction level ever will.
Test the printed artefact, not the file
Print at final size on the final material and scan from the intended distance with a range of phones, including an older one and in dim light. A code that scans on a monitor and fails on matte packaging is a common and entirely avoidable outcome.

