QR error correction

QR Code Error Correction: L, M, Q and H Explained

QR Codes can recover from some dirt or damage by storing error-correction data. The four levels are not image-quality settings: they change how much redundancy is added and therefore affect how dense the finished symbol becomes.

Updated September 14, 2026

Quick answer

QR Code levels L, M, Q and H provide increasing error-correction capability. DENSO WAVE lists approximate restoration rates of 7%, 15%, 25% and 30% of total codewords respectively. Higher levels improve damage tolerance but add redundancy, which can require a larger QR version for the same payload. Level M is a practical default for many clean everyday uses; choose Q or H only when the environment justifies the extra density.

L, M, Q and H at a glance

LevelApprox. codeword restorationTypical trade-off
L7%More payload efficiency; less damage tolerance
M15%Balanced default for many normal environments
Q25%More resilience with a denser symbol
H30%Highest standard QR resilience; greatest redundancy

Important: The percentages are approximate restoration capability for total codewords, not a promise that the same percentage of any visible area can always be destroyed and still scan.

Higher error correction can make the QR Code larger or denser

QR capacity depends on the amount and type of data, the QR version and the error-correction level. When you raise the correction level, more codewords are reserved for recovery information. The encoder may therefore need a higher version with more modules for the same content.

That means H is not automatically better. If a small printed code is already near the scanner limit, adding density can make real-world scanning harder even though the symbol has more redundancy.

Choose the level for the environment, not by habit

  • Use L when capacity and low density matter and the code will stay clean and protected.
  • Use M as a balanced starting point for ordinary digital and clean printed uses.
  • Consider Q or H when labels may become dirty or partly damaged and the final code can remain physically large enough.
  • Always test the finished symbol at its real size with the target device.

Error correction does not fix every scanning problem

Error correction cannot compensate for a missing Quiet Zone, extreme blur, inadequate module size, severe geometric distortion or a destination URL that no longer works. It protects encoded data; it does not replace correct printing and layout.

If scans fail, diagnose size, margin, contrast, print quality and camera distance before increasing the correction level blindly.

Common questions

Frequently asked questions

What is the best QR error correction level?

There is no universal best level. M is a balanced default for many normal uses, while Q or H can help in dirtier environments if the resulting QR remains large enough to scan reliably.

Does level H mean 30% of the QR image can be covered?

Not exactly. The published percentage refers to approximate codeword restoration capability. The location and type of damage still matter.

Does higher error correction make a QR Code bigger?

It can. More correction data reduces payload capacity at a given version, so the encoder may select a higher version with more modules.

Which level does BarcodeBatch use by default?

BarcodeBatch starts the QR generator at Level M and lets you select L, M, Q or H before generation.

Sources & standards

Technical claims in this guide are checked against primary or official documentation where available.