Error correction is why a QR code can still scan when it’s a bit dirty or blurred. But there’s a catch: higher correction usually makes the QR denser, which can hurt scanning if you print small.
What L / M / Q / H means
These are common QR error correction levels. You can think of them as “how much damage the QR can tolerate”. Higher levels tolerate more damage, but typically increase complexity/density.
| Level | Practical meaning | When to use |
|---|---|---|
| L | Lowest tolerance, often lowest density | Clean screens, large QR, short payload |
| M | Balanced (good default) | Most use cases |
| Q | Higher tolerance, usually denser | Prints that may get worn / slightly blurry |
| H | Highest tolerance, often densest | If you expect damage or add a logo (print larger) |
The trade-off (this is why scans fail)
- Higher correction → more modules → denser QR → needs larger print and sharper edges.
- If you print small (business cards/table tents), density matters more than tolerance.
- If your payload is long (UTM, long URLs, big vCard), density increases fast. Prefer a shorter destination first.
Practical picks (fast rules)
- Business cards (20–25mm): start with M. If the print is glossy/low quality, increase size before jumping to H.
- Posters/signage: Q is fine if you print large; H can work but print bigger and test.
- QR with a logo: you may need Q/H, but the more important factor is size + quiet zone + sharp SVG print.
- WiFi / vCard: payloads can get dense — keep fields minimal and print larger if needed.
Make it scan reliably (checklist)
- Keep the payload short (see: Short URL strategy).
- Use SVG for print (see: SVG vs PNG).
- Keep quiet zone + high contrast (see: Contrast & quiet zone).
- Test on iPhone + Android before mass printing.