How-To 2026-02-25 4 min By Cornelious Fazal

QR Code Error Correction Levels Explained: L, M, Q and H (Which to Use)

Quick Answer

QR codes have four error correction levels - L, M, Q, H - that determine how much of the code can be damaged or obscured before it stops scanning.

What Error Correction Does in a QR Code

A QR code is not simply a compact version of its data. It contains the data you encoded plus a mathematically calculated set of redundant data - error correction codewords - generated using the Reed-Solomon algorithm. This redundancy allows a QR scanner to reconstruct missing or corrupted data even if part of the code is physically damaged, obscured, or worn away.

The proportion of the QR code dedicated to error correction determines how much damage the code can tolerate. A higher error correction level means more of the code is redundancy - which makes the code more resilient but also larger and denser (because it contains more data overall for the same payload).

The Four Error Correction Levels

LevelNameData Recovery CapabilityTypical Use Case
LLowUp to 7% of codewords can be restoredClean, controlled environments; digital displays; simple indoor labels
MMediumUp to 15% of codewords can be restoredStandard business use; most print applications; default for most generators
QQuartileUp to 25% of codewords can be restoredIndustrial environments; codes on irregular surfaces; codes with some design overlay
HHighUp to 30% of codewords can be restoredOutdoor signage; codes with embedded logos; fabric printing; product packaging

Why QR Codes with Logos Still Scan

The most practical thing error correction levels explain is how a QR code with a logo in the centre continues to scan despite the logo covering perhaps 20% of the code area.

When you add a logo to a QR code (which our generator supports at our logo guide), the logo physically obscures the modules underneath it. For the QR scanner, those covered modules are "damaged" data. Level H error correction allows the scanner to reconstruct up to 30% damaged data - so as long as the logo covers less than 30% of the code area and the rest of the code is clean, the scanner successfully reconstructs the full data payload.

This is why logo QR codes must use level H. Using level L with a logo covering 25% of the code area guarantees scan failure every time - the error correction cannot compensate. Using level H with the same 25% coverage: reliable scanning.

The Trade-Off: Error Correction vs. Code Density

Increasing error correction level increases the number of modules (the small squares that make up the QR code pattern). More modules means a denser code pattern, which requires either:

  • A larger physical size to maintain the same module resolution, or
  • The same physical size but with smaller, more densely packed modules (which requires better scanner resolution to read)

For a short URL like qqrcodegenerator.com (23 characters), the density increase from L to H is modest and does not meaningfully affect scannability at typical print sizes. For a long URL with many characters (over 100 characters), switching from L to H creates a noticeably denser code that may require a larger print size to scan reliably.

Keep URLs short. Use a short, clean domain URL rather than a long URL with tracking parameters for any QR code. This keeps density low regardless of error correction level.

Which Level to Use: Decision Guide

Your SituationRecommended LevelWhy
QR code displayed on a screen (phone, monitor, TV)L or MNo physical damage risk; clean digital display
QR code on an indoor printed sign or labelMStandard resilience for typical indoor handling wear
QR code on product packaging or a flyerM or QModerate wear; boxes get creased, flyers crumple
QR code outdoors (signage, vehicle, food truck)Q or HWeathering, grime, glareat varying angles
QR code with a logo embedded in the centreH (mandatory)Logo covers modules - H required for logo use
QR code engraved in stone or metal (memorial, tag)HSurface weathering; debris may partially obscure code
QR code on fabric (t-shirt, tote bag)HFabric texture and print distortion; washing degradation

When in doubt: use H. The density overhead for short URLs is negligible. The reliability benefit is significant. Our Free QR Code Generator defaults to level M and allows selection of error correction level during code generation.

Frequently Asked Questions

Because of error correction. Your QR code generator calculated error correction codewords alongside the actual data and embedded them throughout the code pattern. When part of the code is missing or obscured, the scanner identifies the gap and uses the redundant error correction data to reconstruct what was there. As long as the damage is within the tolerance of the error correction level (7% for L, 30% for H), the scanner succeeds.

No. Error correction level is set when the QR code is generated and is encoded into the code pattern. You cannot modify it after generation. If you need a higher error correction level - for example because you decide to add a logo to a code that was generated at level M - you must regenerate the code entirely at level H and reprint it.

Negligibly. Modern smartphone processors decode QR codes in milliseconds regardless of error correction level. The theoretical processing time difference between L and H decoding is unmeasurable in practice. The only meaningful performance difference relates to physical scan reliability - H codes scan more reliably in damaged or dirty conditions, offsetting any theoretical overhead entirely.

If damage exceeds the correction capacity - for example, a level H code losing more than 30% of its modules - the scanner cannot reconstruct the data and the scan fails. There is no graceful partial recovery. The scanner either succeeds completely or fails completely. This is why choosing an appropriate error correction level for the expected damage environment is important before printing large quantities.

Reed-Solomon is an error-correcting code algorithm originally developed in 1960 at MIT. It adds structured mathematical redundancy to data, allowing reconstruction of a portion of missing or corrupted data without retransmission. In QR codes, Reed-Solomon codewords are interleaved with data codewords throughout the code pattern so that damage to any one area of the code is recoverable. The same algorithm is used in CDs, DVDs, Blu-ray discs, and QR codes for the same reason: physical media damage is inevitable.