QR Code Error Correction Levels (L, M, Q, H)
QR codes have four error-correction levels — L (~7%), M (~15%), Q (~25%) and H (~30%). The percentage is how much of the code can be damaged or covered (for example by a logo) and still scan. Use H when you add a logo or print for outdoor/rough conditions; use L or M for clean digital codes where you want a simpler, less dense pattern.
Error correction is what lets a QR code still scan after it gets scratched, smudged, partially covered by a logo, or printed on a curved surface. It works by adding redundant data using Reed–Solomon coding. Higher levels recover more damage but make the code denser. Here is exactly what each level means and when to use it — try changing the level in the generator below and watch the pattern change.
How It Works
Open Advanced settings
In the generator, expand Advanced and find the Error Correction Level control.
Pick a level for your use case
Use H for logos or outdoor/print; L or M for plain digital links where simplicity helps.
Always test before printing
Scan the final code with a couple of phones — especially after adding a logo or color.
What error correction actually does
When a QR code is generated, extra recovery data is woven into the pattern using Reed–Solomon error correction. If part of the code is unreadable — a coffee stain, a centered logo, a fold in the paper — the scanner reconstructs the missing data from this redundancy. The higher the level, the more damage it can absorb, at the cost of needing more modules (the small squares), which makes the code visually denser.
Which level should you choose?
For a plain QR code that points to a URL and will be displayed cleanly on a screen, L or M is fine and keeps the pattern simple. For anything printed, placed outdoors, on packaging, or that includes a logo, choose H (30%) — QR Gen sets H automatically when you add a logo. Q (25%) is a middle ground for print without a logo. When in doubt for physical media, go higher.
The tradeoff: higher correction means a denser code
Error correction is not free. Raising the level adds modules, so the same content produces a busier code that needs more contrast and a larger printed size to stay scannable. If your code looks extremely dense, consider shortening the URL (use a short link) or dropping from H to Q where a logo is not involved.
QR code error correction levels at a glance
Approximate data recovery and recommended use for each level.
| Level | Data recovery | Code density | Best for |
|---|---|---|---|
| L (Low) | ~7% | Lowest | Clean digital links, screens, simple codes |
| M (Medium) | ~15% | Low | General use, the common default |
| Q (Quartile) | ~25% | High | Print without a logo, busier environments |
| H (High) | ~30% | Highest | Logos, packaging, outdoor and rough conditions |
Frequently Asked Questions
Which error correction level is best for a QR code with a logo?
Use H (High, ~30%). It lets the logo cover the center of the code without breaking scannability. QR Gen switches to H automatically when you upload a logo.
Does higher error correction make the QR code bigger?
It makes the code denser (more modules), not necessarily larger in pixels — but a denser code needs a larger printed size and good contrast to scan reliably. For print, increase the physical size when using H.
What is the default error correction level?
Medium (M, ~15%) is the typical default for general use. QR Gen raises it to High automatically when a logo is added so the code stays readable.