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
| Level | Name | Data Recovery Capability | Typical Use Case |
|---|---|---|---|
| L | Low | Up to 7% of codewords can be restored | Clean, controlled environments; digital displays; simple indoor labels |
| M | Medium | Up to 15% of codewords can be restored | Standard business use; most print applications; default for most generators |
| Q | Quartile | Up to 25% of codewords can be restored | Industrial environments; codes on irregular surfaces; codes with some design overlay |
| H | High | Up to 30% of codewords can be restored | Outdoor 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 Situation | Recommended Level | Why |
|---|---|---|
| QR code displayed on a screen (phone, monitor, TV) | L or M | No physical damage risk; clean digital display |
| QR code on an indoor printed sign or label | M | Standard resilience for typical indoor handling wear |
| QR code on product packaging or a flyer | M or Q | Moderate wear; boxes get creased, flyers crumple |
| QR code outdoors (signage, vehicle, food truck) | Q or H | Weathering, grime, glareat varying angles |
| QR code with a logo embedded in the centre | H (mandatory) | Logo covers modules - H required for logo use |
| QR code engraved in stone or metal (memorial, tag) | H | Surface weathering; debris may partially obscure code |
| QR code on fabric (t-shirt, tote bag) | H | Fabric 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.