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.

Loading QR Generator...

How It Works

1

Open Advanced settings

In the generator, expand Advanced and find the Error Correction Level control.

2

Pick a level for your use case

Use H for logos or outdoor/print; L or M for plain digital links where simplicity helps.

3

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.

LevelData recoveryCode densityBest for
L (Low)~7%LowestClean digital links, screens, simple codes
M (Medium)~15%LowGeneral use, the common default
Q (Quartile)~25%HighPrint without a logo, busier environments
H (High)~30%HighestLogos, 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.