What error correction is
When a code is created, the content is encoded twice over in a way that lets a scanner rebuild missing pieces. If a corner is torn, a logo covers the middle or glare washes out a strip, the scanner uses the spare data to fill the gap. The trade-off is size: more spare data means more squares in the pattern.
The four levels
- L recovers about 7% of the code. The smallest pattern for a given content.
- M recovers about 15%. The generator uses this by default because it balances size and resilience for everyday printing.
- Q recovers about 25%.
- H recovers about 30%. The densest pattern, and the one to use with a logo.
The percentages describe how much of the pattern can be unreadable before the scan fails. They are not a promise: a code at level H with a logo covering 25% has very little margin left for dirt or a bad angle.
Which level to pick
- Plain code, short link, printed at a sensible size: M. Nothing to gain from going higher.
- Logo in the centre: H, always. The generator suggests it as soon as you add a logo and warns if the logo is still too large.
- Very long content, such as a vCard with an address or a long text: L or M. Higher levels make an already dense code harder to print small.
- Rough conditions, such as outdoor signs, stickers on machinery or anything that will get scratched: Q or H, printed larger to make room for the extra squares.
How the level changes the code
The same link at level H can have noticeably more squares than at level L. More squares in the same printed width means smaller squares, which are harder for a camera to separate. So raising the level is only free if you also raise the print size. The print size guide explains how to size a denser code.
Changing the level in the generator
Open the Error level tab under "Make it your own" in the generator. The preview and the size readout update as you switch, so you can see how much denser the code becomes before you download.
Sources
The recovery percentages come from the QR code specification (ISO/IEC 18004). The official QR code reference site notes that level M at 15% is the most commonly chosen and recommends level L for clean environments with large amounts of data and level Q or H where codes get dirty: Error Correction Feature, QRcode.com.