QR Code Error Correction Levels Explained
L, M, Q, H — what those error correction levels actually mean, when to use each, and how they affect QR size and scan reliability.
QR codes support four error correction levels: L (7%), M (15%), Q (25%), and H (30%). Higher recovery means denser, larger codes but better resilience. Use L for digital-only, M for most prints, Q or H if you're adding a logo or printing in rough environments.
What error correction actually is
Every QR code contains redundant data — extra bytes computed from your URL using Reed-Solomon math. If part of the code gets damaged or obscured, the phone's decoder uses these redundant bytes to reconstruct the original URL. You've been using the same technique every time you play a scratched CD or listen to Bluetooth audio.
You pick how much redundancy to bake in when you generate the code. More redundancy means the code can survive more damage, but it also means the pattern is denser (more modules) to hold the extra bytes.
The four levels
- •Level L (Low) — 7% recovery. Smallest, densest data-per-square. Best for clean digital QRs that will never be printed.
- •Level M (Medium) — 15% recovery. Default for most generators. Fine for standard printing on paper.
- •Level Q (Quartile) — 25% recovery. Recommended for QR codes with a logo, or codes printed on packaging that might scuff.
- •Level H (High) — 30% recovery. Maximum resilience. Use for outdoor signs, logo-embedded QRs, and anywhere the code will get dirty or damaged.
The tradeoff: bigger codes, more resilience
Higher error correction levels require more modules in the QR pattern. For the same URL, an H-level QR is roughly 30% larger (or more visually dense) than an L-level QR. If your URL is short (like a dynamic QR's redirect link), this doesn't matter — the code still prints small. If your URL is long, higher error correction can push you into an uncomfortably dense pattern.
This is one big argument for using dynamic QRs even without the tracking benefits: the redirect link is always short, so you can afford H-level error correction and a logo without your code becoming a blob.
When to use each level
- •Website homepage QR on a screen — level L is fine.
- •Business card QR without logo — level M.
- •Business card QR with a small logo — level Q.
- •Restaurant menu QR (indoor, might get food splashed) — level Q.
- •Yard sign or outdoor poster with logo — level H.
- •Any packaging QR that will be stored, shipped, and shelved — level H.
The gotcha
Error correction doesn't help if the damage hits the three corner finder patterns. Those are the big squares in three corners of the QR — they're what phones use to locate the code in the first place. If a finder pattern is missing or covered, the phone can't even see there's a QR there.
So error correction protects the data, but keep the corners clean. Never place a logo, cropping mark, or design element that overlaps a finder pattern.
Generate a QR code, free — no signup
Paste a link, brand it, download PNG or SVG. Upgrade only when you need editing and analytics.