QR Code Error Correction Levels Explained (L, M, Q, H)

📅 March 17, 2026 · 5 min read

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?

💡 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 →