QR Code Error Correction Levels Explained (L, M, Q, H)
Every QR code has a built-in error correction system that allows it to remain scannable even if part of the code is damaged, dirty, or obscured. This is one of the features that makes QR codes so reliable — and understanding it helps you create better codes.
The Four Error Correction Levels
Level L (Low) — 7% Recovery
The code can be read even if up to 7% of it is damaged. This produces the simplest, least dense QR code. Best for clean digital environments where the code won't be physically damaged.
Level M (Medium) — 15% Recovery
Recovers from up to 15% damage. This is the default level for most QR generators and works well for the majority of use cases. It strikes a good balance between code density and reliability.
Level Q (Quartile) — 25% Recovery
Handles up to 25% damage. Good for QR codes that will be printed on materials that might get dirty, scratched, or folded — like product packaging, outdoor signage, or warehouse labels.
Level H (High) — 30% Recovery
Maximum protection — up to 30% of the code can be damaged. This is the level you should use when adding a logo overlay to your QR code, because the logo literally covers and destroys part of the data pattern.
How Error Correction Works
QR codes use an algorithm called Reed-Solomon error correction. When generating the code, extra data (called "error correction codewords") is added alongside the actual content. When a scanner reads the code, it can use these extra codewords to reconstruct any missing or corrupted data.
Think of it like sending a message with deliberate redundancy. If some words are smudged, the reader can still figure out the full message from context — except QR codes do this mathematically, not linguistically.
The Trade-Off: Correction vs Density
Higher error correction means more data modules in the QR code, which means the code becomes denser (more tiny squares packed together). For short content like a URL, this barely matters. But for very long text, the difference between L and H can be significant — Level H produces a noticeably more complex code.
Which Level Should You Choose?
- Level L: Screen-only QR codes, digital documents, clean environments
- Level M: General purpose — websites, printed materials in good condition
- Level Q: Outdoor use, packaging, labels that may get dirty
- Level H: QR codes with logo overlays, industrial environments, codes that will face wear and tear
💡 Tip: When in doubt, use M. It's the industry standard for a reason. Only switch to H if you're adding a logo or know the code will face harsh conditions.
Try Different Error Correction Levels
Our generator lets you switch between L, M, Q, and H instantly to see the difference.
Create QR Code →